You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2010/12/21 01:07:35 UTC

svn commit: r1051324 - in /directory/apacheds/branches/apacheds-AP/core-api/src/main/java/org/apache/directory/server/core/administrative: AbstractAdministrativePoint.java AdministrativePoint.java Subentry.java

Author: elecharny
Date: Tue Dec 21 00:07:35 2010
New Revision: 1051324

URL: http://svn.apache.org/viewvc?rev=1051324&view=rev
Log:
o Moved the Subentry class in core-api
o Added a set of subentries in the AdministrativePoint class to be able to easily find back the associated subentries

Added:
    directory/apacheds/branches/apacheds-AP/core-api/src/main/java/org/apache/directory/server/core/administrative/Subentry.java
      - copied, changed from r1051097, directory/apacheds/branches/apacheds-AP/core/src/main/java/org/apache/directory/server/core/subtree/Subentry.java
Modified:
    directory/apacheds/branches/apacheds-AP/core-api/src/main/java/org/apache/directory/server/core/administrative/AbstractAdministrativePoint.java
    directory/apacheds/branches/apacheds-AP/core-api/src/main/java/org/apache/directory/server/core/administrative/AdministrativePoint.java

Modified: directory/apacheds/branches/apacheds-AP/core-api/src/main/java/org/apache/directory/server/core/administrative/AbstractAdministrativePoint.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-AP/core-api/src/main/java/org/apache/directory/server/core/administrative/AbstractAdministrativePoint.java?rev=1051324&r1=1051323&r2=1051324&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-AP/core-api/src/main/java/org/apache/directory/server/core/administrative/AbstractAdministrativePoint.java (original)
+++ directory/apacheds/branches/apacheds-AP/core-api/src/main/java/org/apache/directory/server/core/administrative/AbstractAdministrativePoint.java Tue Dec 21 00:07:35 2010
@@ -20,7 +20,9 @@
 package org.apache.directory.server.core.administrative;
 
 
+import java.util.HashSet;
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.directory.shared.ldap.name.DN;
@@ -51,6 +53,9 @@ public abstract class AbstractAdministra
 
     /** The children AdministrativePoints */
     protected Map<String, AdministrativePoint> children;
+    
+    /** The associated subentries */
+    private Set<Subentry> subentries; 
 
 
     /**
@@ -63,6 +68,7 @@ public abstract class AbstractAdministra
         this.role = role;
         this.children = new ConcurrentHashMap<String, AdministrativePoint>();
         this.seqNumber = seqNumber;
+        subentries = new HashSet<Subentry>();
     }
 
 
@@ -149,8 +155,54 @@ public abstract class AbstractAdministra
     {
         this.seqNumber = seqNumber;
     }
+    
+    
+    /**
+     * {@inheritDoc}
+     */
+    public void addSubentry( Subentry subentry )
+    {
+        synchronized( subentries )
+        {
+            subentries.add( subentry );
+        }
+    }
+    
+    
+    /**
+     * {@inheritDoc}
+     */
+    public Set<Subentry> getSubentries( AdministrativeRole role )
+    {
+        synchronized( subentries )
+        {
+            Set<Subentry> subentries = new HashSet<Subentry>();
+            
+            for ( Subentry subentry : this.subentries )
+            {
+                if ( subentry.getAdministrativeRoles().contains( role ) )
+                {
+                    subentries.add( subentry );
+                }
+            }
+            
+            return subentries;
+        }
+    }
+    
+    
+    /**
+     * {@inheritDoc}
+     */
+    public Set<Subentry> getSubentries()
+    {
+        synchronized( subentries )
+        {
+            return subentries;
+        }
+    }
 
-
+    
     /**
      * {@inheritDoc}
      */

Modified: directory/apacheds/branches/apacheds-AP/core-api/src/main/java/org/apache/directory/server/core/administrative/AdministrativePoint.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-AP/core-api/src/main/java/org/apache/directory/server/core/administrative/AdministrativePoint.java?rev=1051324&r1=1051323&r2=1051324&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-AP/core-api/src/main/java/org/apache/directory/server/core/administrative/AdministrativePoint.java (original)
+++ directory/apacheds/branches/apacheds-AP/core-api/src/main/java/org/apache/directory/server/core/administrative/AdministrativePoint.java Tue Dec 21 00:07:35 2010
@@ -19,6 +19,8 @@
  */
 package org.apache.directory.server.core.administrative;
 
+import java.util.Set;
+
 import org.apache.directory.shared.ldap.name.DN;
 import org.apache.directory.shared.ldap.subtree.AdministrativeRole;
 
@@ -96,4 +98,28 @@ public interface AdministrativePoint
      * @return The administrativeRole
      */
     AdministrativeRole getRole();
