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

matthew_swift
24.12.2007 d2a94b6ecdbde3264ecf6633eba31fa550b2cac7
Cosmetic changes to visitor argument names to align them with naming conventions used elsewhere in the admin framework.
6 files modified
298 ■■■■ changed files
opends/src/server/org/opends/server/admin/PropertyDefinitionVisitor.java 107 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/admin/PropertyValueVisitor.java 116 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/admin/RelationDefinitionVisitor.java 12 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/admin/client/ldap/LDAPManagedObject.java 8 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/tools/dsconfig/PropertyValuePrinter.java 19 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/tools/dsconfig/SubCommandHandlerFactory.java 36 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/admin/PropertyDefinitionVisitor.java
@@ -65,6 +65,21 @@
  /**
   * Visit a dseecompat Global ACI property definition.
   *
   * @param pd
   *          The Global ACI property definition to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitACI(ACIPropertyDefinition pd, P p) {
    return visitUnknown(pd, p);
  }
  /**
   * Visit an aggregation property definition.
   *
   * @param <C>
@@ -73,15 +88,15 @@
   * @param <S>
   *          The type of server managed object configuration that
   *          this aggregation property definition refers to.
   * @param d
   * @param pd
   *          The aggregation property definition to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public <C extends ConfigurationClient, S extends Configuration>
  R visitAggregation(AggregationPropertyDefinition<C, S> d, P p) {
    return visitUnknown(d, p);
  R visitAggregation(AggregationPropertyDefinition<C, S> pd, P p) {
    return visitUnknown(pd, p);
  }
@@ -89,14 +104,14 @@
  /**
   * Visit an attribute type property definition.
   *
   * @param d
   * @param pd
   *          The attribute type property definition to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitAttributeType(AttributeTypePropertyDefinition d, P p) {
    return visitUnknown(d, p);
  public R visitAttributeType(AttributeTypePropertyDefinition pd, P p) {
    return visitUnknown(pd, p);
  }
@@ -104,14 +119,14 @@
  /**
   * Visit a boolean property definition.
   *
   * @param d
   * @param pd
   *          The boolean property definition to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitBoolean(BooleanPropertyDefinition d, P p) {
    return visitUnknown(d, p);
  public R visitBoolean(BooleanPropertyDefinition pd, P p) {
    return visitUnknown(pd, p);
  }
@@ -119,14 +134,14 @@
  /**
   * Visit a class property definition.
   *
   * @param d
   * @param pd
   *          The class property definition to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitClass(ClassPropertyDefinition d, P p) {
    return visitUnknown(d, p);
  public R visitClass(ClassPropertyDefinition pd, P p) {
    return visitUnknown(pd, p);
  }
@@ -134,14 +149,14 @@
  /**
   * Visit a DN property definition.
   *
   * @param d
   * @param pd
   *          The DN property definition to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitDN(DNPropertyDefinition d, P p) {
    return visitUnknown(d, p);
  public R visitDN(DNPropertyDefinition pd, P p) {
    return visitUnknown(pd, p);
  }
@@ -149,14 +164,14 @@
  /**
   * Visit a duration property definition.
   *
   * @param d
   * @param pd
   *          The duration property definition to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitDuration(DurationPropertyDefinition d, P p) {
    return visitUnknown(d, p);
  public R visitDuration(DurationPropertyDefinition pd, P p) {
    return visitUnknown(pd, p);
  }
@@ -167,14 +182,14 @@
   * @param <E>
   *          The enumeration that should be used for values of the
   *          property definition.
   * @param d
   * @param pd
   *          The enumeration property definition to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public <E extends Enum<E>> R visitEnum(EnumPropertyDefinition<E> d, P p) {
    return visitUnknown(d, p);
  public <E extends Enum<E>> R visitEnum(EnumPropertyDefinition<E> pd, P p) {
    return visitUnknown(pd, p);
  }
@@ -182,14 +197,14 @@
  /**
   * Visit an integer property definition.
   *
   * @param d
   * @param pd
   *          The integer property definition to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitInteger(IntegerPropertyDefinition d, P p) {
    return visitUnknown(d, p);
  public R visitInteger(IntegerPropertyDefinition pd, P p) {
    return visitUnknown(pd, p);
  }
@@ -197,14 +212,14 @@
  /**
   * Visit a IP address property definition.
   *
   * @param d
   * @param pd
   *          The IP address property definition to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitIPAddress(IPAddressPropertyDefinition d, P p) {
    return visitUnknown(d, p);
  public R visitIPAddress(IPAddressPropertyDefinition pd, P p) {
    return visitUnknown(pd, p);
  }
@@ -212,42 +227,28 @@
  /**
   * Visit a IP address mask property definition.
   *
   * @param d
   * @param pd
   *          The IP address mask property definition to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitIPAddressMask(IPAddressMaskPropertyDefinition d, P p) {
    return visitUnknown(d, p);
  }
  /**
   * Visit a dseecompat Global ACI property definition.
   *
   * @param d
   *          The Global ACI property definition to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitACI(ACIPropertyDefinition d, P p) {
    return visitUnknown(d, p);
  public R visitIPAddressMask(IPAddressMaskPropertyDefinition pd, P p) {
    return visitUnknown(pd, p);
  }
  /**
   * Visit a size property definition.
   *
   * @param d
   * @param pd
   *          The size property definition to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitSize(SizePropertyDefinition d, P p) {
    return visitUnknown(d, p);
  public R visitSize(SizePropertyDefinition pd, P p) {
    return visitUnknown(pd, p);
  }
@@ -255,14 +256,14 @@
  /**
   * Visit a string property definition.
   *
   * @param d
   * @param pd
   *          The string property definition to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitString(StringPropertyDefinition d, P p) {
    return visitUnknown(d, p);
  public R visitString(StringPropertyDefinition pd, P p) {
    return visitUnknown(pd, p);
  }
@@ -278,7 +279,7 @@
   *
   * @param <T>
   *          The type of the underlying property.
   * @param d
   * @param pd
   *          The property definition to visit.
   * @param p
   *          A visitor specified parameter.
@@ -287,9 +288,9 @@
   *           Visitor implementations may optionally throw this
   *           exception.
   */
  public <T> R visitUnknown(PropertyDefinition<T> d, P p)
  public <T> R visitUnknown(PropertyDefinition<T> pd, P p)
      throws UnknownPropertyDefinitionException {
    throw new UnknownPropertyDefinitionException(d, p);
    throw new UnknownPropertyDefinitionException(pd, p);
  }
}
opends/src/server/org/opends/server/admin/PropertyValueVisitor.java
@@ -73,6 +73,24 @@
  /**
   * Visit a dseecompat ACI.
   *
   * @param pd
   *          The dseecompat ACI property definition.
   * @param v
   *          The property value to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitACI(ACIPropertyDefinition pd, Aci v,
      P p) {
    return visitUnknown(pd, v, p);
  }
  /**
   * Visit an aggregation property value.
   *
   * @param <C>
@@ -81,7 +99,7 @@
   * @param <S>
   *          The type of server managed object configuration that
   *          this aggregation property definition refers to.
   * @param d
   * @param pd
   *          The aggregation property definition to visit.
   * @param v
   *          The property value to visit.
@@ -91,8 +109,8 @@
   */
  public <C extends ConfigurationClient, S extends Configuration>
  R visitAggregation(
      AggregationPropertyDefinition<C, S> d, String v, P p) {
    return visitUnknown(d, v, p);
      AggregationPropertyDefinition<C, S> pd, String v, P p) {
    return visitUnknown(pd, v, p);
  }
