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

matthew_swift
26.01.2007 54c2799f45256fef4a981fa2a6a7c97a9708ac8b
opends/src/server/org/opends/server/tools/dsconfig/GetPropSubCommandHandler.java
@@ -59,7 +59,6 @@
import org.opends.server.admin.client.ConcurrentModificationException;
import org.opends.server.admin.client.ManagedObject;
import org.opends.server.admin.client.ManagedObjectDecodingException;
import org.opends.server.admin.client.ManagementContext;
import org.opends.server.protocols.ldap.LDAPResultCode;
import org.opends.server.tools.ClientException;
import org.opends.server.util.args.ArgumentException;
@@ -84,6 +83,8 @@
   * Creates a new get-xxx-prop sub-command for an instantiable
   * relation.
   *
   * @param app
   *          The console application.
   * @param parser
   *          The sub-command argument parser.
   * @param path
@@ -94,15 +95,19 @@
   * @throws ArgumentException
   *           If the sub-command could not be created successfully.
   */
  public static GetPropSubCommandHandler create(
  public static GetPropSubCommandHandler create(ConsoleApplication app,
      SubCommandArgumentParser parser, ManagedObjectPath<?, ?> path,
      InstantiableRelationDefinition<?, ?> r) throws ArgumentException {
    return new GetPropSubCommandHandler(parser, path.child(r, "DUMMY"), r);
    return new GetPropSubCommandHandler(app, parser, path.child(r, "DUMMY"), r);
  }
  /**
   * Creates a new get-xxx-prop sub-command for an optional relation.
   *
   * @param app
   *          The console application.
   * @param parser
   *          The sub-command argument parser.
   * @param path
@@ -113,15 +118,19 @@
   * @throws ArgumentException
   *           If the sub-command could not be created successfully.
   */
  public static GetPropSubCommandHandler create(
  public static GetPropSubCommandHandler create(ConsoleApplication app,
      SubCommandArgumentParser parser, ManagedObjectPath<?, ?> path,
      OptionalRelationDefinition<?, ?> r) throws ArgumentException {
    return new GetPropSubCommandHandler(parser, path.child(r), r);
    return new GetPropSubCommandHandler(app, parser, path.child(r), r);
  }
  /**
   * Creates a new get-xxx-prop sub-command for a singleton relation.
   *
   * @param app
   *          The console application.
   * @param parser
   *          The sub-command argument parser.
   * @param path
@@ -132,10 +141,10 @@
   * @throws ArgumentException
   *           If the sub-command could not be created successfully.
   */
  public static GetPropSubCommandHandler create(
  public static GetPropSubCommandHandler create(ConsoleApplication app,
      SubCommandArgumentParser parser, ManagedObjectPath<?, ?> path,
      SingletonRelationDefinition<?, ?> r) throws ArgumentException {
    return new GetPropSubCommandHandler(parser, path.child(r), r);
    return new GetPropSubCommandHandler(app, parser, path.child(r), r);
  }
  // The sub-commands naming arguments.
@@ -150,9 +159,11 @@
  // Private constructor.
  private GetPropSubCommandHandler(SubCommandArgumentParser parser,
      ManagedObjectPath<?, ?> path, RelationDefinition<?, ?> r)
      throws ArgumentException {
  private GetPropSubCommandHandler(ConsoleApplication app,
      SubCommandArgumentParser parser, ManagedObjectPath<?, ?> path,
      RelationDefinition<?, ?> r) throws ArgumentException {
    super(app);
    this.path = path;
    // Create the sub-command.
@@ -192,21 +203,19 @@
   * {@inheritDoc}
   */
  @Override
  public int run(DSConfig app, PrintStream out, PrintStream err)
      throws ArgumentException, ClientException {
  public int run() throws ArgumentException, ClientException {
    // Get the property names.
    Set<String> propertyNames = getPropertyNames();
    PropertyValuePrinter valuePrinter = new PropertyValuePrinter(getSizeUnit(),
        getTimeUnit(), app.isScriptFriendly());
        getTimeUnit(), getConsoleApplication().isScriptFriendly());
    // Get the naming argument values.
    List<String> names = getNamingArgValues(namingArgs);
    // Get the targeted managed object.
    ManagementContext context = app.getManagementContext();
    ManagedObject<?> child;
    try {
      child = getManagedObject(context, path, names);
      child = getManagedObject(path, names);
    } catch (AuthorizationException e) {
      int msgID = MSGID_DSCFG_ERROR_GET_CHILD_AUTHZ;
      String ufn = path.getManagedObjectDefinition().getUserFriendlyName();
@@ -273,11 +282,12 @@
      }
      if (propertyNames.isEmpty() || propertyNames.contains(pd.getName())) {
        displayProperty(app, builder, child, pd, valuePrinter);
        displayProperty(builder, child, pd, valuePrinter);
      }
    }
    if (app.isScriptFriendly()) {
    PrintStream out = getConsoleApplication().getOutputStream();
    if (getConsoleApplication().isScriptFriendly()) {
      TablePrinter printer = createScriptFriendlyTablePrinter(out);
      builder.print(printer);
    } else {
@@ -293,9 +303,8 @@
  // Display the set of values associated with a property.
  private <T> void displayProperty(final DSConfig app, TableBuilder builder,
      ManagedObject<?> mo, PropertyDefinition<T> pd,
      PropertyValuePrinter valuePrinter) {
  private <T> void displayProperty(TableBuilder builder, ManagedObject<?> mo,
      PropertyDefinition<T> pd, PropertyValuePrinter valuePrinter) {
    SortedSet<T> values = mo.getPropertyValues(pd);
    if (values.isEmpty()) {
      // There are no values or default values. Display the default
@@ -313,7 +322,7 @@
        public String visitAlias(AliasDefaultBehaviorProvider<T> d, Void p) {
          if (app.isVerbose()) {
          if (getConsoleApplication().isVerbose()) {
            return d.getSynopsis();
          } else {
            return null;
@@ -351,7 +360,7 @@
      String content = pd.getDefaultBehaviorProvider().accept(visitor, null);
      if (content == null) {
        if (app.isScriptFriendly()) {
        if (getConsoleApplication().isScriptFriendly()) {
          builder.appendCell();
        } else {
          builder.appendCell("-");
@@ -370,7 +379,7 @@
        builder.startRow();
        builder.appendCell(pd.getName());
        if (app.isScriptFriendly()) {
        if (getConsoleApplication().isScriptFriendly()) {
          for (T value : values) {
            builder.appendCell(valuePrinter.print(pd, value));
          }