KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > directory > ldapstudio > browser > core > model > ldif > container > LdifChangeRecord


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements. See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership. The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  * KIND, either express or implied. See the License for the
16  * specific language governing permissions and limitations
17  * under the License.
18  *
19  */

20
21 package org.apache.directory.ldapstudio.browser.core.model.ldif.container;
22
23
24 import java.util.ArrayList JavaDoc;
25 import java.util.Iterator JavaDoc;
26 import java.util.List JavaDoc;
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 JavaDoc( "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 JavaDoc( "null argument" );
62         if ( getChangeTypeLine() != null )
63             throw new IllegalArgumentException JavaDoc( "changetype is already set" );
64         this.parts.add( changeTypeLine );
65     }
66
67
68     public LdifControlLine[] getControls()
69     {
70         List JavaDoc l = new ArrayList JavaDoc();
71         for ( Iterator JavaDoc it = this.parts.iterator(); it.hasNext(); )
72         {
73             Object JavaDoc 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 JavaDoc it = this.parts.iterator(); it.hasNext(); )
86         {
87             Object JavaDoc 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 JavaDoc getInvalidString()
115     {
116
117         if ( getChangeTypeLine() == null )
118             return "Missing changetype line";
119
120         return super.getInvalidString();
121     }
122
123 }
124
Popular Tags