From 826e7e5d70450bd954d561024a497b4887dedfcf Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Thu, 19 Apr 2007 09:48:46 +0000
Subject: [PATCH] Fix for issue 1442.

---
 opends/src/server/org/opends/server/admin/RelationDefinition.java |  163 ++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 132 insertions(+), 31 deletions(-)

diff --git a/opends/src/server/org/opends/server/admin/RelationDefinition.java b/opends/src/server/org/opends/server/admin/RelationDefinition.java
index 11cef9e..72e16a6 100644
--- a/opends/src/server/org/opends/server/admin/RelationDefinition.java
+++ b/opends/src/server/org/opends/server/admin/RelationDefinition.java
@@ -29,6 +29,11 @@
 
 
 
+import java.util.Locale;
+import java.util.MissingResourceException;
+
+
+
 /**
  * Relation definitions define relationships between types of managed
  * objects. In addition they define the ownership model:
@@ -86,8 +91,8 @@
 
 
   /**
-   * Create a new managed object relation definition with the specified name and
-   * referenced managed object definition.
+   * Create a new managed object relation definition with the
+   * specified name and referenced managed object definition.
    *
    * @param pd
    *          The parent managed object definition.
@@ -96,8 +101,9 @@
    * @param cd
    *          The child managed object definition.
    */
-  protected RelationDefinition(AbstractManagedObjectDefinition<?, ?> pd,
-      String name, AbstractManagedObjectDefinition<C, S> cd) {
+  protected RelationDefinition(
+      AbstractManagedObjectDefinition<?, ?> pd, String name,
+      AbstractManagedObjectDefinition<C, S> cd) {
     this.name = name;
     this.pd = pd;
     this.cd = cd;
@@ -106,6 +112,71 @@
 
 
   /**
+   * Apply a visitor to this relation definition.
+   *
+   * @param <R>
+   *          The return type of the visitor's methods.
+   * @param <P>
+   *          The type of the additional parameters to the visitor's
+   *          methods.
+   * @param v
+   *          The relation definition visitor.
+   * @param p
+   *          Optional additional visitor parameter.
+   * @return Returns a result as specified by the visitor.
+   */
+  public abstract <R, P> R accept(RelationDefinitionVisitor<R, P> v, P p);
+
+
+
+  /**
+   * Get the definition of the child managed object.
+   *
+   * @return Returns the definition of the child managed object.
+   */
+  public final AbstractManagedObjectDefinition<C, S> getChildDefinition() {
+    return cd;
+  }
+
+
+
+  /**
+   * Gets the optional description of this relation definition in the
+   * default locale.
+   *
+   * @return Returns the description of this relation definition in
+   *         the default locale, or <code>null</code> if there is no
+   *         description.
+   */
+  public final String getDescription() {
+    return getDescription(Locale.getDefault());
+  }
+
+
+
+  /**
+   * Gets the optional description of this relation definition in the
+   * specified locale.
+   *
+   * @param locale
+   *          The locale.
+   * @return Returns the description of this relation definition in
+   *         the specified locale, or <code>null</code> if there is
+   *         no description.
+   */
+  public final String getDescription(Locale locale) {
+    try {
+      String property = "relation." + name + ".description";
+      return ManagedObjectDefinitionI18NResource.getInstance()
+          .getMessage(getParentDefinition(), property, locale);
+    } catch (MissingResourceException e) {
+      return null;
+    }
+  }
+
+
+
+  /**
    * Get the name of the relation.
    *
    * @return Returns the name of the relation.
@@ -128,12 +199,61 @@
 
 
   /**
-   * Get the definition of the child managed object.
+   * Gets the synopsis of this relation definition in the default
+   * locale.
    *
-   * @return Returns the definition of the child managed object.
+   * @return Returns the synopsis of this relation definition in the
+   *         default locale.
    */
-  public final AbstractManagedObjectDefinition<C, S> getChildDefinition() {
-    return cd;
+  public final String getSynopsis() {
+    return getSynopsis(Locale.getDefault());
+  }
+
+
+
+  /**
+   * Gets the synopsis of this relation definition in the specified
+   * locale.
+   *
+   * @param locale
+   *          The locale.
+   * @return Returns the synopsis of this relation definition in the
+   *         specified locale.
+   */
+  public final String getSynopsis(Locale locale) {
+    String property = "relation." + name + ".synopsis";
+    return ManagedObjectDefinitionI18NResource.getInstance()
+        .getMessage(getParentDefinition(), property, locale);
+  }
+
+
+
+  /**
+   * Gets the user friendly name of this relation definition in the
+   * default locale.
+   *
+   * @return Returns the user friendly name of this relation
+   *         definition in the default locale.
+   */
+  public final String getUserFriendlyName() {
+    return getUserFriendlyName(Locale.getDefault());
+  }
+
+
+
+  /**
+   * Gets the user friendly name of this relation definition in the
+   * specified locale.
+   *
+   * @param locale
+   *          The locale.
+   * @return Returns the user friendly name of this relation
+   *         definition in the specified locale.
+   */
+  public final String getUserFriendlyName(Locale locale) {
+    String property = "relation." + name + ".user-friendly-name";
+    return ManagedObjectDefinitionI18NResource.getInstance()
+        .getMessage(getParentDefinition(), property, locale);
   }
 
 
@@ -151,31 +271,12 @@
 
 
   /**
-   * Append a string representation of the managed object relation to the
-   * provided string builder.
+   * Append a string representation of the managed object relation to
+   * the provided string builder.
    *
    * @param builder
-   *          The string builder where the string representation should be
-   *          appended.
+   *          The string builder where the string representation
+   *          should be appended.
    */
   public abstract void toString(StringBuilder builder);
-
-
-
-  /**
-   * Apply a visitor to this relation definition.
-   *
-   * @param <R>
-   *          The return type of the visitor's methods.
-   * @param <P>
-   *          The type of the additional parameters to the visitor's
-   *          methods.
-   * @param v
-   *          The relation definition visitor.
-   * @param p
-   *          Optional additional visitor parameter.
-   * @return Returns a result as specified by the visitor.
-   */
-  public abstract <R, P> R accept(RelationDefinitionVisitor<R, P> v,
-      P p);
 }

--
Gitblit v1.10.0