View Javadoc

1   /*
2    * This file is part of Domingo
3    * an Open Source Java-API to Lotus Notes/Domino
4    * hosted at http://domingo.sourceforge.net
5    *
6    * Copyright (c) 2003-2007 Beck et al. projects GmbH Munich, Germany (http://www.bea.de)
7    *
8    * This library is free software; you can redistribute it and/or
9    * modify it under the terms of the GNU Lesser General Public
10   * License as published by the Free Software Foundation; either
11   * version 2.1 of the License, or (at your option) any later version.
12   *
13   * This library is distributed in the hope that it will be useful,
14   * but WITHOUT ANY WARRANTY; without even the implied warranty of
15   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16   * Lesser General Public License for more details.
17   *
18   * You should have received a copy of the GNU Lesser General Public
19   * License along with this library; if not, write to the Free Software
20   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21   */
22  
23  package de.bea.domingo;
24  
25  import java.util.List;
26  
27  /***
28   * Represents a form in a database.
29   *
30   * @author <a href="mailto:kriede@users.sourceforge.net">Kurt Riede</a>
31   */
32  public interface DForm extends DBase {
33  
34      /***
35       * Returns the aliases of a form. This property returns all but the first in
36       * the list of all the form's names. The Name property returns the first
37       * name in the list.
38       *
39       * @return list of aliases
40       */
41      List getAliases();
42  
43      /***
44       * Returns the names of all the fields of a form.
45       *
46       * @return list of field names
47       */
48      List getFields();
49  
50      /***
51       * Returns the contents of the $FormUsers field.
52       *
53       * @return list of names
54       */
55      List getFormUsers();
56  
57      /***
58       * Sets the contents of the $FormUsers field.
59       *
60       * @param users list of user names
61       */
62      void setFormUsers(List users);
63  
64      /***
65       * Return the name of a form.
66       *
67       * @return name of the form
68       */
69      String getName();
70  
71      /***
72       * Returns the contents of the $Readers field.
73       *
74       * @return list of reader names
75       */
76      List getReaders();
77  
78      /***
79       * Sets the contents of the $Readers field.
80       *
81       * @param readers list of reader names
82       */
83      void setReaders(List readers);
84  
85      /***
86       * Indicates whether a form is a subform.
87       *
88       * @return <code>true</code> if the form is a subform, else
89       *         <code>false</code>
90       */
91      boolean isSubForm();
92  
93      /***
94       * Returns if the $Readers items is protected from being overwritten by
95       * replication.
96       *
97       * @return <code>true</code> to protect $Readers, else <code>false</code>
98       */
99      boolean isProtectReaders();
100 
101     /***
102      * Sets if the $Readers items is protected from being overwritten by
103      * replication.
104      *
105      * @param flag <code>true</code> to protect $Readers, else
106      *            <code>false</code>
107      */
108     void setProtectReaders(boolean flag);
109 
110     /***
111      * Returns if the $FormUsers items is protected from being overwritten by
112      * replication.
113      *
114      * @return <code>true</code> to protect $FormUsers, else
115      *         <code>false</code>
116      */
117     boolean isProtectUsers();
118 
119     /***
120      * Sets if the $FormUsers items is protected from being overwritten by
121      * replication.
122      *
123      * @param flag <code>true</code> to protect $FormUsers, else
124      *            <code>false</code>
125      */
126     void setProtectUsers(boolean flag);
127 
128     /***
129      * Permanently deletes a form from a database.
130      */
131     void remove();
132 
133     /***
134      * Returns the Domino URL for the form.
135      *
136      * @return URL
137      */
138     String getURL();
139 
140     /***
141      * Returns the Domino URL of a form when Notes protocols are in effect. If
142      * Notes protocols are not available, this property returns an empty string.
143      *
144      * @return Domino URL of a form
145      * @since Lotus Notes Release 6.5.
146      */
147     String getNotesURL();
148 
149     /***
150      * Returns the Domino URL of a form when HTTP protocols are in effect.
151      *
152      * @return Http URL of a form
153      * @since Lotus Notes Release 6.5.
154      */
155     String getHttpURL();
156 
157     /***
158      * Gets the type of a field on the form.
159      *
160      * @see DItem#getType()
161      * @param fieldName field name
162      * @return type of the field
163      */
164     int getFieldType(String fieldName);
165 
166     /***
167      * Returns the names of the holders of a lock.
168      *
169      * @return list of name strings
170      * @since Lotus Notes Release 6.5.
171      */
172     List getLockHolders();
173 
174     /***
175      * Locks a form.
176      *
177      * @return <code>true</code> if the lock is placed, else
178      *         <code>false</code>
179      * @since Lotus Notes Release 6.5.
180      */
181     boolean lock();
182 
183     /***
184      * Locks a form. The lock holder defaults to the effective user.
185      *
186      * @param provisionalok <code>true</code> to permit the placement of a
187      *            provisional lock
188      * @return <code>true</code> if the lock is placed, else
189      *         <code>false</code>
190      * @since Lotus Notes Release 6.5.
191      */
192     boolean lock(boolean provisionalok);
193 
194     /***
195      * Locks a form. The holder must be a user or group. Defaults to the
196      * effective user. The empty string ("") is not permitted.
197      *
198      * @param name name of the lock holder.
199      * @return <code>true</code> if the lock is placed, else
200      *         <code>false</code>
201      * @since Lotus Notes Release 6.5.
202      */
203     boolean lock(String name);
204 
205     /***
206      * Locks a form. The lock holder must be a user or group. Defaults to the
207      * effective user. The empty string ("") is not permitted.
208      *
209      * @param name name of the lock holder.
210      * @param provisionalok <code>true</code> to permit the placement of a
211      *            provisional lock
212      * @return <code>true</code> if the lock is placed, else
213      *         <code>false</code>
214      * @since Lotus Notes Release 6.5.
215      */
216     boolean lock(String name, boolean provisionalok);
217 
218     /***
219      * Locks a form.
220      *
221      * @param names list of name strings
222      * @return <code>true</code> if the lock is placed, else
223      *         <code>false</code>
224      * @since Lotus Notes Release 6.5.
225      */
226     boolean lock(List names);
227 
228     /***
229      * Locks a form. The lock holder must be a user or group. Defaults to one
230      * lock holder: the effective user. The empty string ("") is not permitted.
231      *
232      * @param names names of the lock holders
233      * @param provisionalok <code>true</code> to permit the placement of a
234      *            provisional lock
235      * @return <code>true</code> if the lock is placed, else
236      *         <code>false</code>
237      * @since Lotus Notes Release 6.5.
238      */
239     boolean lock(List names, boolean provisionalok);
240 
241     /***
242      * @return <code>true</code> if the lock is placed, else
243      *         <code>false</code>
244      * @since Lotus Notes Release 6.5.
245      */
246     boolean lockProvisional();
247 
248     /***
249      * @param name name of the lock holder.
250      * @return <code>true</code> if the lock is placed, else
251      *         <code>false</code>
252      * @since Lotus Notes Release 6.5.
253      */
254     boolean lockProvisional(String name);
255 
256     /***
257      * Locks a form provisionally.
258      *
259      * @since Lotus Notes Release 6.5.
260      * @param names names list of name strings
261      * @return <code>true</code> if the lock is placed, else
262      *         <code>false</code>
263      * @since Lotus Notes Release 6.5.
264      */
265     boolean lockProvisional(List names);
266 
267     /***
268      * Unlocks a form.
269      *
270      * @since Lotus Notes Release 6.5.
271      */
272     void unlock();
273 }