Statistics
| Revision:

gvsig-tools / org.gvsig.tools / library / trunk / org.gvsig.tools / org.gvsig.tools.lib / src / main / java / org / gvsig / tools / dynobject / DynStruct.java @ 388

History | View | Annotate | Download (4.47 KB)

1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22

    
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2008 {DiSiD Technologies}  {Create DynObjects implementation}
26
 */
27
package org.gvsig.tools.dynobject;
28

    
29
import org.gvsig.tools.dynobject.exception.DynObjectValidateException;
30

    
31

    
32
/**
33
 * @author <a href="mailto:jjdelcerro@gvsig.org">Joaqu�n Jos� del Cerro</a>
34
 * @author <a href="mailto:cordin@disid.com">C�sar Ordi�ana</a>
35
 */
36
public interface DynStruct {
37

    
38
    String getName();
39

    
40
        String getNamespace();
41

    
42
        String getFullName();
43

    
44
    String getDescription();
45
    
46
        void setNamespace(String namespace);
47

    
48
        void setDescription(String description);
49

    
50
    /*************/
51
    /* DynFields */
52
    /*************/
53

    
54
    DynField getDynField(String name);
55

    
56
    DynField getDeclaredDynField(String name);
57

    
58
    DynField[] getDynFields();
59

    
60
    DynField[] getDeclaredDynFields();
61

    
62
    DynField addDynField(String name);
63

    
64
        // /**
65
        // * Adds a new field to the struct
66
        // * @param name
67
        // * @return
68
        // */
69
        // DynField addDynFieldSingle(String name);
70

    
71
        DynField addDynFieldBoolean(String name);
72

    
73
    DynField addDynFieldInt(String name);
74

    
75
        DynField addDynFieldLong(String name);
76

    
77
        DynField addDynFieldFloat(String name);
78

    
79
    DynField addDynFieldDouble(String name);
80

    
81
        DynField addDynFieldString(String name);
82

    
83
        DynField addDynFieldDate(String name);
84

    
85
        DynField addDynFieldList(String name);
86

    
87
        DynField addDynFieldArray(String name);
88

    
89
        DynField addDynFieldMap(String name);
90

    
91
        DynField addDynFieldSet(String name);
92

    
93
        DynField addDynFieldObject(String name);
94

    
95
        DynField addDynFieldFile(String name);
96

    
97
        DynField addDynFieldFolder(String name);
98

    
99
        DynField addDynFieldURL(String name);
100

    
101
        DynField addDynFieldURI(String name);
102

    
103
        /**
104
         * @deprecated to be removed in gvSIG 2.1.0
105
         * @see #addDynFieldString(String)
106
         */
107
    DynField addDynFieldSingle(String name, int type, Object defaultValue,
108
            boolean mandatory, boolean persistent);
109

    
110
        /**
111
         * @deprecated to be removed in gvSIG 2.1.0
112
         * @see #addDynFieldString(String)
113
         */
114
    DynField addDynFieldSingle(String name, int type, Object defaultValue);
115

    
116
        /**
117
         * @deprecated to be removed in gvSIG 2.1.0
118
         * @see #addDynFieldRange(String)
119
         */
120
    DynField addDynFieldRange(String name, int type, Object defaultValue,
121
            Object min, Object max, boolean mandatory, boolean persistent);
122

    
123
        /**
124
         * @deprecated to be removed in gvSIG 2.1.0
125
         * @see #addDynFieldRange(String)
126
         */
127
    DynField addDynFieldRange(String name, int type, Object defaultValue,
128
            Object min, Object max);
129

    
130
        /**
131
         * @deprecated to be removed in gvSIG 2.1.0
132
         * @see #addDynFieldChoice(String)
133
         */
134
    DynField addDynFieldChoice(String name, int type, Object defaultValue,
135
            DynObjectValueItem[] values, boolean mandatory, boolean persistent);
136

    
137
        /**
138
         * @deprecated to be removed in gvSIG 2.1.0
139
         * @see #addDynFieldChoice(String)
140
         */
141
    DynField addDynFieldChoice(String name, int type, Object defaultValue,
142
            DynObjectValueItem[] values);
143

    
144
    void removeDynField(String name);
145

    
146
    void validate(DynObject object) throws DynObjectValidateException;
147
    
148
    DynObject newInstance();
149

    
150
    /***************************/
151
    /* Parent DynClass objects */
152
    /***************************/
153

    
154
    void extend(DynStruct struct);
155

    
156
    void extend(String namespace, String structName);
157

    
158
    void extend(String structName);
159

    
160
    /**
161
     * 
162
     * Removes a given dynStruct from the current superDynClasses of this dynClass. If it is not contained, does nothing.
163
     *  
164
     * @param dynStruct the dynStruct to be removed.
165
     */
166
    void remove(DynStruct superDynStruct);
167

    
168

    
169
    DynStruct[] getSuperDynStructs();
170

    
171
    boolean isInstance(DynObject dynObject);
172

    
173
    boolean isExtendable(DynStruct dynStruct);
174
}