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 2009/10/07 15:52:50 UTC

svn commit: r822741 - /directory/studio/trunk/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/utils/Utils.java

Author: seelmann
Date: Wed Oct  7 13:52:50 2009
New Revision: 822741

URL: http://svn.apache.org/viewvc?rev=822741&view=rev
Log:
DIRSTUDIO-515: If entry is an referral we need to send the ManageDsaIT control upon modification

Modified:
    directory/studio/trunk/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/utils/Utils.java

Modified: directory/studio/trunk/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/utils/Utils.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/utils/Utils.java?rev=822741&r1=822740&r2=822741&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/utils/Utils.java (original)
+++ directory/studio/trunk/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/utils/Utils.java Wed Oct  7 13:52:50 2009
@@ -47,6 +47,7 @@
 import org.apache.directory.studio.ldapbrowser.core.model.IEntry;
 import org.apache.directory.studio.ldapbrowser.core.model.ISearch;
 import org.apache.directory.studio.ldapbrowser.core.model.IValue;
+import org.apache.directory.studio.ldapbrowser.core.model.StudioControl;
 import org.apache.directory.studio.ldapbrowser.core.model.schema.Schema;
 import org.apache.directory.studio.ldapbrowser.core.model.schema.SchemaUtils;
 import org.apache.directory.studio.ldifparser.LdifFormatParameters;
@@ -56,7 +57,10 @@
 import org.apache.directory.studio.ldifparser.model.container.LdifChangeModifyRecord;
 import org.apache.directory.studio.ldifparser.model.container.LdifModSpec;
 import org.apache.directory.studio.ldifparser.model.lines.LdifAttrValLine;
+import org.apache.directory.studio.ldifparser.model.lines.LdifChangeTypeLine;
+import org.apache.directory.studio.ldifparser.model.lines.LdifControlLine;
 import org.apache.directory.studio.ldifparser.model.lines.LdifDeloldrdnLine;
+import org.apache.directory.studio.ldifparser.model.lines.LdifDnLine;
 import org.apache.directory.studio.ldifparser.model.lines.LdifModSpecSepLine;
 import org.apache.directory.studio.ldifparser.model.lines.LdifNewrdnLine;
 import org.apache.directory.studio.ldifparser.model.lines.LdifNewsuperiorLine;
@@ -393,7 +397,15 @@
         // check if entry needs to be renamed
         if ( !t0.getDn().equals( t1.getDn() ) )
         {
-            LdifChangeModDnRecord modDnRecord = LdifChangeModDnRecord.create( t0.getDn().getUpName() );
+            LdifChangeModDnRecord modDnRecord = new LdifChangeModDnRecord( LdifDnLine.create( t0.getDn().getUpName() ) );
+            if ( t0.isReferral() )
+            {
+                modDnRecord.addControl( LdifControlLine
+                    .create( StudioControl.MANAGEDSAIT_CONTROL.getOid(),
+                        StudioControl.MANAGEDSAIT_CONTROL.isCritical(), StudioControl.MANAGEDSAIT_CONTROL
+                            .getControlValue() ) );
+            }
+            modDnRecord.setChangeType( LdifChangeTypeLine.createModDn() );
             modDnRecord.setNewrdn( LdifNewrdnLine.create( t1.getRdn().getUpName() ) );
             modDnRecord.setNewsuperior( LdifNewsuperiorLine.create( DnUtils.getParent( t1.getDn() ).getUpName() ) );
             modDnRecord.setDeloldrdn( LdifDeloldrdnLine.create1() );
@@ -442,7 +454,13 @@
             }
         }
 
-        LdifChangeModifyRecord record = LdifChangeModifyRecord.create( t1.getDn().getUpName() );
+        LdifChangeModifyRecord record = new LdifChangeModifyRecord( LdifDnLine.create( t1.getDn().getUpName() ) );
+        if ( t1.isReferral() )
+        {
+            record.addControl( LdifControlLine.create( StudioControl.MANAGEDSAIT_CONTROL.getOid(),
+                StudioControl.MANAGEDSAIT_CONTROL.isCritical(), StudioControl.MANAGEDSAIT_CONTROL.getControlValue() ) );
+        }
+        record.setChangeType( LdifChangeTypeLine.createModify() );
 
         // determine attributes to delete and/or add
         for ( String attributeDescription : attributesToDelAdd )