+    
+    
+    /**
+     * Associate a new SubEntry to this AdministrationPoint
+     * 
+     * @param subentry The added SubEntry
+     */
+    void addSubentry( Subentry subentry );
+    
+    
+    /**
+     * Get the set of subentries associated with a role 
+     * @param role The role we are looking the subentries for
+     * @return The Set of subentries found
+     */
+    Set<Subentry> getSubentries( AdministrativeRole role );
+    
+    
+    /**
+     * Get the set of subentries associated with the AdministrativePoint
+     * @param role The role we are looking the subentries for
+     * @return The Set of subentries found
+     */
+    Set<Subentry> getSubentries();
 }

Copied: directory/apacheds/branches/apacheds-AP/core-api/src/main/java/org/apache/directory/server/core/administrative/Subentry.java (from r1051097, directory/apacheds/branches/apacheds-AP/core/src/main/java/org/apache/directory/server/core/subtree/Subentry.java)
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-AP/core-api/src/main/java/org/apache/directory/server/core/administrative/Subentry.java?p2=directory/apacheds/branches/apacheds-AP/core-api/src/main/java/org/apache/directory/server/core/administrative/Subentry.java&p1=directory/apacheds/branches/apacheds-AP/core/src/main/java/org/apache/directory/server/core/subtree/Subentry.java&r1=1051097&r2=1051324&rev=1051324&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-AP/core/src/main/java/org/apache/directory/server/core/subtree/Subentry.java (original)
+++ directory/apacheds/branches/apacheds-AP/core-api/src/main/java/org/apache/directory/server/core/administrative/Subentry.java Tue Dec 21 00:07:35 2010
@@ -17,7 +17,7 @@
  *  under the License.
  *
  */
-package org.apache.directory.server.core.subtree;
+package org.apache.directory.server.core.administrative;
 
 
 import java.util.Set;
@@ -47,7 +47,7 @@ public class Subentry
      *
      * @param ss The subtree specification
      */
-    final void setSubtreeSpecification( SubtreeSpecification ss )
+    public void setSubtreeSpecification( SubtreeSpecification ss )
     {
         this.ss = ss;
     }
@@ -56,7 +56,7 @@ public class Subentry
     /**
      * @return The subtree specification
      */
-    final SubtreeSpecification getSubtreeSpecification()
+    public SubtreeSpecification getSubtreeSpecification()
     {
         return ss;
     }
@@ -67,7 +67,7 @@ public class Subentry
      *
      * @param administrativeRoles The roles to be added
      */
-    final void setAdministrativeRoles( Set<AdministrativeRole> administrativeRoles )
+    public void setAdministrativeRoles( Set<AdministrativeRole> administrativeRoles )
     {
         this.administrativeRoles = administrativeRoles;
     }
@@ -76,7 +76,7 @@ public class Subentry
     /**
      * @return The list of roles for this subentry
      */
-    final Set<AdministrativeRole> getAdministrativeRoles()
+    public Set<AdministrativeRole> getAdministrativeRoles()
     {
         return administrativeRoles;
     }
@@ -85,7 +85,7 @@ public class Subentry
     /**
      * Tells if the type contains the Collective attribute Administrative Role
      */
-    final boolean isCollectiveAdminRole()
+    public boolean isCollectiveAdminRole()
     {
         return administrativeRoles.contains( AdministrativeRole.CollectiveAttributeInnerArea ) ||
         administrativeRoles.contains( AdministrativeRole.CollectiveAttributeSpecificArea );
@@ -95,7 +95,7 @@ public class Subentry
     /**
      * Tells if the type contains the SubSchema Administrative Role
      */
-    final boolean isSchemaAdminRole()
+    public boolean isSchemaAdminRole()
     {
         return administrativeRoles.contains( AdministrativeRole.SubSchemaSpecificArea );
     }
@@ -104,7 +104,7 @@ public class Subentry
     /**
      * Tells if the type contains the Access Control Administrative Role
      */
-    final boolean isAccessControlAdminRole()
+    public boolean isAccessControlAdminRole()
     {
         return administrativeRoles.contains( AdministrativeRole.AccessControlSpecificArea ) ||
                administrativeRoles.contains( AdministrativeRole.AccessControlInnerArea );
@@ -114,7 +114,7 @@ public class Subentry
     /**
      * Tells if the type contains the Triggers Administrative Role
      */
-    final boolean isTriggersAdminRole()
+    public boolean isTriggersAdminRole()
     {
         return administrativeRoles.contains( AdministrativeRole.TriggerExecutionSpecificArea ) ||
                administrativeRoles.contains( AdministrativeRole.TriggerExecutionInnerArea );