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 /*** MetaFieldRelation is the descriptor for MetaFieldRelationEntity 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 MetaFieldRelation extends AbstractMetaEntityDescriptor
34 {
35
36
37 /*** The singleton instance for the MetaFieldRelation entity descriptor.
38 * Access it as MetaFieldRelation.instance anywhere in the code.
39 */
40 public final static MetaFieldRelation instance;
41
42 /*** The EntityRelation field (index=0) has the data type STRING(100).
43 * EntityRelation is a required identity field.
44 */
45 public final static IFieldDescriptor EntityRelation;
46
47 /*** The ReferenceEntity field (index=1) has the data type STRING(50).
48 * ReferenceEntity is a required identity field.
49 */
50 public final static IFieldDescriptor ReferenceEntity;
51
52 /*** The ReferenceField field (index=2) has the data type STRING(50).
53 * ReferenceField is a required identity field.
54 */
55 public final static IFieldDescriptor ReferenceField;
56
57 /*** The TargetEntity field (index=3) has the data type STRING(50).
58 * TargetEntity is a required identity field.
59 */
60 public final static IFieldDescriptor TargetEntity;
61
62 /*** The TargetField field (index=4) has the data type STRING(50).
63 * TargetField is a required identity field.
64 */
65 public final static IFieldDescriptor TargetField;
66
67
68
69 static
70 {
71 String className = MetaFieldRelation.class.getName();
72
73
74 IFieldDescriptor[] fields = new IFieldDescriptor[5];
75
76 fields[0] = EntityRelation = createFieldDescriptor("EntityRelation", "EntityRelation", "Entity Relation", className, DataType.STRING, 100, IFieldDescriptor.IDENTITY_FIELD | IFieldDescriptor.REQUIRED | IFieldDescriptor.INDEXED | IFieldDescriptor.READ_ONLY_FIELD, null);
77 fields[1] = ReferenceEntity = createFieldDescriptor("ReferenceEntity", "ReferenceEntity", "Reference Entity", className, DataType.STRING, 50, IFieldDescriptor.IDENTITY_FIELD | IFieldDescriptor.REQUIRED | IFieldDescriptor.INDEXED | IFieldDescriptor.READ_ONLY_FIELD, null);
78 fields[2] = ReferenceField = createFieldDescriptor("ReferenceField", "ReferenceField", "Reference Field", className, DataType.STRING, 50, IFieldDescriptor.IDENTITY_FIELD | IFieldDescriptor.REQUIRED | IFieldDescriptor.INDEXED | IFieldDescriptor.OVERVIEW_FIELD, null);
79 fields[3] = TargetEntity = createFieldDescriptor("TargetEntity", "TargetEntity", "Target Entity", className, DataType.STRING, 50, IFieldDescriptor.IDENTITY_FIELD | IFieldDescriptor.REQUIRED | IFieldDescriptor.INDEXED | IFieldDescriptor.READ_ONLY_FIELD, null);
80 fields[4] = TargetField = createFieldDescriptor("TargetField", "TargetField", "Target Field", className, DataType.STRING, 50, IFieldDescriptor.IDENTITY_FIELD | IFieldDescriptor.REQUIRED | IFieldDescriptor.INDEXED | IFieldDescriptor.OVERVIEW_FIELD, null);
81
82
83 IEntityRelation[] relations = new IEntityRelation[3];
84 IFieldRelation[] fieldRelations;
85
86 fieldRelations = new IFieldRelation[1];
87 fieldRelations[0] = createFieldRelation("org.caleigo.core.meta.MetaFieldRelation", "EntityRelation", "org.caleigo.core.meta.MetaEntityRelation", "SourceName");
88 relations[0] = createEntityRelation(fieldRelations, "MetaFieldRelationMetaEntityRelation", "Entity Relation", "Field Relations");
89
90 fieldRelations = new IFieldRelation[2];
91 fieldRelations[0] = createFieldRelation("org.caleigo.core.meta.MetaFieldRelation", "ReferenceEntity", "org.caleigo.core.meta.MetaFieldDescriptor", "Entity");
92 fieldRelations[1] = createFieldRelation("org.caleigo.core.meta.MetaFieldRelation", "ReferenceField", "org.caleigo.core.meta.MetaFieldDescriptor", "SourceName");
93 relations[1] = createEntityRelation(fieldRelations, "MetaFieldRelationMetaFieldDescriptor", "Reference Descriptor", "Referense Relations");
94
95 fieldRelations = new IFieldRelation[2];
96 fieldRelations[0] = createFieldRelation("org.caleigo.core.meta.MetaFieldRelation", "TargetEntity", "org.caleigo.core.meta.MetaFieldDescriptor", "Entity");
97 fieldRelations[1] = createFieldRelation("org.caleigo.core.meta.MetaFieldRelation", "TargetField", "org.caleigo.core.meta.MetaFieldDescriptor", "SourceName");
98 relations[2] = createEntityRelation(fieldRelations, "MetaFieldRelationMetaFieldDescriptor1", "Target Descriptor", "Target Relations");
99
100
101 instance = new MetaFieldRelation(fields, relations);
102 }
103
104 /*** Creates a new MetaFieldRelationEntity with default values set
105 */
106 public static MetaFieldRelationEntity create()
107 {
108 return (MetaFieldRelationEntity)instance.createEntity();
109 }
110
111 /*** Creates a new MetaFieldRelationEntity, setting any field values
112 * avaivlable from the provided IDataProvider.
113 */
114 public static MetaFieldRelationEntity create(IDataProvider propertySource)
115 {
116 return (MetaFieldRelationEntity)instance.createEntity(propertySource);
117 }
118
119 /*** Loads a single MetaFieldRelationEntity instance identified by
120 * by the provided identity field values from the default data source.
121 * Returns null if no entity could be identified by field values.
122 */
123 public static MetaFieldRelationEntity load(String aEntityRelation, String aReferenceEntity, String aReferenceField, String aTargetEntity, String aTargetField)
124 {
125 Qualifier qualifier;
126
127 qualifier = Qualifier.create(EntityRelation, new String(aEntityRelation));
128 qualifier.and(ReferenceEntity, new String(aReferenceEntity));
129 qualifier.and(ReferenceField, new String(aReferenceField));
130 qualifier.and(TargetEntity, new String(aTargetEntity));
131 qualifier.and(TargetField, new String(aTargetField));
132
133 return load(qualifier);
134 }
135
136 /*** Loads a single MetaFieldRelationEntity instance identified by
137 * by the provided identity-qualifier from the default data source.
138 * Returns null if no entity could be identified by the provided qualifier.
139 */
140 public static MetaFieldRelationEntity load(Qualifier identityQualifier)
141 {
142 if(instance.getDataSourceDescriptor().getDefaultDataSource()==null)
143 throw new DataServiceNotFoundException("No default data source has been set for: " + instance.getDataSourceDescriptor().getCodeName());
144 return (MetaFieldRelationEntity)instance.getDataSourceDescriptor().getDefaultDataSource().loadEntity(instance, identityQualifier);
145 }
146
147
148
149 /*** Private access to avoid missuse.
150 */
151 private MetaFieldRelation(IFieldDescriptor[] fields, IEntityRelation[] relations)
152 {
153 super("MetaFieldRelation", "MetaFieldRelation", "Field Relation", "org.caleigo.core.meta.MetaFieldRelationEntity", "org.caleigo.core.meta.Meta", SLAVE_ENTITY, fields, relations);
154 this.setFlags(CACHEABLE | CREATABLE | EDITABLE | DELETABLE);
155 this.setCacheTime(72000);
156 }
157 }