mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Jean-Noel Rouvignac
24.41.2015 e7cac727a9231ff3602e61a4ea678e0463eb0e39
opendj-server-legacy/src/main/java/org/opends/server/admin/AggregationPropertyDefinition.java
@@ -121,25 +121,33 @@
      <C extends ConfigurationClient, S extends Configuration>
      extends AbstractBuilder<String, AggregationPropertyDefinition<C, S>> {
    // The string representation of the managed object path specifying
    // the parent of the aggregated managed objects.
    /**
     * The string representation of the managed object path specifying
     * the parent of the aggregated managed objects.
     */
    private String parentPathString;
    // The name of a relation in the parent managed object which
    // contains the aggregated managed objects.
    /**
     * The name of a relation in the parent managed object which
     * contains the aggregated managed objects.
     */
    private String rdName;
    // The condition which is used to determine if a referenced
    // managed object is enabled.
    /**
     * The condition which is used to determine if a referenced
     * managed object is enabled.
     */
    private Condition targetIsEnabledCondition = Conditions.TRUE;
    // The condition which is used to determine whether or not
    // referenced managed objects need to be enabled.
    /**
     * The condition which is used to determine whether or not
     * referenced managed objects need to be enabled.
     */
    private Condition targetNeedsEnablingCondition = Conditions.TRUE;
    // Private constructor
    /** Private constructor. */
    private Builder(AbstractManagedObjectDefinition<?, ?> d,
        String propertyName) {
      super(d, propertyName);
@@ -212,9 +220,7 @@
    /**
     * {@inheritDoc}
     */
    /** {@inheritDoc} */
    @Override
    protected AggregationPropertyDefinition<C, S> buildInstance(
        AbstractManagedObjectDefinition<?, ?> d, String propertyName,
@@ -246,16 +252,18 @@
  private class ReferentialIntegrityChangeListener implements
      ServerManagedObjectChangeListener<S> {
    // The error message which should be returned if an attempt is
    // made to disable the referenced component.
    /**
     * The error message which should be returned if an attempt is
     * made to disable the referenced component.
     */
    private final LocalizableMessage message;
    // The path of the referenced component.
    /** The path of the referenced component. */
    private final ManagedObjectPath<C, S> path;
    // Creates a new referential integrity delete listener.
    /** Creates a new referential integrity delete listener. */
    private ReferentialIntegrityChangeListener(ManagedObjectPath<C, S> path,
        LocalizableMessage message) {
      this.path = path;
@@ -264,9 +272,7 @@
    /**
     * {@inheritDoc}
     */
    /** {@inheritDoc} */
    public ConfigChangeResult applyConfigurationChange(
        ServerManagedObject<? extends S> mo) {
      try {
@@ -286,9 +292,7 @@
    /**
     * {@inheritDoc}
     */
    /** {@inheritDoc} */
    public boolean isConfigurationChangeAcceptable(
        ServerManagedObject<? extends S> mo,
        List<LocalizableMessage> unacceptableReasons) {
@@ -313,7 +317,7 @@
    // Gets the path associated with this listener.
    /** Gets the path associated with this listener. */
    private ManagedObjectPath<C, S> getManagedObjectPath() {
      return path;
    }
@@ -329,16 +333,18 @@
  private class ReferentialIntegrityDeleteListener implements
      ConfigurationDeleteListener<S> {
    // The DN of the referenced configuration entry.
    /** The DN of the referenced configuration entry. */
    private final DN dn;
    // The error message which should be returned if an attempt is
    // made to delete the referenced component.
    /**
     * The error message which should be returned if an attempt is
     * made to delete the referenced component.
     */
    private final LocalizableMessage message;
    // Creates a new referential integrity delete listener.
    /** Creates a new referential integrity delete listener. */
    private ReferentialIntegrityDeleteListener(DN dn, LocalizableMessage message) {
      this.dn = dn;
      this.message = message;
@@ -346,9 +352,7 @@
    /**
     * {@inheritDoc}
     */
    /** {@inheritDoc} */
    public ConfigChangeResult applyConfigurationDelete(S configuration) {
      // This should not happen - the
      // isConfigurationDeleteAcceptable() call-back should have
@@ -366,9 +370,7 @@
    /**
     * {@inheritDoc}
     */
    /** {@inheritDoc} */
    public boolean isConfigurationDeleteAcceptable(S configuration,
        List<LocalizableMessage> unacceptableReasons) {
      if (configuration.dn().equals(dn)) {
@@ -389,9 +391,7 @@
   */
  private class ServerHandler extends ServerConstraintHandler {
    /**
     * {@inheritDoc}
     */
    /** {@inheritDoc} */
    @Override
    public boolean isUsable(ServerManagedObject<?> managedObject,
        Collection<LocalizableMessage> unacceptableReasons) throws ConfigException {
@@ -433,9 +433,7 @@
    /**
     * {@inheritDoc}
     */
    /** {@inheritDoc} */
    @Override
    public void performPostAdd(ServerManagedObject<?> managedObject)
        throws ConfigException {
@@ -502,9 +500,7 @@
    /**
     * {@inheritDoc}
     */
    /** {@inheritDoc} */
    @Override
    public void performPostDelete(ServerManagedObject<?> managedObject)
        throws ConfigException {
@@ -537,9 +533,7 @@
    /**
     * {@inheritDoc}
     */
    /** {@inheritDoc} */
    @Override
    public void performPostModify(ServerManagedObject<?> managedObject)
        throws ConfigException {
@@ -559,9 +553,7 @@
   */
  private class SourceClientHandler extends ClientConstraintHandler {
    /**
     * {@inheritDoc}
     */
    /** {@inheritDoc} */
    @Override
    public boolean isAddAcceptable(ManagementContext context,
        ManagedObject<?> managedObject, Collection<LocalizableMessage> unacceptableReasons)
@@ -615,9 +607,7 @@
    /**
     * {@inheritDoc}
     */
    /** {@inheritDoc} */
    @Override
    public boolean isModifyAcceptable(ManagementContext context,
        ManagedObject<?> managedObject, Collection<LocalizableMessage> unacceptableReasons)
@@ -637,9 +627,7 @@
   */
  private class TargetClientHandler extends ClientConstraintHandler {
    /**
     * {@inheritDoc}
     */
    /** {@inheritDoc} */
    @Override
    public boolean isDeleteAcceptable(ManagementContext context,
        ManagedObjectPath<?, ?> path, Collection<LocalizableMessage> unacceptableReasons)
@@ -668,9 +656,7 @@
    /**
     * {@inheritDoc}
     */
    /** {@inheritDoc} */
    @Override
    public boolean isModifyAcceptable(ManagementContext context,
        ManagedObject<?> managedObject, Collection<LocalizableMessage> unacceptableReasons)
@@ -708,8 +694,10 @@
    // Find all managed objects which reference the named managed
    // object using this property.
    /**
     * Find all managed objects which reference the named managed
     * object using this property.
     */
    private <CC extends ConfigurationClient>
        List<ManagedObject<? extends CC>> findReferences(
        ManagementContext context, AbstractManagedObjectDefinition<CC, ?> mod,
@@ -739,7 +727,7 @@
    // Find all instances of a specific type of managed object.
    /** Find all instances of a specific type of managed object. */
    @SuppressWarnings("unchecked")
    private <CC extends ConfigurationClient>
        List<ManagedObject<? extends CC>> findInstances(
@@ -818,48 +806,64 @@
    return new Builder<C, S>(d, propertyName);
  }
  // The active server-side referential integrity change listeners
  // associated with this property.
  /**
   * The active server-side referential integrity change listeners
   * associated with this property.
   */
  private final Map<DN, List<ReferentialIntegrityChangeListener>>
    changeListeners = new HashMap<DN,
      List<ReferentialIntegrityChangeListener>>();
  // The active server-side referential integrity delete listeners
  // associated with this property.
  /**
   * The active server-side referential integrity delete listeners
   * associated with this property.
   */
  private final Map<DN, List<ReferentialIntegrityDeleteListener>>
    deleteListeners = new HashMap<DN,
      List<ReferentialIntegrityDeleteListener>>();
  // The name of the managed object which is the parent of the
  // aggregated managed objects.
  /**
   * The name of the managed object which is the parent of the
   * aggregated managed objects.
   */
  private ManagedObjectPath<?, ?> parentPath;
  // The string representation of the managed object path specifying
  // the parent of the aggregated managed objects.
  /**
   * The string representation of the managed object path specifying
   * the parent of the aggregated managed objects.
   */
  private final String parentPathString;
  // The name of a relation in the parent managed object which
  // contains the aggregated managed objects.
  /**
   * The name of a relation in the parent managed object which
   * contains the aggregated managed objects.
   */
  private final String rdName;
  // The relation in the parent managed object which contains the
  // aggregated managed objects.
  /**
   * The relation in the parent managed object which contains the
   * aggregated managed objects.
   */
  private InstantiableRelationDefinition<C, S> relationDefinition;
  // The source constraint.
  /** The source constraint. */
  private final Constraint sourceConstraint;
  // The condition which is used to determine if a referenced managed
  // object is enabled.
  /**
   * The condition which is used to determine if a referenced managed
   * object is enabled.
   */
  private final Condition targetIsEnabledCondition;
  // The condition which is used to determine whether or not
  // referenced managed objects need to be enabled.
  /**
   * The condition which is used to determine whether or not
   * referenced managed objects need to be enabled.
   */
  private final Condition targetNeedsEnablingCondition;
  // Private constructor.
  /** Private constructor. */
  private AggregationPropertyDefinition(
      AbstractManagedObjectDefinition<?, ?> d, String propertyName,
      EnumSet<PropertyOption> options, AdministratorAction adminAction,
@@ -874,9 +878,7 @@
    this.targetIsEnabledCondition = targetIsEnabledCondition;
    this.sourceConstraint = new Constraint() {
      /**
       * {@inheritDoc}
       */
      /** {@inheritDoc} */
      public Collection<ClientConstraintHandler> getClientConstraintHandlers() {
        ClientConstraintHandler handler = new SourceClientHandler();
        return Collections.singleton(handler);
@@ -884,9 +886,7 @@
      /**
       * {@inheritDoc}
       */
      /** {@inheritDoc} */
      public Collection<ServerConstraintHandler> getServerConstraintHandlers() {
        ServerConstraintHandler handler = new ServerHandler();
        return Collections.singleton(handler);
@@ -896,9 +896,7 @@
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public <R, P> R accept(PropertyDefinitionVisitor<R, P> v, P p) {
    return v.visitAggregation(this, p);
@@ -906,9 +904,7 @@
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public <R, P> R accept(PropertyValueVisitor<R, P> v, String value, P p) {
    return v.visitAggregation(this, value, p);
@@ -916,9 +912,7 @@
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public String decodeValue(String value)
      throws PropertyException {
@@ -1079,9 +1073,7 @@
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public String normalizeValue(String value)
      throws PropertyException {
@@ -1096,9 +1088,7 @@
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public void toString(StringBuilder builder) {
    super.toString(builder);
@@ -1111,9 +1101,7 @@
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public void validateValue(String value) throws PropertyException {
    try {
@@ -1125,9 +1113,7 @@
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @SuppressWarnings("unchecked")
  @Override
  public void initialize() throws Exception {
@@ -1149,9 +1135,7 @@
    // for actions performed against referenced managed objects.
    Constraint constraint = new Constraint() {
      /**
       * {@inheritDoc}
       */
      /** {@inheritDoc} */
      public Collection<ClientConstraintHandler> getClientConstraintHandlers() {
        ClientConstraintHandler handler = new TargetClientHandler();
        return Collections.singleton(handler);
@@ -1159,9 +1143,7 @@
      /**
       * {@inheritDoc}
       */
      /** {@inheritDoc} */
      public Collection<ServerConstraintHandler> getServerConstraintHandlers() {
        return Collections.emptyList();
      }