Subversion Repository Public Repository

litesoft

Diff Revisions 949 vs 950 for /trunk/Java/PoVoGenerator/Generator/src/org/litesoft/generator/AbstractVOFileGenerator.java

Diff revisions: vs.
  @@ -1,228 +1,228 @@
1 - // This Source Code is in the Public Domain per: http://unlicense.org
2 - package org.litesoft.generator;
3 -
4 - import org.litesoft.aokeyhole.objects.AttributeMetaData;
5 - import org.litesoft.aokeyhole.objects.*;
6 - import org.litesoft.aokeyhole.objects.attributes.*;
7 - import org.litesoft.aokeyhole.objects.properties.*;
8 - import org.litesoft.aokeyhole.objects.support.*;
9 - import org.litesoft.bo.*;
10 - import org.litesoft.bo.attributes.*;
11 - import org.litesoft.codegen.*;
12 - import org.litesoft.commonfoundation.typeutils.*;
13 -
14 - import java.util.*;
15 -
16 - public abstract class AbstractVOFileGenerator extends AbstractTypeFileGenerator {
17 - private class AttributeTuple implements AttributeProxy {
18 - private AttributeMetaData mOrigAMD;
19 - private String mDerivedFromAttribute;
20 - private MinimalAttributeMetaData mDerivedAMD;
21 -
22 - public AttributeTuple( AttributeMetaData pOrigAMD, String pDerivedFromAttribute, MinimalAttributeMetaData pDerivedAMD ) {
23 - mOrigAMD = pOrigAMD;
24 - mDerivedFromAttribute = pDerivedFromAttribute;
25 - mDerivedAMD = pDerivedAMD;
26 - }
27 -
28 - public AttributeTuple( AttributeMetaData pAMD ) {
29 - this( pAMD, null, pAMD );
30 - }
31 -
32 - @Override
33 - public String toString() {
34 - return mOrigAMD.toString();
35 - }
36 -
37 - @Override
38 - public boolean isInjected() {
39 - return false;
40 - }
41 -
42 - @Override
43 - public String getDerivedFromAttribute() {
44 - return mDerivedFromAttribute;
45 - }
46 -
47 - @Override
48 - public String getName() {
49 - return mOrigAMD.getName();
50 - }
51 -
52 - @Override
53 - public String getColumnName() {
54 - throw new UnsupportedOperationException( "Column Name for VOs?" );
55 - }
56 -
57 - @Override
58 - public Mutability getMutability() {
59 - return convertToMutability( mOrigAMD );
60 - }
61 -
62 - @Override
63 - public boolean isSysSetOnly() {
64 - return false;
65 - }
66 -
67 - @Override
68 - public String getNotes() {
69 - return mOrigAMD.getNotes();
70 - }
71 -
72 - @Override
73 - public boolean isVirtual() {
74 - return mOrigAMD.isVirtual();
75 - }
76 -
77 - @Override
78 - public Class getSimpleDataType() {
79 - return mDerivedAMD.getSimpleDataType();
80 - }
81 -
82 - @Override
83 - public String[] getValidOptions() {
84 - if ( mDerivedAMD instanceof HasValidOptions ) {
85 - String[] zOptions = ((HasValidOptions) mDerivedAMD).getValidOptions();
86 - return (zOptions != null) ? zOptions : Strings.EMPTY_ARRAY;
87 - }
88 - return null;
89 - }
90 -
91 - @Override
92 - public BoAttribute.AttributeType getBoAttributeType() {
93 - return getType( mDerivedAMD );
94 - }
95 -
96 - @Override
97 - public AttributeType getAttributeSetType() {
98 - return mDerivedAMD.getAttributeSetType();
99 - }
100 -
101 - @Override
102 - public boolean isRequired() {
103 - return mOrigAMD.getPropertyManager().get_boolean( PMD_Required.NAME );
104 - }
105 -
106 - @Override
107 - public boolean isQueryView() {
108 - return mOrigAMD.getPropertyManager().get_boolean( PMD_QueryView.NAME );
109 - }
110 -
111 - @Override
112 - public PropertyManager getPropertyManager() {
113 - return mDerivedAMD.getPropertyManager();
114 - }
115 -
116 - @Override
117 - public String getToManyFullyQualifiedName() {
118 - return null;
119 - }
120 -
121 - @Override
122 - public boolean isToManyInstantiable() {
123 - return false;
124 - }
125 -
126 - @Override
127 - public String getToManyBackReference() {
128 - return null;
129 - }
130 -
131 - @Override
132 - public AttributeProxy getToManyBackReferenceAttributeProxy() {
133 - return null;
134 - }
135 -
136 - @Override
137 - public String getToOneFullyQualifiedName() {
138 - return null;
139 - }
140 -
141 - @Override
142 - public boolean isToOneInstantiable() {
143 - return false;
144 - }
145 -
146 - @Override
147 - public String getToOneBackReference() {
148 - return null;
149 - }
150 -
151 - @Override
152 - public AttributeProxy getToOneBackReferenceAttributeProxy() {
153 - return null;
154 - }
155 - }
156 -
157 - protected final DerivedObjectTuple mDerivedFromObject;
158 - private AttributeProxy[] mAttributes = null;
159 -
160 - public AbstractVOFileGenerator( ErrorSinc pErrorSinc, ObjectMetaData pObjectMetaData, DerivedObjectTuple pDerivedFromObject, ObjectRef pObjectRef,
161 - String pTypeExtension, ObjectRef pParentObjectRef ) {
162 - super( "View Object", pErrorSinc, pObjectMetaData, pObjectRef, pTypeExtension, pParentObjectRef, pDerivedFromObject.isFromChild() );
163 - mDerivedFromObject = pDerivedFromObject;
164 - }
165 -
166 - @Override
167 - protected AttributeProxy[] getAttributes() {
168 - if ( mAttributes == null ) {
169 - List<AttributeMetaData> zAttributes = mObjectMetaData.getSortedAttributes();
170 - mAttributes = new AttributeTuple[zAttributes.size()];
171 - for ( int i = 0; i < zAttributes.size(); i++ ) {
172 - AttributeMetaData zAttribute = zAttributes.get( i );
173 - String zDerivedFromAttribute = getDerivedFromAttributePath( zAttribute );
174 - if ( zDerivedFromAttribute.length() == 0 ) {
175 - mAttributes[i] = new AttributeTuple( zAttribute );
176 - } else {
177 - mAttributes[i] = new AttributeTuple( zAttribute, zDerivedFromAttribute, getDerivedFromAttribute( zAttribute, zDerivedFromAttribute ) );
178 - }
179 - }
180 - }
181 - return mAttributes;
182 - }
183 -
184 - private String getDerivedFromAttributePath( AttributeMetaData pAttribute ) {
185 - return pAttribute.getPropertyManager().get_String( PMD_DerivedFromAttribute.NAME, "" ).trim();
186 - }
187 -
188 - private MinimalAttributeMetaData getDerivedFromAttribute( AttributeMetaData pAttribute, String pDerivedFromAttributePath ) {
189 - ObjectMetaData zDerivedFromObject = mDerivedFromObject.getDerivedFromObjectMetaData();
190 - if ( zDerivedFromObject == null ) {
191 - mErrorSinc.addError( "DeriveAttributeButNoDerivedObject", "Named: " + pDerivedFromAttributePath, pAttribute.toString(),
192 - mObjectMetaData.toStringForError() );
193 - } else {
194 - MinimalAttributeMetaData zDerived = getDerivedAttribute( zDerivedFromObject, Strings.parseChar( pDerivedFromAttributePath, '.' ) );
195 - if ( zDerived != null ) {
196 - return zDerived;
197 - }
198 - mErrorSinc
199 - .addError( "DeriveAttributeFailure", "with path: " + pDerivedFromAttributePath, zDerivedFromObject.toStringForError(), pAttribute.toString(),
200 - mObjectMetaData.toStringForError() );
201 - }
202 - // create a Fake One so no other code fails (in theory as it is not wired into anything)!
203 - return new AttributeMetaDataSimple( new UiRUpSet( new AttributeSetBuilder( A_String.TYPE ).persisted().virtual() ), Mode.New, false, false,
204 - PropertyMetaData.EMPTY_ARRAY, null, pDerivedFromAttributePath );
205 - }
206 -
207 - private MinimalAttributeMetaData getDerivedAttribute( ObjectMetaData pObjectMetaData, String[] pAttrNames ) {
208 - int i = 0;
209 - MinimalAttributeMetaData zAMD = getAttribute( pObjectMetaData, pAttrNames[i++] );
210 - while ( (zAMD != null) && (i < pAttrNames.length) ) {
211 - if ( zAMD instanceof AttributeMetaDataRelated ) {
212 - String zNextObject = ((AttributeMetaDataRelated) zAMD).getRelatedTo();
213 - if ( zNextObject != null ) {
214 - SystemMetaData zSysMD = getSystemMetaData( pObjectMetaData );
215 - if ( zSysMD != null ) {
216 - pObjectMetaData = zSysMD.getObject( zNextObject );
217 - if ( pObjectMetaData != null ) {
218 - zAMD = getAttribute( pObjectMetaData, pAttrNames[i++] );
219 - continue;
220 - }
221 - }
222 - }
223 - }
224 - return null;
225 - }
226 - return zAMD;
227 - }
228 - }
1 + // This Source Code is in the Public Domain per: http://unlicense.org
2 + package org.litesoft.generator;
3 +
4 + import org.litesoft.aokeyhole.objects.AttributeMetaData;
5 + import org.litesoft.aokeyhole.objects.*;
6 + import org.litesoft.aokeyhole.objects.attributes.*;
7 + import org.litesoft.aokeyhole.objects.properties.*;
8 + import org.litesoft.aokeyhole.objects.support.*;
9 + import org.litesoft.bo.*;
10 + import org.litesoft.bo.attributes.*;
11 + import org.litesoft.codegen.*;
12 + import org.litesoft.commonfoundation.typeutils.*;
13 +
14 + import java.util.*;
15 +
16 + public abstract class AbstractVOFileGenerator extends AbstractTypeFileGenerator {
17 + private class AttributeTuple implements AttributeProxy {
18 + private AttributeMetaData mOrigAMD;
19 + private String mDerivedFromAttribute;
20 + private MinimalAttributeMetaData mDerivedAMD;
21 +
22 + public AttributeTuple( AttributeMetaData pOrigAMD, String pDerivedFromAttribute, MinimalAttributeMetaData pDerivedAMD ) {
23 + mOrigAMD = pOrigAMD;
24 + mDerivedFromAttribute = pDerivedFromAttribute;
25 + mDerivedAMD = pDerivedAMD;
26 + }
27 +
28 + public AttributeTuple( AttributeMetaData pAMD ) {
29 + this( pAMD, null, pAMD );
30 + }
31 +
32 + @Override
33 + public String toString() {
34 + return mOrigAMD.toString();
35 + }
36 +
37 + @Override
38 + public boolean isInjected() {
39 + return false;
40 + }
41 +
42 + @Override
43 + public String getDerivedFromAttribute() {
44 + return mDerivedFromAttribute;
45 + }
46 +
47 + @Override
48 + public String getName() {
49 + return mOrigAMD.getName();
50 + }
51 +
52 + @Override
53 + public String getColumnName() {
54 + throw new UnsupportedOperationException( "Column Name for VOs?" );
55 + }
56 +
57 + @Override
58 + public Mutability getMutability() {
59 + return convertToMutability( mOrigAMD );
60 + }
61 +
62 + @Override
63 + public boolean isSysSetOnly() {
64 + return false;
65 + }
66 +
67 + @Override
68 + public String getNotes() {
69 + return mOrigAMD.getNotes();
70 + }
71 +
72 + @Override
73 + public boolean isVirtual() {
74 + return mOrigAMD.isVirtual();
75 + }
76 +
77 + @Override
78 + public Class getSimpleDataType() {
79 + return mDerivedAMD.getSimpleDataType();
80 + }
81 +
82 + @Override
83 + public String[] getValidOptions() {
84 + if ( mDerivedAMD instanceof HasValidOptions ) {
85 + String[] zOptions = ((HasValidOptions) mDerivedAMD).getValidOptions();
86 + return (zOptions != null) ? zOptions : Strings.EMPTY_ARRAY;
87 + }
88 + return null;
89 + }
90 +
91 + @Override
92 + public BoAttribute.AttributeType getBoAttributeType() {
93 + return getType( mDerivedAMD );
94 + }
95 +
96 + @Override
97 + public AttributeType getAttributeSetType() {
98 + return mDerivedAMD.getAttributeSetType();
99 + }
100 +
101 + @Override
102 + public boolean isRequired() {
103 + return mOrigAMD.getPropertyManager().get_boolean( PMD_Required.NAME );
104 + }
105 +
106 + @Override
107 + public boolean isQueryView() {
108 + return mOrigAMD.getPropertyManager().get_boolean( PMD_QueryView.NAME );
109 + }
110 +
111 + @Override
112 + public PropertyManager getPropertyManager() {
113 + return mDerivedAMD.getPropertyManager();
114 + }
115 +
116 + @Override
117 + public String getToManyFullyQualifiedName() {
118 + return null;
119 + }
120 +
121 + @Override
122 + public boolean isToManyInstantiable() {
123 + return false;
124 + }
125 +
126 + @Override
127 + public String getToManyBackReference() {
128 + return null;
129 + }
130 +
131 + @Override
132 + public AttributeProxy getToManyBackReferenceAttributeProxy() {
133 + return null;
134 + }
135 +
136 + @Override
137 + public String getToOneFullyQualifiedName() {
138 + return null;
139 + }
140 +
141 + @Override
142 + public boolean isToOneInstantiable() {
143 + return false;
144 + }
145 +
146 + @Override
147 + public String getToOneBackReference() {
148 + return null;
149 + }
150 +
151 + @Override
152 + public AttributeProxy getToOneBackReferenceAttributeProxy() {
153 + return null;
154 + }
155 + }
156 +
157 + protected final DerivedObjectTuple mDerivedFromObject;
158 + private AttributeProxy[] mAttributes = null;
159 +
160 + public AbstractVOFileGenerator( ErrorSinc pErrorSinc, ObjectMetaData pObjectMetaData, DerivedObjectTuple pDerivedFromObject, ObjectRef pObjectRef,
161 + String pTypeExtension, ObjectRef pParentObjectRef ) {
162 + super( "View Object", pErrorSinc, pObjectMetaData, pObjectRef, pTypeExtension, pParentObjectRef, pDerivedFromObject.isFromChild() );
163 + mDerivedFromObject = pDerivedFromObject;
164 + }
165 +
166 + @Override
167 + protected AttributeProxy[] getAttributes() {
168 + if ( mAttributes == null ) {
169 + List<AttributeMetaData> zAttributes = mObjectMetaData.getSortedAttributes();
170 + mAttributes = new AttributeTuple[zAttributes.size()];
171 + for ( int i = 0; i < zAttributes.size(); i++ ) {
172 + AttributeMetaData zAttribute = zAttributes.get( i );
173 + String zDerivedFromAttribute = getDerivedFromAttributePath( zAttribute );
174 + if ( zDerivedFromAttribute.length() == 0 ) {
175 + mAttributes[i] = new AttributeTuple( zAttribute );
176 + } else {
177 + mAttributes[i] = new AttributeTuple( zAttribute, zDerivedFromAttribute, getDerivedFromAttribute( zAttribute, zDerivedFromAttribute ) );
178 + }
179 + }
180 + }
181 + return mAttributes;
182 + }
183 +
184 + private String getDerivedFromAttributePath( AttributeMetaData pAttribute ) {
185 + return pAttribute.getPropertyManager().get_String( PMD_DerivedFromAttribute.NAME, "" ).trim();
186 + }
187 +
188 + private MinimalAttributeMetaData getDerivedFromAttribute( AttributeMetaData pAttribute, String pDerivedFromAttributePath ) {
189 + ObjectMetaData zDerivedFromObject = mDerivedFromObject.getDerivedFromObjectMetaData();
190 + if ( zDerivedFromObject == null ) {
191 + mErrorSinc.addError( "DeriveAttributeButNoDerivedObject", "Named: " + pDerivedFromAttributePath, pAttribute.toString(),
192 + mObjectMetaData.toStringForError() );
193 + } else {
194 + MinimalAttributeMetaData zDerived = getDerivedAttribute( zDerivedFromObject, Strings.parseChar( pDerivedFromAttributePath, '.' ) );
195 + if ( zDerived != null ) {
196 + return zDerived;
197 + }
198 + mErrorSinc
199 + .addError( "DeriveAttributeFailure", "with path: " + pDerivedFromAttributePath, zDerivedFromObject.toStringForError(), pAttribute.toString(),
200 + mObjectMetaData.toStringForError() );
201 + }
202 + // create a Fake One so no other code fails (in theory as it is not wired into anything)!
203 + return new AttributeMetaDataSimple( new UiRUpSet( new AttributeSetBuilder( A_String.TYPE ).persisted().virtual() ), Mode.New, false, false,
204 + PropertyMetaData.EMPTY_ARRAY, null, pDerivedFromAttributePath );
205 + }
206 +
207 + private MinimalAttributeMetaData getDerivedAttribute( ObjectMetaData pObjectMetaData, String[] pAttrNames ) {
208 + int i = 0;
209 + MinimalAttributeMetaData zAMD = getAttribute( pObjectMetaData, pAttrNames[i++] );
210 + while ( (zAMD != null) && (i < pAttrNames.length) ) {
211 + if ( zAMD instanceof AttributeMetaDataRelated ) {
212 + String zNextObject = ((AttributeMetaDataRelated) zAMD).getRelatedTo();
213 + if ( zNextObject != null ) {
214 + SystemMetaData zSysMD = getSystemMetaData( pObjectMetaData );
215 + if ( zSysMD != null ) {
216 + pObjectMetaData = zSysMD.getObject( zNextObject );
217 + if ( pObjectMetaData != null ) {
218 + zAMD = getAttribute( pObjectMetaData, pAttrNames[i++] );
219 + continue;
220 + }
221 + }
222 + }
223 + }
224 + return null;
225 + }
226 + return zAMD;
227 + }
228 + }