@@ -100,7 +118,7 @@
  /**
   * Visit an attribute type.
   *
   * @param d
   * @param pd
   *          The attribute type property definition.
   * @param v
   *          The property value to visit.
@@ -108,9 +126,9 @@
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitAttributeType(AttributeTypePropertyDefinition d,
  public R visitAttributeType(AttributeTypePropertyDefinition pd,
      AttributeType v, P p) {
    return visitUnknown(d, v, p);
    return visitUnknown(pd, v, p);
  }
@@ -118,7 +136,7 @@
  /**
   * Visit a boolean.
   *
   * @param d
   * @param pd
   *          The boolean property definition.
   * @param v
   *          The property value to visit.
@@ -126,8 +144,8 @@
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitBoolean(BooleanPropertyDefinition d, Boolean v, P p) {
    return visitUnknown(d, v, p);
  public R visitBoolean(BooleanPropertyDefinition pd, Boolean v, P p) {
    return visitUnknown(pd, v, p);
  }
@@ -135,7 +153,7 @@
  /**
   * Visit a class.
   *
   * @param d
   * @param pd
   *          The class property definition.
   * @param v
   *          The property value to visit.
@@ -143,8 +161,8 @@
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitClass(ClassPropertyDefinition d, String v, P p) {
    return visitUnknown(d, v, p);
  public R visitClass(ClassPropertyDefinition pd, String v, P p) {
    return visitUnknown(pd, v, p);
  }
@@ -152,7 +170,7 @@
  /**
   * Visit a DN.
   *
   * @param d
   * @param pd
   *          The DN property definition.
   * @param v
   *          The property value to visit.
@@ -160,8 +178,8 @@
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitDN(DNPropertyDefinition d, DN v, P p) {
    return visitUnknown(d, v, p);
  public R visitDN(DNPropertyDefinition pd, DN v, P p) {
    return visitUnknown(pd, v, p);
  }
@@ -169,7 +187,7 @@
  /**
   * Visit a duration.
   *
   * @param d
   * @param pd
   *          The duration property definition.
   * @param v
   *          The property value to visit.
@@ -177,8 +195,8 @@
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitDuration(DurationPropertyDefinition d, Long v, P p) {
    return visitUnknown(d, v, p);
  public R visitDuration(DurationPropertyDefinition pd, Long v, P p) {
    return visitUnknown(pd, v, p);
  }
@@ -189,17 +207,17 @@
   * @param <E>
   *          The enumeration that should be used for values of the
   *          property definition.
   * @param pd
   *          The enumeration property definition.
   * @param v
   *          The property value to visit.
   * @param d
   *          The enumeration property definition.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public <E extends Enum<E>>
  R visitEnum(EnumPropertyDefinition<E> d, E v, P p) {
    return visitUnknown(d, v, p);
  R visitEnum(EnumPropertyDefinition<E> pd, E v, P p) {
    return visitUnknown(pd, v, p);
  }
@@ -207,7 +225,7 @@
  /**
   * Visit an integer.
   *
   * @param d
   * @param pd
   *          The integer property definition.
   * @param v
   *          The property value to visit.
@@ -215,8 +233,8 @@
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitInteger(IntegerPropertyDefinition d, Integer v, P p) {
    return visitUnknown(d, v, p);
  public R visitInteger(IntegerPropertyDefinition pd, Integer v, P p) {
    return visitUnknown(pd, v, p);
  }
@@ -224,7 +242,7 @@
  /**
   * Visit a IP address.
   *
   * @param d
   * @param pd
   *          The IP address property definition.
   * @param v
   *          The property value to visit.
@@ -232,8 +250,8 @@
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitIPAddress(IPAddressPropertyDefinition d, InetAddress v, P p) {
    return visitUnknown(d, v, p);
  public R visitIPAddress(IPAddressPropertyDefinition pd, InetAddress v, P p) {
    return visitUnknown(pd, v, p);
  }
@@ -241,7 +259,7 @@
  /**
   * Visit a IP address mask.
   *
   * @param d
   * @param pd
   *          The IP address mask property definition.
   * @param v
   *          The property value to visit.
@@ -249,34 +267,16 @@
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitIPAddressMask(IPAddressMaskPropertyDefinition d, AddressMask v,
  public R visitIPAddressMask(IPAddressMaskPropertyDefinition pd, AddressMask v,
      P p) {
    return visitUnknown(d, v, p);
    return visitUnknown(pd, v, p);
  }
  /**
   * Visit a dseecompat ACI.
   *
   * @param d
   *          The dseecompat ACI property definition.
   * @param v
   *          The property value to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitACI(ACIPropertyDefinition d, Aci v,
      P p) {
    return visitUnknown(d, v, p);
  }
  /**
   * Visit a size.
   *
   * @param d
   * @param pd
   *          The size property definition.
   * @param v
   *          The property value to visit.
@@ -284,8 +284,8 @@
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitSize(SizePropertyDefinition d, Long v, P p) {
    return visitUnknown(d, v, p);
  public R visitSize(SizePropertyDefinition pd, Long v, P p) {
    return visitUnknown(pd, v, p);
  }
@@ -293,7 +293,7 @@
  /**
   * Visit a string.
   *
   * @param d
   * @param pd
   *          The string property definition.
   * @param v
   *          The property value to visit.
@@ -301,8 +301,8 @@
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  public R visitString(StringPropertyDefinition d, String v, P p) {
    return visitUnknown(d, v, p);
  public R visitString(StringPropertyDefinition pd, String v, P p) {
    return visitUnknown(pd, v, p);
  }
@@ -318,7 +318,7 @@
   *
   * @param <T>
   *          The type of property value to visit.
   * @param d
   * @param pd
   *          The property definition.
   * @param v
   *          The property value.
@@ -329,9 +329,9 @@
   *           Visitor implementations may optionally throw this
   *           exception.
   */
  public <T> R visitUnknown(PropertyDefinition<T> d, T v, P p)
  public <T> R visitUnknown(PropertyDefinition<T> pd, T v, P p)
      throws UnknownPropertyDefinitionException {
    throw new UnknownPropertyDefinitionException(d, p);
    throw new UnknownPropertyDefinitionException(pd, p);
  }
}
opends/src/server/org/opends/server/admin/RelationDefinitionVisitor.java
@@ -52,38 +52,38 @@
  /**
   * Visit an instantiable relation definition.
   *
   * @param d
   * @param rd
   *          The instantiable relation definition to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  R visitInstantiable(InstantiableRelationDefinition<?, ?> d, P p);
  R visitInstantiable(InstantiableRelationDefinition<?, ?> rd, P p);
  /**
   * Visit an optional relation definition.
   *
   * @param d
   * @param rd
   *          The optional relation definition to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  R visitOptional(OptionalRelationDefinition<?, ?> d, P p);
  R visitOptional(OptionalRelationDefinition<?, ?> rd, P p);
  /**
   * Visit a singleton relation definition.
   *
   * @param d
   * @param rd
   *          The singleton relation definition to visit.
   * @param p
   *          A visitor specified parameter.
   * @return Returns a visitor specified result.
   */
  R visitSingleton(SingletonRelationDefinition<?, ?> d, P p);
  R visitSingleton(SingletonRelationDefinition<?, ?> rd, P p);
}
opends/src/server/org/opends/server/admin/client/ldap/LDAPManagedObject.java
@@ -97,10 +97,10 @@
    @Override
    public <C extends ConfigurationClient, S extends Configuration>
    Object visitAggregation(
        AggregationPropertyDefinition<C, S> d, String v, Void p) {
        AggregationPropertyDefinition<C, S> pd, String v, Void p) {
      // Aggregations values are stored as full DNs in LDAP, but
      // just their common name is exposed in the admin framework.
      Reference<C, S> reference = Reference.parseName(d.getParentPath(), d
      Reference<C, S> reference = Reference.parseName(pd.getParentPath(), pd
          .getRelationDefinition(), v);
      return reference.toDN().toString();
    }
@@ -111,9 +111,9 @@
     * {@inheritDoc}
     */
    @Override
    public <PD> Object visitUnknown(PropertyDefinition<PD> d, PD v, Void p)
    public <PD> Object visitUnknown(PropertyDefinition<PD> pd, PD v, Void p)
        throws UnknownPropertyDefinitionException {
      return d.encodeValue(v);
      return pd.encodeValue(v);
    }
  }
