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 2013/12/03 22:06:47 UTC
svn commit: r1547588 - in
/directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor:
model/ model/io/ model/schemamanager/ view/views/ view/wizards/
Author: seelmann
Date: Tue Dec 3 21:06:46 2013
New Revision: 1547588
URL: http://svn.apache.org/r1547588
Log:
* Fix for DIRSTUDIO-958: Order schema objects hierarchically in OpenLdapSchemeFileExporter
* Remove duplicate functionality in ExportSchemasForADSWizard
* Also changed return type MutableObjectClass to its super type
Modified:
directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/DependenciesComputer.java
directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/Schema.java
directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/OpenLdapSchemaFileExporter.java
directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/XMLSchemaFileExporter.java
directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/schemamanager/SchemaEditorSchemaLoader.java
directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java
directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/ExportSchemasForADSWizard.java
directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/MergeSchemasWizard.java
Modified: directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/DependenciesComputer.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/DependenciesComputer.java?rev=1547588&r1=1547587&r2=1547588&view=diff
==============================================================================
--- directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/DependenciesComputer.java (original)
+++ directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/DependenciesComputer.java Tue Dec 3 21:06:46 2013
@@ -30,7 +30,6 @@ import org.apache.commons.collections.ma
import org.apache.directory.api.ldap.model.schema.AttributeType;
import org.apache.directory.api.ldap.model.schema.LdapSyntax;
import org.apache.directory.api.ldap.model.schema.MatchingRule;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
import org.apache.directory.api.ldap.model.schema.ObjectClass;
import org.apache.directory.api.ldap.model.schema.SchemaObject;
import org.apache.directory.studio.schemaeditor.controller.SchemaHandler;
@@ -98,7 +97,7 @@ public class DependenciesComputer
}
}
- List<MutableObjectClass> objectClasses = schema.getObjectClasses();
+ List<ObjectClass> objectClasses = schema.getObjectClasses();
if ( objectClasses != null )
{
for ( ObjectClass objectClass : objectClasses )
Modified: directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/Schema.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/Schema.java?rev=1547588&r1=1547587&r2=1547588&view=diff
==============================================================================
--- directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/Schema.java (original)
+++ directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/Schema.java Tue Dec 3 21:06:46 2013
@@ -45,7 +45,7 @@ public class Schema extends DefaultSchem
private List<AttributeType> attributeTypes = new ArrayList<AttributeType>();
/** The ObjectClass List */
- private List<MutableObjectClass> objectClasses = new ArrayList<MutableObjectClass>();
+ private List<ObjectClass> objectClasses = new ArrayList<ObjectClass>();
/** The MatchingRule List */
private List<MatchingRule> matchingRules = new ArrayList<MatchingRule>();
@@ -258,7 +258,7 @@ public class Schema extends DefaultSchem
* @return
* all the ObjectClass objects contained in the Schema
*/
- public List<MutableObjectClass> getObjectClasses()
+ public List<ObjectClass> getObjectClasses()
{
return objectClasses;
}
Modified: directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/OpenLdapSchemaFileExporter.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/OpenLdapSchemaFileExporter.java?rev=1547588&r1=1547587&r2=1547588&view=diff
==============================================================================
--- directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/OpenLdapSchemaFileExporter.java (original)
+++ directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/OpenLdapSchemaFileExporter.java Tue Dec 3 21:06:46 2013
@@ -23,6 +23,7 @@ package org.apache.directory.studio.sche
import org.apache.directory.api.ldap.model.schema.AttributeType;
import org.apache.directory.api.ldap.model.schema.ObjectClass;
import org.apache.directory.api.ldap.model.schema.SchemaObjectRenderer;
+import org.apache.directory.api.ldap.model.schema.SchemaObjectSorter;
import org.apache.directory.studio.schemaeditor.model.Schema;
@@ -46,13 +47,13 @@ public class OpenLdapSchemaFileExporter
{
StringBuffer sb = new StringBuffer();
- for ( AttributeType at : schema.getAttributeTypes() )
+ for ( AttributeType at : SchemaObjectSorter.hierarchicalOrdered( schema.getAttributeTypes() ) )
{
sb.append( toSourceCode( at ) );
sb.append( "\n" ); //$NON-NLS-1$
}
- for ( ObjectClass oc : schema.getObjectClasses() )
+ for ( ObjectClass oc : SchemaObjectSorter.sortObjectClasses( schema.getObjectClasses() ) )
{
sb.append( toSourceCode( oc ) );
sb.append( "\n" ); //$NON-NLS-1$
Modified: directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/XMLSchemaFileExporter.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/XMLSchemaFileExporter.java?rev=1547588&r1=1547587&r2=1547588&view=diff
==============================================================================
--- directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/XMLSchemaFileExporter.java (original)
+++ directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/XMLSchemaFileExporter.java Tue Dec 3 21:06:46 2013
@@ -28,7 +28,6 @@ import java.util.List;
import org.apache.directory.api.ldap.model.schema.AttributeType;
import org.apache.directory.api.ldap.model.schema.LdapSyntax;
import org.apache.directory.api.ldap.model.schema.MatchingRule;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
import org.apache.directory.api.ldap.model.schema.ObjectClass;
import org.apache.directory.api.ldap.model.schema.ObjectClassTypeEnum;
import org.apache.directory.api.ldap.model.schema.UsageEnum;
@@ -205,7 +204,7 @@ public class XMLSchemaFileExporter
}
// Object Classes
- List<MutableObjectClass> ocs = schema.getObjectClasses();
+ List<ObjectClass> ocs = schema.getObjectClasses();
if ( ( ocs != null ) && ( ocs.size() >= 1 ) )
{
Element objectClassesNode = element.addElement( OBJECT_CLASSES_TAG );
Modified: directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/schemamanager/SchemaEditorSchemaLoader.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/schemamanager/SchemaEditorSchemaLoader.java?rev=1547588&r1=1547587&r2=1547588&view=diff
==============================================================================
--- directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/schemamanager/SchemaEditorSchemaLoader.java (original)
+++ directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/schemamanager/SchemaEditorSchemaLoader.java Tue Dec 3 21:06:46 2013
@@ -29,7 +29,6 @@ import org.apache.directory.api.ldap.mod
import org.apache.directory.api.ldap.model.schema.AttributeType;
import org.apache.directory.api.ldap.model.schema.LdapSyntax;
import org.apache.directory.api.ldap.model.schema.MatchingRule;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
import org.apache.directory.api.ldap.model.schema.ObjectClass;
import org.apache.directory.api.ldap.model.schema.registries.AbstractSchemaLoader;
import org.apache.directory.api.ldap.model.schema.registries.Schema;
@@ -246,7 +245,7 @@ public class SchemaEditorSchemaLoader ex
if ( schemaHandlerSchema != null )
{
- List<MutableObjectClass> objectClasses = schemaHandlerSchema.getObjectClasses();
+ List<ObjectClass> objectClasses = schemaHandlerSchema.getObjectClasses();
for ( ObjectClass objectClass : objectClasses )
{
Modified: directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java?rev=1547588&r1=1547587&r2=1547588&view=diff
==============================================================================
--- directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java (original)
+++ directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java Tue Dec 3 21:06:46 2013
@@ -1254,7 +1254,7 @@ public class SchemaViewContentProvider i
attributeTypeAddedHierarchicalPresentation( at );
}
- for ( MutableObjectClass oc : schema.getObjectClasses() )
+ for ( ObjectClass oc : schema.getObjectClasses() )
{
objectClassAddedHierarchicalPresentation( oc );
}
@@ -1348,7 +1348,7 @@ public class SchemaViewContentProvider i
Folder ocFolder = new Folder( FolderType.OBJECT_CLASS, schemaWrapper );
schemaWrapper.addChild( ocFolder );
- for ( MutableObjectClass objectClass : schema.getObjectClasses() )
+ for ( ObjectClass objectClass : schema.getObjectClasses() )
{
ObjectClassWrapper ocw = new ObjectClassWrapper( objectClass, ocFolder );
ocw.getParent().addChild( ocw );
@@ -1364,7 +1364,7 @@ public class SchemaViewContentProvider i
elementsToWrappersMap.put( attributeType, atw );
}
- for ( MutableObjectClass objectClass : schema.getObjectClasses() )
+ for ( ObjectClass objectClass : schema.getObjectClasses() )
{
ObjectClassWrapper ocw = new ObjectClassWrapper( objectClass, schemaWrapper );
ocw.getParent().addChild( ocw );
Modified: directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/ExportSchemasForADSWizard.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/ExportSchemasForADSWizard.java?rev=1547588&r1=1547587&r2=1547588&view=diff
==============================================================================
--- directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/ExportSchemasForADSWizard.java (original)
+++ directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/ExportSchemasForADSWizard.java Tue Dec 3 21:06:46 2013
@@ -28,7 +28,6 @@ import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
import java.util.Set;
@@ -40,8 +39,8 @@ import org.apache.directory.api.ldap.mod
import org.apache.directory.api.ldap.model.exception.LdapException;
import org.apache.directory.api.ldap.model.name.Rdn;
import org.apache.directory.api.ldap.model.schema.AttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
import org.apache.directory.api.ldap.model.schema.ObjectClass;
+import org.apache.directory.api.ldap.model.schema.SchemaObjectSorter;
import org.apache.directory.api.util.Strings;
import org.apache.directory.studio.schemaeditor.Activator;
import org.apache.directory.studio.schemaeditor.PluginUtils;
@@ -353,7 +352,7 @@ public class ExportSchemasForADSWizard e
sb.append( "\n" ); //$NON-NLS-1$
// Generating LDIF for Object Classes
- List<MutableObjectClass> sortedObjectClasses = getSortedObjectClasses( schema.getObjectClasses() );
+ Iterable<ObjectClass> sortedObjectClasses = SchemaObjectSorter.sortObjectClasses( schema.getObjectClasses() );
for ( ObjectClass oc : sortedObjectClasses )
{
ObjectClassHolder holder = new ObjectClassHolder( oc.getOid() );
@@ -405,66 +404,6 @@ public class ExportSchemasForADSWizard e
/**
- * Sorts the object classes by hierarchy.
- *
- * @param objectClasses the unsorted object classes
- * @return the sorted object classes
- */
- private List<MutableObjectClass> getSortedObjectClasses( List<MutableObjectClass> objectClasses )
- {
- // clone the unsorted list
- List<MutableObjectClass> unsortedObjectClasses = new ArrayList<MutableObjectClass>( objectClasses );
-
- // list of all existing names
- Set<String> objectClassNames = new HashSet<String>();
- for ( ObjectClass oc : unsortedObjectClasses )
- {
- for ( String name : oc.getNames() )
- {
- objectClassNames.add( Strings.toLowerCase( name ) );
- }
- }
-
- // sort object classes
- List<MutableObjectClass> sortedObjectClasses = new ArrayList<MutableObjectClass>();
- Set<String> movedObjectClasses = new HashSet<String>();
- boolean moved = true;
- while ( !unsortedObjectClasses.isEmpty() && moved )
- {
- moved = false;
- Iterator<MutableObjectClass> unsortedIterator = unsortedObjectClasses.iterator();
- while ( unsortedIterator.hasNext() )
- {
- MutableObjectClass oc = unsortedIterator.next();
- for ( String superName : oc.getSuperiorOids() )
- {
- if ( !objectClassNames.contains( Strings.toLowerCase( superName ) )
- || movedObjectClasses.contains( Strings.toLowerCase( superName ) ) )
- {
- unsortedIterator.remove();
- sortedObjectClasses.add( oc );
- for ( String name : oc.getNames() )
- {
- movedObjectClasses.add( Strings.toLowerCase( name ) );
- }
- moved = true;
- break;
- }
- }
- }
- }
-
- // add the rest
- for ( MutableObjectClass oc : unsortedObjectClasses )
- {
- sortedObjectClasses.add( oc );
- }
-
- return sortedObjectClasses;
- }
-
-
- /**
* Gets the schema dependencies.
*
* @param schema
Modified: directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/MergeSchemasWizard.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/MergeSchemasWizard.java?rev=1547588&r1=1547587&r2=1547588&view=diff
==============================================================================
--- directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/MergeSchemasWizard.java (original)
+++ directory/studio/trunk/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/MergeSchemasWizard.java Tue Dec 3 21:06:46 2013
@@ -153,7 +153,7 @@ public class MergeSchemasWizard extends
{
ObjectClassFolder ocf = ( ObjectClassFolder ) sourceObject;
Schema targetSchema = getTargetSchema( ocf.schema.getProject(), targetProject, targetSchemas );
- List<MutableObjectClass> sourceObjectClasses = ocf.schema.getObjectClasses();
+ List<ObjectClass> sourceObjectClasses = ocf.schema.getObjectClasses();
for ( ObjectClass sourceObjectClass : sourceObjectClasses )
{
mergeObjectClass( sourceObjectClass, targetProject, targetSchema, processedObjects, errorMessages,
@@ -223,7 +223,7 @@ public class MergeSchemasWizard extends
replaceUnknownSyntax, mergeDependencies, pullUpAttributes );
}
- List<MutableObjectClass> sourceObjectClasses = sourceSchema.getObjectClasses();
+ List<ObjectClass> sourceObjectClasses = sourceSchema.getObjectClasses();
for ( ObjectClass sourceObjectClass : sourceObjectClasses )
{
mergeObjectClass( sourceObjectClass, targetProject, targetSchema, processedObjects, errorMessages,