| | |
| | | startCLmsg.setLastDraftChangeNumber(-1); |
| | | startCLmsg.setChangeNumber(new ChangeNumber(0,0,(short)0)); |
| | | |
| | | // If there's no filter, just return |
| | | if (sf == null) |
| | | { |
| | | return startCLmsg; |
| | | } |
| | | |
| | | // Here are the 3 elementary cases we know how to optimize |
| | | if ((sf != null) |
| | | && (sf.getFilterType() == FilterType.GREATER_OR_EQUAL) |
| | | if ((sf.getFilterType() == FilterType.GREATER_OR_EQUAL) |
| | | && (sf.getAttributeType() != null) |
| | | && (sf.getAttributeType().getPrimaryName(). |
| | | equalsIgnoreCase("changeNumber"))) |
| | |
| | | startCLmsg.setFirstDraftChangeNumber(sn); |
| | | return startCLmsg; |
| | | } |
| | | else if ((sf != null) |
| | | && (sf.getFilterType() == FilterType.LESS_OR_EQUAL) |
| | | else if ((sf.getFilterType() == FilterType.LESS_OR_EQUAL) |
| | | && (sf.getAttributeType() != null) |
| | | && (sf.getAttributeType().getPrimaryName(). |
| | | equalsIgnoreCase("changeNumber"))) |
| | |
| | | startCLmsg.setLastDraftChangeNumber(sn); |
| | | return startCLmsg; |
| | | } |
| | | else if ((sf != null) |
| | | && (sf.getFilterType() == FilterType.EQUALITY) |
| | | else if ((sf.getFilterType() == FilterType.EQUALITY) |
| | | && (sf.getAttributeType() != null) |
| | | && (sf.getAttributeType().getPrimaryName(). |
| | | equalsIgnoreCase("replicationcsn"))) |
| | |
| | | startCLmsg.setChangeNumber(cn); |
| | | return startCLmsg; |
| | | } |
| | | else if ((sf != null) |
| | | && (sf.getFilterType() == FilterType.EQUALITY) |
| | | else if ((sf.getFilterType() == FilterType.EQUALITY) |
| | | && (sf.getAttributeType() != null) |
| | | && (sf.getAttributeType().getPrimaryName(). |
| | | equalsIgnoreCase("changenumber"))) |
| | |
| | | startCLmsg.setLastDraftChangeNumber(sn); |
| | | return startCLmsg; |
| | | } |
| | | else if ((sf != null) |
| | | && (sf.getFilterType() == FilterType.AND)) |
| | | else if (sf.getFilterType() == FilterType.AND) |
| | | { |
| | | // Here is the only binary operation we know how to optimize |
| | | Collection<SearchFilter> comps = sf.getFilterComponents(); |