opends/src/server/org/opends/server/tools/dsconfig/PropertyValuePrinter.java
@@ -96,7 +96,7 @@
     * {@inheritDoc}
     */
    @Override
    public Message visitBoolean(BooleanPropertyDefinition d, Boolean v,
    public Message visitBoolean(BooleanPropertyDefinition pd, Boolean v,
        Void p) {
      if (v == false) {
        return INFO_VALUE_FALSE.get();
@@ -111,13 +111,14 @@
     * {@inheritDoc}
     */
    @Override
    public Message visitDuration(DurationPropertyDefinition d, Long v, Void p) {
      if (d.getUpperLimit() == null && (v < 0 || v == Long.MAX_VALUE)) {
    public Message visitDuration(DurationPropertyDefinition pd, Long v,
        Void p) {
      if (pd.getUpperLimit() == null && (v < 0 || v == Long.MAX_VALUE)) {
        return INFO_VALUE_UNLIMITED.get();
      }
      MessageBuilder builder = new MessageBuilder();
      long ms = d.getBaseUnit().toMilliSeconds(v);
      long ms = pd.getBaseUnit().toMilliSeconds(v);
      if (timeUnit == null && !isScriptFriendly && ms != 0) {
        // Use human-readable string representation by default.
@@ -127,7 +128,7 @@
        // base unit.
        DurationUnit unit = timeUnit;
        if (unit == null) {
          unit = d.getBaseUnit();
          unit = pd.getBaseUnit();
        }
        builder.append(numberFormat.format(unit.fromMilliSeconds(ms)));
@@ -144,8 +145,8 @@
     * {@inheritDoc}
     */
    @Override
    public Message visitSize(SizePropertyDefinition d, Long v, Void p) {
      if (d.isAllowUnlimited() && v < 0) {
    public Message visitSize(SizePropertyDefinition pd, Long v, Void p) {
      if (pd.isAllowUnlimited() && v < 0) {
        return INFO_VALUE_UNLIMITED.get();
      }
@@ -173,10 +174,10 @@
     * {@inheritDoc}
     */
    @Override
    public <T> Message visitUnknown(PropertyDefinition<T> d, T v, Void p) {
    public <T> Message visitUnknown(PropertyDefinition<T> pd, T v, Void p) {
      // For all other property definition types the default encoding
      // will do.
      String s = d.encodeValue(v);
      String s = pd.encodeValue(v);
      if (isScriptFriendly) {
        return Message.raw("%s", s);
      } else if (s.trim().length() == 0 || s.contains(",")) {
opends/src/server/org/opends/server/tools/dsconfig/SubCommandHandlerFactory.java
@@ -62,19 +62,19 @@
    /**
     * {@inheritDoc}
     */
    public Void visitInstantiable(InstantiableRelationDefinition<?, ?> r,
    public Void visitInstantiable(InstantiableRelationDefinition<?, ?> rd,
        ManagedObjectPath<?, ?> p) {
      try {
        // Create the sub-commands.
        createHandlers.add(CreateSubCommandHandler.create(parser, p, r));
        deleteHandlers.add(DeleteSubCommandHandler.create(parser, p, r));
        listHandlers.add(ListSubCommandHandler.create(parser, p, r));
        getPropHandlers.add(GetPropSubCommandHandler.create(parser, p, r));
        setPropHandlers.add(SetPropSubCommandHandler.create(parser, p, r));
        createHandlers.add(CreateSubCommandHandler.create(parser, p, rd));
        deleteHandlers.add(DeleteSubCommandHandler.create(parser, p, rd));
        listHandlers.add(ListSubCommandHandler.create(parser, p, rd));
        getPropHandlers.add(GetPropSubCommandHandler.create(parser, p, rd));
        setPropHandlers.add(SetPropSubCommandHandler.create(parser, p, rd));
        // Process the referenced managed object definition and its
        // sub-types.
        processRelation(p, r);
        processRelation(p, rd);
      } catch (ArgumentException e) {
        exception = e;
      }
@@ -87,19 +87,19 @@
    /**
     * {@inheritDoc}
     */
    public Void visitOptional(OptionalRelationDefinition<?, ?> r,
    public Void visitOptional(OptionalRelationDefinition<?, ?> rd,
        ManagedObjectPath<?, ?> p) {
      try {
        // Create the sub-commands.
        createHandlers.add(CreateSubCommandHandler.create(parser, p, r));
        deleteHandlers.add(DeleteSubCommandHandler.create(parser, p, r));
        listHandlers.add(ListSubCommandHandler.create(parser, p, r));
        getPropHandlers.add(GetPropSubCommandHandler.create(parser, p, r));
        setPropHandlers.add(SetPropSubCommandHandler.create(parser, p, r));
        createHandlers.add(CreateSubCommandHandler.create(parser, p, rd));
        deleteHandlers.add(DeleteSubCommandHandler.create(parser, p, rd));
        listHandlers.add(ListSubCommandHandler.create(parser, p, rd));
        getPropHandlers.add(GetPropSubCommandHandler.create(parser, p, rd));
        setPropHandlers.add(SetPropSubCommandHandler.create(parser, p, rd));
        // Process the referenced managed object definition and its
        // sub-types.
        processRelation(p, r);
        processRelation(p, rd);
      } catch (ArgumentException e) {
        exception = e;
      }
@@ -112,16 +112,16 @@
    /**
     * {@inheritDoc}
     */
    public Void visitSingleton(SingletonRelationDefinition<?, ?> r,
    public Void visitSingleton(SingletonRelationDefinition<?, ?> rd,
        ManagedObjectPath<?, ?> p) {
      try {
        // Create the sub-commands.
        getPropHandlers.add(GetPropSubCommandHandler.create(parser, p, r));
        setPropHandlers.add(SetPropSubCommandHandler.create(parser, p, r));
        getPropHandlers.add(GetPropSubCommandHandler.create(parser, p, rd));
        setPropHandlers.add(SetPropSubCommandHandler.create(parser, p, rd));
        // Process the referenced managed object definition and its
        // sub-types.
        processRelation(p, r);
        processRelation(p, rd);
      } catch (ArgumentException e) {
        exception = e;
      }