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/10/14 23:45:08 UTC

svn commit: r584620 - in /directory/studio/trunk/studio-ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs: CreateValuesJob.java ModifyValueJob.java

Author: seelmann
Date: Sun Oct 14 14:45:08 2007
New Revision: 584620

URL: http://svn.apache.org/viewvc?rev=584620&view=rev
Log:
Fixed behaviour for new entry wizard.

Modified:
    directory/studio/trunk/studio-ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/CreateValuesJob.java
    directory/studio/trunk/studio-ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/ModifyValueJob.java

Modified: directory/studio/trunk/studio-ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/CreateValuesJob.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/CreateValuesJob.java?rev=584620&r1=584619&r2=584620&view=diff
==============================================================================
--- directory/studio/trunk/studio-ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/CreateValuesJob.java (original)
+++ directory/studio/trunk/studio-ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/CreateValuesJob.java Sun Oct 14 14:45:08 2007
@@ -184,32 +184,50 @@
      * @param entryToModify the entry to modify
      * @param valuesToCreate the values to create
      * @param monitor the progress monitor
+     * 
+     * @throws ModelModificationException
      */
     static void createValues( IBrowserConnection browserConnection, IEntry entryToModify, IValue[] valuesToCreate,
-        StudioProgressMonitor monitor )
+        StudioProgressMonitor monitor ) throws ModelModificationException
     {
-        // dn
-        String dn = entryToModify.getDn().toString();
-
-        // modification items
-        ModificationItem[] modificationItems = new ModificationItem[valuesToCreate.length];
-        for ( int i = 0; i < modificationItems.length; i++ )
+        if ( browserConnection.getConnection() != null )
         {
-            BasicAttribute attribute = new BasicAttribute( valuesToCreate[i].getAttribute().getDescription(),
-                valuesToCreate[i].getRawValue() );
-            modificationItems[i] = new ModificationItem( DirContext.ADD_ATTRIBUTE, attribute );
-        }
+            // dn
+            String dn = entryToModify.getDn().toString();
+
+            // modification items
+            ModificationItem[] modificationItems = new ModificationItem[valuesToCreate.length];
+            for ( int i = 0; i < modificationItems.length; i++ )
+            {
+                BasicAttribute attribute = new BasicAttribute( valuesToCreate[i].getAttribute().getDescription(),
+                    valuesToCreate[i].getRawValue() );
+                modificationItems[i] = new ModificationItem( DirContext.ADD_ATTRIBUTE, attribute );
+            }
 
-        // controls
-        Control[] controls = null;
-        if ( entryToModify.isReferral() )
+            // controls
+            Control[] controls = null;
+            if ( entryToModify.isReferral() )
+            {
+                controls = new Control[]
+                    { new ManageReferralControl() };
+            }
+
+            browserConnection.getConnection().getJNDIConnectionWrapper().modifyAttributes( dn, modificationItems,
+                controls, monitor );
+        }
+        else
         {
-            controls = new Control[]
-                { new ManageReferralControl() };
+            for ( IValue value : valuesToCreate )
+            {
+                IAttribute attribute = entryToModify.getAttribute( value.getAttribute().getDescription() );
+                if ( attribute == null )
+                {
+                    attribute = new Attribute( entryToModify, value.getAttribute().getDescription() );
+                    entryToModify.addAttribute( attribute );
+                }
+                attribute.addValue( value );
+            }
         }
-
-        browserConnection.getConnection().getJNDIConnectionWrapper().modifyAttributes( dn, modificationItems, controls,
-            monitor );
     }
 
 }

Modified: directory/studio/trunk/studio-ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/ModifyValueJob.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/ModifyValueJob.java?rev=584620&r1=584619&r2=584620&view=diff
==============================================================================
--- directory/studio/trunk/studio-ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/ModifyValueJob.java (original)
+++ directory/studio/trunk/studio-ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/ModifyValueJob.java Sun Oct 14 14:45:08 2007
@@ -88,7 +88,6 @@
         monitor.worked( 1 );
 
         IValue newValue = new Value( attribute, newRawValue );
