| | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | import java.util.TreeSet; |
| | | |
| | | import org.forgerock.i18n.slf4j.LocalizedLogger; |
| | | import org.forgerock.opendj.ldap.ByteString; |
| | | import org.forgerock.opendj.ldap.DecodeException; |
| | | import org.opends.server.api.ExtensibleIndexer; |
| | | import org.opends.server.api.MatchingRule; |
| | | import org.opends.server.types.AttributeType; |
| | |
| | | */ |
| | | public final class JEExtensibleIndexer extends Indexer |
| | | { |
| | | private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass(); |
| | | |
| | | /** |
| | | * The comparator for index keys generated by this class. |
| | | */ |
| | |
| | | { |
| | | if (attrList == null) return; |
| | | |
| | | Set<ByteString> keysBS = new TreeSet<ByteString>(); |
| | | for (Attribute attr : attrList) |
| | | { |
| | | if (!attr.isVirtual()) |
| | | { |
| | | for (AttributeValue value : attr) |
| | | { |
| | | extensibleIndexer.getKeys(value, keys); |
| | | try |
| | | { |
| | | extensibleIndexer.createKeys(null, value.getValue(), null, keysBS); |
| | | } |
| | | catch (DecodeException e) |
| | | { |
| | | logger.traceException(e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | for (ByteString key : keysBS) |
| | | { |
| | | keys.add(key.toByteArray()); |
| | | } |
| | | } |
| | | |
| | | |