You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2007/04/22 17:15:07 UTC

svn commit: r531197 - /directory/ldapstudio/trunk/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/model/DN.java

Author: seelmann
Date: Sun Apr 22 08:15:06 2007
New Revision: 531197

URL: http://svn.apache.org/viewvc?view=rev&rev=531197
Log:
Added local name support.

Modified:
    directory/ldapstudio/trunk/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/model/DN.java

Modified: directory/ldapstudio/trunk/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/model/DN.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/model/DN.java?view=diff&rev=531197&r1=531196&r2=531197
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/model/DN.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/model/DN.java Sun Apr 22 08:15:06 2007
@@ -139,6 +139,36 @@
 
 
     /**
+     * Creates a new instance of DN using the given local name and suffix.
+     * The given local name and suffix are cloned.
+     *
+     * @param localName the local name
+     * @param suffix the suffix
+     */
+    public DN( DN localName, DN suffix )
+    {
+        if ( localName == null )
+        {
+            throw new IllegalArgumentException( BrowserCoreMessages.model__empty_dn );
+        }
+        if ( suffix == null )
+        {
+            throw new IllegalArgumentException( BrowserCoreMessages.model__empty_dn );
+        }
+
+        this.rdns = new RDN[localName.getRdns().length + suffix.getRdns().length];
+        for ( int i = 0; i < localName.getRdns().length; i++ )
+        {
+            this.rdns[i] = new RDN( localName.getRdns()[i] );
+        }
+        for ( int i = 0; i < suffix.getRdns().length; i++ )
+        {
+            this.rdns[i + localName.getRdns().length] = new RDN( suffix.getRdns()[i] );
+        }
+    }
+
+
+    /**
      * Creates a new instance of DN. The given strings are parsed.
      *
      * @param rdn the rdn
@@ -206,6 +236,32 @@
             DN parent = new DN();
             parent.rdns = parentRdns;
             return parent;
+        }
+    }
+
+
+    /**
+     * Extracts the local name by stripping the given
+     * suffix from this DN.
+     *
+     * @param suffix the suffix to strip
+     *
+     * @return the local name
+     */
+    public DN getLocalName( DN suffix )
+    {
+        if ( suffix != null && suffix.getRdns().length > 0 )
+        {
+            DN localName = new DN();
+            for ( int i = getRdns().length - suffix.getRdns().length - 1; i >= 0; i-- )
+            {
+                localName = new DN( getRdns()[i], localName );
+            }
+            return localName;
+        }
+        else
+        {
+            return this;
         }
     }