From 496f8cd959b71bc4c049f6c17e765a890552031e Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Wed, 19 Sep 2007 14:10:04 +0000
Subject: [PATCH] Add the ability to query a managed object path's name.

---
 opendj-sdk/opends/src/server/org/opends/server/admin/ManagedObjectPath.java                             |   21 +++++++++++++++++++++
 opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/admin/ManagedObjectPathTest.java |   19 +++++++++++++++----
 2 files changed, 36 insertions(+), 4 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/admin/ManagedObjectPath.java b/opendj-sdk/opends/src/server/org/opends/server/admin/ManagedObjectPath.java
index 6f788e8..d7d8b95 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/admin/ManagedObjectPath.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/admin/ManagedObjectPath.java
@@ -1000,6 +1000,27 @@
 
 
   /**
+   * Get the name of the managed object referred to by this path if
+   * applicable.
+   * <p>
+   * If there path does not refer to an instantiable managed object
+   * <code>null</code> is returned.
+   *
+   * @return Returns the name of the managed object referred to by
+   *         this path, or <code>null</code> if the managed object
+   *         does not have a name.
+   */
+  public String getName() {
+    if (elements.isEmpty()) {
+      return null;
+    } else {
+      return elements.get(elements.size() - 1).getName();
+    }
+  }
+
+
+
+  /**
    * Get the relation definition of the managed object referred to by
    * this path.
    * <p>
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/admin/ManagedObjectPathTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/admin/ManagedObjectPathTest.java
index ea8a1f1..032ae73 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/admin/ManagedObjectPathTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/admin/ManagedObjectPathTest.java
@@ -29,12 +29,10 @@
 
 
 
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.*;
 
-import org.opends.server.TestCaseUtils;
 import org.opends.server.DirectoryServerTestCase;
+import org.opends.server.TestCaseUtils;
 import org.opends.server.admin.std.client.ConnectionHandlerCfgClient;
 import org.opends.server.admin.std.client.GlobalCfgClient;
 import org.opends.server.admin.std.client.LDAPConnectionHandlerCfgClient;
@@ -129,6 +127,17 @@
 
 
   /**
+   * Tests that the empty path has no name.
+   */
+  @Test
+  public void testEmptyPathHasNoName() {
+    ManagedObjectPath<?, ?> path = ManagedObjectPath.emptyPath();
+    assertNull(path.getName());
+  }
+
+
+
+  /**
    * Tests that the empty path has a string representation of "/".
    */
   @Test
@@ -163,6 +172,7 @@
     assertFalse(child.isEmpty());
     assertEquals(child.size(), 1);
     assertEquals(child.parent(), path);
+    assertNull(child.getName());
     assertEquals(child.getManagedObjectDefinition(), GlobalCfgDefn
         .getInstance());
     assertEquals(child.getRelationDefinition(), RootCfgDefn.getInstance()
@@ -188,6 +198,7 @@
     assertFalse(child.isEmpty());
     assertEquals(child.size(), 1);
     assertEquals(child.parent(), path);
+    assertEquals(child.getName(), "LDAP connection handler");
     assertEquals(child.getManagedObjectDefinition(), ConnectionHandlerCfgDefn
         .getInstance());
     assertEquals(child.getRelationDefinition(), RootCfgDefn.getInstance()

--
Gitblit v1.10.0