-        //attribute.modifyValue( oldValue, newValue );
 
         modifyValue( attribute.getEntry().getBrowserConnection(), attribute.getEntry(), oldValue, newValue, monitor );
         if ( !monitor.errorsReported() )
@@ -155,45 +154,54 @@
      * @param oldValue the old value
      * @param newValue the new value
      * @param monitor the progress monitor
+     * 
+     * @throws ModelModificationException
      */
     private void modifyValue( IBrowserConnection browserConnection, IEntry entry, IValue oldValue, IValue newValue,
-        StudioProgressMonitor monitor )
+        StudioProgressMonitor monitor ) throws ModelModificationException
     {
-        // dn
-        String dn = entry.getDn().toString();
-
-        // modification items
-        // perform a replace if the current attribute is single-valued
-        // perform an add and a remove operation if the current attribute is multi-valued
-        ModificationItem[] modificationItems;
-        if ( oldValue.getAttribute().getValueSize() == 1 )
+        if ( browserConnection.getConnection() != null )
         {
-            modificationItems = new ModificationItem[1];
-            BasicAttribute attribute = new BasicAttribute( newValue.getAttribute().getDescription(), newValue
-                .getRawValue() );
-            modificationItems[0] = new ModificationItem( DirContext.REPLACE_ATTRIBUTE, attribute );
+            // dn
+            String dn = entry.getDn().toString();
+
+            // modification items
+            // perform a replace if the current attribute is single-valued
+            // perform an add and a remove operation if the current attribute is multi-valued
+            ModificationItem[] modificationItems;
+            if ( oldValue.getAttribute().getValueSize() == 1 )
+            {
+                modificationItems = new ModificationItem[1];
+                BasicAttribute attribute = new BasicAttribute( newValue.getAttribute().getDescription(), newValue
+                    .getRawValue() );
+                modificationItems[0] = new ModificationItem( DirContext.REPLACE_ATTRIBUTE, attribute );
+            }
+            else
+            {
+                modificationItems = new ModificationItem[2];
+                BasicAttribute newAttribute = new BasicAttribute( newValue.getAttribute().getDescription(), newValue
+                    .getRawValue() );
+                modificationItems[0] = new ModificationItem( DirContext.ADD_ATTRIBUTE, newAttribute );
+                BasicAttribute oldAttribute = new BasicAttribute( oldValue.getAttribute().getDescription(), oldValue
+                    .getRawValue() );
+                modificationItems[1] = new ModificationItem( DirContext.REMOVE_ATTRIBUTE, oldAttribute );
+            }
+
+            // controls
+            Control[] controls = null;
+            if ( entry.isReferral() )
+            {
+                controls = new Control[]
+                    { new ManageReferralControl() };
+            }
+
+            browserConnection.getConnection().getJNDIConnectionWrapper().modifyAttributes( dn, modificationItems,
+                controls, monitor );
         }
         else
         {
-            modificationItems = new ModificationItem[2];
-            BasicAttribute newAttribute = new BasicAttribute( newValue.getAttribute().getDescription(), newValue
-                .getRawValue() );
-            modificationItems[0] = new ModificationItem( DirContext.ADD_ATTRIBUTE, newAttribute );
-            BasicAttribute oldAttribute = new BasicAttribute( oldValue.getAttribute().getDescription(), oldValue
-                .getRawValue() );
-            modificationItems[1] = new ModificationItem( DirContext.REMOVE_ATTRIBUTE, oldAttribute );
+            oldValue.getAttribute().modifyValue( oldValue, newValue );
         }
-
-        // controls
-        Control[] controls = null;
-        if ( entry.isReferral() )
-        {
-            controls = new Control[]
-                { new ManageReferralControl() };
-        }
-
-        browserConnection.getConnection().getJNDIConnectionWrapper().modifyAttributes( dn, modificationItems, controls,
-            monitor );
     }
 
 }