You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pa...@apache.org on 2011/01/28 16:52:17 UTC
svn commit: r1064745 -
/directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/schemamanager/SchemaEditorSchemaLoaderUtils.java
Author: pamarcelot
Date: Fri Jan 28 15:52:17 2011
New Revision: 1064745
URL: http://svn.apache.org/viewvc?rev=1064745&view=rev
Log:
Added conversion code for ObjectClass.
Modified:
directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/schemamanager/SchemaEditorSchemaLoaderUtils.java
Modified: directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/schemamanager/SchemaEditorSchemaLoaderUtils.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/schemamanager/SchemaEditorSchemaLoaderUtils.java?rev=1064745&r1=1064744&r2=1064745&view=diff
==============================================================================
--- directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/schemamanager/SchemaEditorSchemaLoaderUtils.java (original)
+++ directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/schemamanager/SchemaEditorSchemaLoaderUtils.java Fri Jan 28 15:52:17 2011
@@ -32,6 +32,8 @@ import org.apache.directory.shared.ldap.
import org.apache.directory.shared.ldap.model.name.Dn;
import org.apache.directory.shared.ldap.model.name.Rdn;
import org.apache.directory.shared.ldap.model.schema.AttributeType;
+import org.apache.directory.shared.ldap.model.schema.ObjectClass;
+import org.apache.directory.shared.ldap.model.schema.ObjectClassTypeEnum;
import org.apache.directory.shared.ldap.model.schema.SchemaObject;
import org.apache.directory.shared.ldap.model.schema.UsageEnum;
import org.apache.directory.shared.util.Strings;
@@ -113,6 +115,42 @@ public class SchemaEditorSchemaLoaderUti
/**
+ * Converts the given object class to an equivalent entry representation.
+ *
+ * @param objectClass
+ * the object class
+ * @return
+ * the object class converted to an equivalent entry representation
+ * @throws LdapException
+ */
+ public Entry toEntry( ObjectClass objectClass ) throws LdapException
+ {
+ // Creating a blank entry
+ Entry entry = new DefaultEntry();
+
+ // Setting calculated DN
+ entry.setDn( getDn( objectClass, SchemaConstants.OBJECT_CLASSES_PATH ) );
+
+ // Values common to all schema objects
+ addSchemaObjectValues( objectClass, SchemaConstants.META_OBJECT_CLASS_OC, entry );
+
+ // Superiors value
+ addSuperiorsValue( objectClass, entry );
+
+ // Class type value
+ addClassTypeValue( objectClass, entry );
+
+ // Musts value
+ addMustsValue( objectClass, entry );
+
+ // Mays value
+ addMaysValue( objectClass, entry );
+
+ return entry;
+ }
+
+
+ /**
* Returns the DN for the given schema object in the given object path.
*
* @param schemaObject
@@ -159,7 +197,7 @@ public class SchemaEditorSchemaLoaderUti
// Description
addDescriptionValue( schemaObject, entry );
- // Obsolete (only if true)
+ // Obsolete
addObsoleteValue( schemaObject, entry );
}
@@ -452,4 +490,99 @@ public class SchemaEditorSchemaLoaderUti
entry.add( attribute );
}
}
+
+
+ /**
+ * Adds the superiors value.
+ *
+ * @param objectClass
+ * the object class
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private void addSuperiorsValue( ObjectClass objectClass, Entry entry ) throws LdapException
+ {
+ List<String> superiors = objectClass.getSuperiorOids();
+ if ( ( superiors != null ) && ( superiors.size() > 0 ) )
+ {
+ EntryAttribute attribute = new DefaultEntryAttribute( "m-supObjectClass" );
+ entry.add( attribute );
+
+ for ( String superior : superiors )
+ {
+ attribute.add( superior );
+ }
+ }
+ }
+
+
+ /**
+ * Adds class type value.
+ *
+ * @param objectClass
+ * the object class
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private void addClassTypeValue( ObjectClass objectClass, Entry entry ) throws LdapException
+ {
+ ObjectClassTypeEnum classType = objectClass.getType();
+ if ( classType != ObjectClassTypeEnum.STRUCTURAL )
+ {
+ EntryAttribute attribute = new DefaultEntryAttribute( "m-typeObjectClass", classType.toString() );
+ entry.add( attribute );
+ }
+ }
+
+
+ /**
+ * Adds musts value.
+ *
+ * @param objectClass
+ * the object class
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private void addMustsValue( ObjectClass objectClass, Entry entry ) throws LdapException
+ {
+ List<String> musts = objectClass.getMustAttributeTypeOids();
+ if ( ( musts != null ) && ( musts.size() > 0 ) )
+ {
+ EntryAttribute attribute = new DefaultEntryAttribute( "m-must" );
+ entry.add( attribute );
+
+ for ( String must : musts )
+ {
+ attribute.add( must );
+ }
+ }
+ }
+
+
+ /**
+ * Adds mays value.
+ *
+ * @param objectClass
+ * the object class
+ * @param entry
+ * the entry
+ * @throws LdapException
+ */
+ private void addMaysValue( ObjectClass objectClass, Entry entry ) throws LdapException
+ {
+ List<String> mays = objectClass.getMayAttributeTypeOids();
+ if ( ( mays != null ) && ( mays.size() > 0 ) )
+ {
+ EntryAttribute attribute = new DefaultEntryAttribute( "m-may" );
+ entry.add( attribute );
+
+ for ( String may : mays )
+ {
+ attribute.add( may );
+ }
+ }
+ }
}