1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.caleigo.core.meta;
19
20 import org.caleigo.core.*;
21 import org.caleigo.core.exception.*;
22
23
24 /*** MetaFieldDescriptor is the descriptor for MetaFieldDescriptorEntity objects.
25 *
26 * @author dennis
27 * @version 1.0.0
28 *//*
29 * WHEN WHO WHY & WHAT
30 * ------------------------------------------------------------------------------
31 * 030627 dennis Creation
32 */
33 public class MetaFieldDescriptor extends AbstractMetaEntityDescriptor
34 {
35
36
37 /*** The singleton instance for the MetaFieldDescriptor entity descriptor.
38 * Access it as MetaFieldDescriptor.instance anywhere in the code.
39 */
40 public final static MetaFieldDescriptor instance;
41
42 /*** The Entity field (index=0) has the data type STRING(50).
43 * Entity is a required identity field.
44 */
45 public final static IFieldDescriptor Entity;
46
47 /*** The SourceName field (index=1) has the data type STRING(50).
48 * SourceName is a required identity field.
49 */
50 public final static IFieldDescriptor SourceName;
51
52 /*** The CodeName field (index=2) has the data type STRING(50).
53 * CodeName is a required field.
54 */
55 public final static IFieldDescriptor CodeName;
56
57 /*** The DisplayName field (index=3) has the data type STRING(50).
58 * DisplayName is a required field.
59 */
60 public final static IFieldDescriptor DisplayName;
61
62 /*** The DataType field (index=4) has the data type INTEGER.
63 * DataType is a required field.
64 */
65 public final static IFieldDescriptor DataType;
66
67 /*** The Length field (index=5) has the data type INTEGER.
68 * Length is a required field.
69 */
70 public final static IFieldDescriptor Length;
71
72 /*** The DefaultValue field (index=6) has the data type STRING(200).
73 * DefaultValue is a non-required field.
74 */
75 public final static IFieldDescriptor DefaultValue;
76
77 /*** The IdentityField field (index=7) has the data type BOOLEAN.
78 * IdentityField is a required field.
79 */
80 public final static IFieldDescriptor IdentityField;
81
82 /*** The AutoGenerated field (index=8) has the data type BOOLEAN.
83 * AutoGenerated is a required field.
84 */
85 public final static IFieldDescriptor AutoGenerated;
86
87 /*** The Indexed field (index=9) has the data type BOOLEAN.
88 * Indexed is a required field.
89 */
90 public final static IFieldDescriptor Indexed;
91
92 /*** The Required field (index=10) has the data type BOOLEAN.
93 * Required is a required field.
94 */
95 public final static IFieldDescriptor Required;
96
97 /*** The ReadOnly field (index=11) has the data type BOOLEAN.
98 * ReadOnly is a required field.
99 */
100 public final static IFieldDescriptor ReadOnly;
101
102 /*** The Hidden field (index=12) has the data type BOOLEAN.
103 * Hidden is a required field.
104 */
105 public final static IFieldDescriptor Hidden;
106
107 /*** The NameField field (index=13) has the data type BOOLEAN.
108 * NameField is a required field.
109 */
110 public final static IFieldDescriptor NameField;
111
112 /*** The HintField field (index=14) has the data type BOOLEAN.
113 * HintField is a required field.
114 */
115 public final static IFieldDescriptor HintField;
116
117 /*** The OverviewField field (index=15) has the data type BOOLEAN.
118 * OverviewField is a required field.
119 */
120 public final static IFieldDescriptor OverviewField;
121
122 /*** The NaturalOrder field (index=16) has the data type BOOLEAN.
123 * NaturalOrder is a required field.
124 */
125 public final static IFieldDescriptor NaturalOrder;
126
127
128
129 static
130 {
131 String className = MetaFieldDescriptor.class.getName();
132
133
134 IFieldDescriptor[] fields = new IFieldDescriptor[17];
135
136 fields[0] = Entity = createFieldDescriptor("Entity", "Entity", "Entity", className, org.caleigo.core.DataType.STRING, 50, IFieldDescriptor.IDENTITY_FIELD | IFieldDescriptor.REQUIRED | IFieldDescriptor.INDEXED | IFieldDescriptor.READ_ONLY_FIELD, null);
137 fields[1] = SourceName = createFieldDescriptor("SourceName", "SourceName", "Source Name", className, org.caleigo.core.DataType.STRING, 50, IFieldDescriptor.IDENTITY_FIELD | IFieldDescriptor.REQUIRED | IFieldDescriptor.INDEXED | IFieldDescriptor.OVERVIEW_FIELD | IFieldDescriptor.READ_ONLY_FIELD, null);
138 fields[2] = CodeName = createFieldDescriptor("CodeName", "CodeName", "Code Name", className, org.caleigo.core.DataType.STRING, 50, IFieldDescriptor.REQUIRED | IFieldDescriptor.NAME_FIELD, null);
139 fields[3] = DisplayName = createFieldDescriptor("DisplayName", "DisplayName", "Display Name", className, org.caleigo.core.DataType.STRING, 50, IFieldDescriptor.REQUIRED | IFieldDescriptor.OVERVIEW_FIELD, null);
140 fields[4] = DataType = createFieldDescriptor("DataType", "DataType", "Data Type", className, org.caleigo.core.DataType.INTEGER, 10, IFieldDescriptor.REQUIRED, null);
141 fields[5] = Length = createFieldDescriptor("Length", "Length", "Length", className, org.caleigo.core.DataType.INTEGER, 10, IFieldDescriptor.REQUIRED, null);
142 fields[6] = DefaultValue = createFieldDescriptor("DefaultValue", "DefaultValue", "Default Value", className, org.caleigo.core.DataType.STRING, 100, 0, null);
143 fields[7] = IdentityField = createFieldDescriptor("IdentityField", "IdentityField", "Identity Field", className, org.caleigo.core.DataType.BOOLEAN, 1, IFieldDescriptor.REQUIRED | IFieldDescriptor.OVERVIEW_FIELD, null);
144 fields[8] = AutoGenerated = createFieldDescriptor("AutoGenerated", "AutoGenerated", "Auto Generated", className, org.caleigo.core.DataType.BOOLEAN, 1, IFieldDescriptor.REQUIRED | IFieldDescriptor.OVERVIEW_FIELD, null);
145 fields[9] = Indexed = createFieldDescriptor("Indexed", "Indexed", "Indexed", className, org.caleigo.core.DataType.BOOLEAN, 1, IFieldDescriptor.REQUIRED, null);
146 fields[10] = Required = createFieldDescriptor("Required", "Required", "Required", className, org.caleigo.core.DataType.BOOLEAN, 1, IFieldDescriptor.REQUIRED, null);
147 fields[11] = ReadOnly = createFieldDescriptor("ReadOnly", "ReadOnly", "Read Only", className, org.caleigo.core.DataType.BOOLEAN, 1, IFieldDescriptor.REQUIRED, null);
148 fields[12] = Hidden = createFieldDescriptor("Hidden", "Hidden", "Hidden", className, org.caleigo.core.DataType.BOOLEAN, 1, IFieldDescriptor.REQUIRED, null);
149 fields[13] = NameField = createFieldDescriptor("NameField", "NameField", "Name Field", className, org.caleigo.core.DataType.BOOLEAN, 1, IFieldDescriptor.REQUIRED | IFieldDescriptor.OVERVIEW_FIELD, null);
150 fields[14] = HintField = createFieldDescriptor("HintField", "HintField", "Hint Field", className, org.caleigo.core.DataType.BOOLEAN, 1, IFieldDescriptor.REQUIRED, null);
151 fields[15] = OverviewField = createFieldDescriptor("OverviewField", "OverviewField", "Overview Field", className, org.caleigo.core.DataType.BOOLEAN, 1, IFieldDescriptor.REQUIRED | IFieldDescriptor.OVERVIEW_FIELD, null);
152 fields[16] = NaturalOrder = createFieldDescriptor("NaturalOrder", "NaturalOrder", "Natural Order", className, org.caleigo.core.DataType.BOOLEAN, 1, IFieldDescriptor.REQUIRED, null);
153
154
155 IEntityRelation[] relations = new IEntityRelation[4];
156 IFieldRelation[] fieldRelations;
157
158 fieldRelations = new IFieldRelation[1];
159 fieldRelations[0] = createFieldRelation("org.caleigo.core.meta.MetaFieldDescriptor", "DataType", "org.caleigo.core.meta.MetaDataType", "ID");
160 relations[0] = createEntityRelation(fieldRelations, "MetaFieldDescriptorMetaDataType", "Data Type", "Field Descriptors");
161
162 fieldRelations = new IFieldRelation[1];
163 fieldRelations[0] = createFieldRelation("org.caleigo.core.meta.MetaFieldDescriptor", "Entity", "org.caleigo.core.meta.MetaEntityDescriptor", "SourceName");
164 relations[1] = createEntityRelation(fieldRelations, "MetaFieldDescriptorMetaEntityDescriptor", "Entity Descriptor", "Field Descriptors");
165
166 fieldRelations = new IFieldRelation[2];
167 fieldRelations[0] = createFieldRelation("org.caleigo.core.meta.MetaFieldRelation", "ReferenceEntity", "org.caleigo.core.meta.MetaFieldDescriptor", "Entity");
168 fieldRelations[1] = createFieldRelation("org.caleigo.core.meta.MetaFieldRelation", "ReferenceField", "org.caleigo.core.meta.MetaFieldDescriptor", "SourceName");
169 relations[2] = createEntityRelation(fieldRelations, "MetaFieldRelationMetaFieldDescriptor", "Reference Descriptor", "Referense Relations");
170
171 fieldRelations = new IFieldRelation[2];
172 fieldRelations[0] = createFieldRelation("org.caleigo.core.meta.MetaFieldRelation", "TargetEntity", "org.caleigo.core.meta.MetaFieldDescriptor", "Entity");
173 fieldRelations[1] = createFieldRelation("org.caleigo.core.meta.MetaFieldRelation", "TargetField", "org.caleigo.core.meta.MetaFieldDescriptor", "SourceName");
174 relations[3] = createEntityRelation(fieldRelations, "MetaFieldRelationMetaFieldDescriptor1", "Target Descriptor", "Target Relations");
175
176
177 instance = new MetaFieldDescriptor(fields, relations);
178 }
179
180 /*** Creates a new MetaFieldDescriptorEntity with default values set
181 */
182 public static MetaFieldDescriptorEntity create()
183 {
184 return (MetaFieldDescriptorEntity)instance.createEntity();
185 }
186
187 /*** Creates a new MetaFieldDescriptorEntity, setting any field values
188 * avaivlable from the provided IDataProvider.
189 */
190 public static MetaFieldDescriptorEntity create(IDataProvider propertySource)
191 {
192 return (MetaFieldDescriptorEntity)instance.createEntity(propertySource);
193 }
194
195 /*** Loads a single MetaFieldDescriptorEntity instance identified by
196 * by the provided identity field values from the default data source.
197 * Returns null if no entity could be identified by field values.
198 */
199 public static MetaFieldDescriptorEntity load(String aEntity, String aSourceName)
200 {
201 Qualifier qualifier;
202
203 qualifier = Qualifier.create(Entity, new String(aEntity));
204 qualifier.and(SourceName, new String(aSourceName));
205
206 return load(qualifier);
207 }
208
209 /*** Loads a single MetaFieldDescriptorEntity instance identified by
210 * by the provided identity-qualifier from the default data source.
211 * Returns null if no entity could be identified by the provided qualifier.
212 */
213 public static MetaFieldDescriptorEntity load(Qualifier identityQualifier)
214 {
215 if(instance.getDataSourceDescriptor().getDefaultDataSource()==null)
216 throw new DataServiceNotFoundException("No default data source has been set for: " + instance.getDataSourceDescriptor().getCodeName());
217 return (MetaFieldDescriptorEntity)instance.getDataSourceDescriptor().getDefaultDataSource().loadEntity(instance, identityQualifier);
218 }
219
220
221
222 /*** Private access to avoid missuse.
223 */
224 private MetaFieldDescriptor(IFieldDescriptor[] fields, IEntityRelation[] relations)
225 {
226 super("MetaFieldDescriptor", "MetaFieldDescriptor", "Field Descriptor", "org.caleigo.core.meta.MetaFieldDescriptorEntity", "org.caleigo.core.meta.Meta", SLAVE_ENTITY, fields, relations);
227 this.setFlags(CACHEABLE | CREATABLE | EDITABLE);
228 this.setCacheTime(72000);
229 }
230 }