1 20 21 package org.apache.directory.ldapstudio.browser.core.model.ldif.container; 22 23 24 import java.util.ArrayList ; 25 import java.util.Iterator ; 26 import java.util.List ; 27 28 import org.apache.directory.ldapstudio.browser.core.model.ldif.lines.LdifChangeTypeLine; 29 import org.apache.directory.ldapstudio.browser.core.model.ldif.lines.LdifControlLine; 30 import org.apache.directory.ldapstudio.browser.core.model.ldif.lines.LdifDnLine; 31 32 33 public class LdifChangeRecord extends LdifRecord 34 { 35 36 private static final long serialVersionUID = 2995003778589275697L; 37 38 39 protected LdifChangeRecord() 40 { 41 } 42 43 44 public LdifChangeRecord( LdifDnLine dn ) 45 { 46 super( dn ); 47 } 48 49 50 public void addControl( LdifControlLine controlLine ) 51 { 52 if ( controlLine == null ) 53 throw new IllegalArgumentException ( "null argument" ); 54 this.parts.add( controlLine ); 55 } 56 57 58 public void setChangeType( LdifChangeTypeLine changeTypeLine ) 59 { 60 if ( changeTypeLine == null ) 61 throw new IllegalArgumentException ( "null argument" ); 62 if ( getChangeTypeLine() != null ) 63 throw new IllegalArgumentException ( "changetype is already set" ); 64 this.parts.add( changeTypeLine ); 65 } 66 67 68 public LdifControlLine[] getControls() 69 { 70 List l = new ArrayList (); 71 for ( Iterator it = this.parts.iterator(); it.hasNext(); ) 72 { 73 Object o = it.next(); 74 if ( o instanceof LdifControlLine ) 75 { 76 l.add( o ); 77 } 78 } 79 return ( LdifControlLine[] ) l.toArray( new LdifControlLine[l.size()] ); 80 } 81 82 83 public LdifChangeTypeLine getChangeTypeLine() 84 { 85 for ( Iterator it = this.parts.iterator(); it.hasNext(); ) 86 { 87 Object o = it.next(); 88 if ( o instanceof LdifChangeTypeLine ) 89 { 90 return ( LdifChangeTypeLine ) o; 91 } 92 } 93 94 return null; 95 } 96 97 98 protected boolean isAbstractValid() 99 { 100 if ( !super.isAbstractValid() ) 101 { 102 return false; 103 } 104 return getChangeTypeLine() != null; 105 } 106 107 108 public boolean isValid() 109 { 110 return this.isAbstractValid(); 111 } 112 113 114 public String getInvalidString() 115 { 116 117 if ( getChangeTypeLine() == null ) 118 return "Missing changetype line"; 119 120 return super.getInvalidString(); 121 } 122 123 } 124 | Popular Tags |