| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.core; |
| | | |
| | | import static org.opends.server.loggers.Debug.debugConstructor; |
| | | import static org.opends.server.loggers.Debug.debugEnter; |
| | | import static org.opends.server.messages.MessageHandler.getMessage; |
| | | import static org.opends.server.messages.SchemaMessages.*; |
| | | |
| | |
| | | */ |
| | | public final class RFC3672SubtreeSpecification extends |
| | | SimpleSubtreeSpecification { |
| | | // Fully qualified class name for debugging purposes. |
| | | private static final String CLASS_NAME = RFC3672SubtreeSpecification.class |
| | | .getName(); |
| | | |
| | | // The root DN. |
| | | private DN rootDN; |
| | |
| | | * The item's object class. |
| | | */ |
| | | public ItemRefinement(String objectClass) { |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | this.objectClass = objectClass; |
| | | this.normalizedObjectClass = StaticUtils.toLowerCase(objectClass |
| | |
| | | */ |
| | | @Override |
| | | public boolean equals(Object obj) { |
| | | assert debugEnter(CLASS_NAME, "equals"); |
| | | |
| | | if (this == obj) { |
| | | return true; |
| | |
| | | */ |
| | | @Override |
| | | public int hashCode() { |
| | | assert debugEnter(CLASS_NAME, "hashCode"); |
| | | |
| | | return normalizedObjectClass.hashCode(); |
| | | } |
| | |
| | | * The refinement which must be <code>false</code>. |
| | | */ |
| | | public NotRefinement(Refinement refinement) { |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | this.refinement = refinement; |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public boolean equals(Object obj) { |
| | | assert debugEnter(CLASS_NAME, "equals"); |
| | | |
| | | if (this == obj) { |
| | | return true; |
| | |
| | | */ |
| | | @Override |
| | | public int hashCode() { |
| | | assert debugEnter(CLASS_NAME, "hashCode"); |
| | | |
| | | return refinement.hashCode(); |
| | | } |
| | |
| | | * <code>true</code>. |
| | | */ |
| | | public AndRefinement(Collection<Refinement> refinementSet) { |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | this.refinementSet = refinementSet; |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public boolean equals(Object obj) { |
| | | assert debugEnter(CLASS_NAME, "equals"); |
| | | |
| | | if (this == obj) { |
| | | return true; |
| | |
| | | */ |
| | | @Override |
| | | public int hashCode() { |
| | | assert debugEnter(CLASS_NAME, "hashCode"); |
| | | |
| | | return refinementSet.hashCode(); |
| | | } |
| | |
| | | * <code>true</code>. |
| | | */ |
| | | public OrRefinement(Collection<Refinement> refinementSet) { |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | this.refinementSet = refinementSet; |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public boolean equals(Object obj) { |
| | | assert debugEnter(CLASS_NAME, "equals"); |
| | | |
| | | if (this == obj) { |
| | | return true; |
| | |
| | | */ |
| | | @Override |
| | | public int hashCode() { |
| | | assert debugEnter(CLASS_NAME, "hashCode"); |
| | | |
| | | return refinementSet.hashCode(); |
| | | } |
| | |
| | | */ |
| | | public static RFC3672SubtreeSpecification valueOf(DN rootDN, String s) |
| | | throws DirectoryException { |
| | | assert debugEnter(CLASS_NAME, "valueOf"); |
| | | |
| | | // Default values. |
| | | DN relativeBaseDN = null; |
| | |
| | | super(relativeBaseDN == null ? rootDN : rootDN.concat(relativeBaseDN), |
| | | minimumDepth, maximumDepth, chopBefore, chopAfter); |
| | | |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | this.rootDN = rootDN; |
| | | this.relativeBaseDN = relativeBaseDN; |
| | |
| | | * @return Returns the root DN. |
| | | */ |
| | | public DN getRootDN() { |
| | | assert debugEnter(CLASS_NAME, "getRootDN"); |
| | | return rootDN; |
| | | } |
| | | |
| | |
| | | * was specified. |
| | | */ |
| | | public DN getRelativeBaseDN() { |
| | | assert debugEnter(CLASS_NAME, "getRelativeBaseDN"); |
| | | return relativeBaseDN; |
| | | } |
| | | |
| | |
| | | * <code>null</code> if none were specified. |
| | | */ |
| | | public Refinement getRefinements() { |
| | | assert debugEnter(CLASS_NAME, "getRefinements"); |
| | | return refinements; |
| | | } |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public boolean isWithinScope(Entry entry) { |
| | | assert debugEnter(CLASS_NAME, "isWithinScope"); |
| | | |
| | | if (isDNWithinScope(entry.getDN())) { |
| | | if (refinements != null) { |
| | |
| | | */ |
| | | @Override |
| | | public StringBuilder toString(StringBuilder builder) { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | boolean isFirstElement = true; |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public boolean equals(Object obj) { |
| | | assert debugEnter(CLASS_NAME, "equals"); |
| | | |
| | | if (this == obj) { |
| | | return true; |
| | |
| | | */ |
| | | @Override |
| | | public int hashCode() { |
| | | assert debugEnter(CLASS_NAME, "hashCode"); |
| | | |
| | | int hash = commonComponentsHashCode(); |
| | | |