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 2007/10/31 18:29:50 UTC
svn commit: r590761 -
/directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/schemachecker/SchemaChecker.java
Author: pamarcelot
Date: Wed Oct 31 10:29:49 2007
New Revision: 590761
URL: http://svn.apache.org/viewvc?rev=590761&view=rev
Log:
Fixed a bug that caused the error to not be removed even if the AT or OC fixing this error was added.
Modified:
directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/schemachecker/SchemaChecker.java
Modified: directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/schemachecker/SchemaChecker.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/schemachecker/SchemaChecker.java?rev=590761&r1=590760&r2=590761&view=diff
==============================================================================
--- directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/schemachecker/SchemaChecker.java (original)
+++ directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/schemachecker/SchemaChecker.java Wed Oct 31 10:29:49 2007
@@ -86,8 +86,12 @@
{
public void attributeTypeAdded( AttributeTypeImpl at )
{
+ List<?> deps = getAndDeleteDependencies( at );
+
checkAttributeType( at );
+ checkDependencies( deps );
+
notifyListeners();
}
@@ -120,8 +124,12 @@
public void objectClassAdded( ObjectClassImpl oc )
{
+ List<?> deps = getAndDeleteDependencies( oc );
+
checkObjectClass( oc );
+ checkDependencies( deps );
+
notifyListeners();
}
@@ -864,5 +872,59 @@
}
}
}
+ }
+
+
+ /**
+ * Gets the dependencies for the given schema object
+ * and deletes them from the tables.
+ *
+ * @param sc
+ * the schema object
+ * @return
+ * the dependencies for the given schema object
+ * and deletes them from the tables.
+ */
+ @SuppressWarnings("unchecked")
+ private List<Object> getAndDeleteDependencies( SchemaObject sc )
+ {
+ List<Object> deps = new ArrayList<Object>();
+
+ // Checking OID
+ String oid = sc.getOid();
+ if ( ( oid != null ) && ( !"".equals( oid ) ) )
+ {
+ List<Object> oidDependencies = ( List<Object> ) dependenciesMap.get( oid );
+ if ( oidDependencies != null )
+ {
+ deps.addAll( oidDependencies );
+ dependenciesMap.remove( oid );
+ for ( Object oidDependency : oidDependencies )
+ {
+ dependsOnMap.remove( oidDependency, oid );
+ }
+ }
+ }
+
+ // Checking aliases
+ String[] aliases = sc.getNames();
+ if ( ( aliases != null ) && ( aliases.length > 0 ) )
+ {
+ for ( String alias : aliases )
+ {
+ List<Object> aliasDependencies = ( List<Object> ) dependenciesMap.get( alias );
+ if ( aliasDependencies != null )
+ {
+ deps.addAll( aliasDependencies );
+ dependenciesMap.remove( alias );
+ for ( Object aliasDependency : aliasDependencies )
+ {
+ dependsOnMap.remove( aliasDependency, alias );
+ }
+ }
+ }
+ }
+
+ return deps;
}
}