litesoft
@ 947
litesoft / trunk / Java / PoVoGenerator / Generator / src / org / litesoft / generator / VOGenerator.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.generator; import java.util.*; import org.litesoft.aokeyhole.objects.*; import org.litesoft.aokeyhole.objects.properties.*; import org.litesoft.aokeyhole.objects.support.*; import org.litesoft.codegen.*; public class VOGenerator extends AbstractTypeGenerator { private DerivedObjectTuple mDerivedObjectTuple; private VOGenerator( ErrorSinc pErrorSinc, List<SourceCodeGenerator> pGenCollector, Map<String, ObjectRef> pObjectRefs, ObjectMetaData pObjectMetaData, DerivedObjectTuple pDerivedObjectTuple ) { super( pErrorSinc, pGenCollector, pObjectRefs, pObjectMetaData ); mDerivedObjectTuple = pDerivedObjectTuple; } public VOGenerator( ErrorSinc pErrorSinc, List<SourceCodeGenerator> pGenCollector, Map<String, ObjectRef> pObjectRefs, ObjectMetaData pObjectMetaData ) { this( pErrorSinc, pGenCollector, pObjectRefs, pObjectMetaData, createDerivedObjectTuple( pErrorSinc, pObjectMetaData ) ); } private static DerivedObjectTuple createDerivedObjectTuple( ErrorSinc pErrorSinc, ObjectMetaData pObjectMetaData ) { String zDerivedFrom = pObjectMetaData.getPropertyManager().get_String( PMD_DerivedFromObject.NAME, "" ).trim(); if ( zDerivedFrom.length() == 0 ) { return new DerivedObjectTuple( null, null ); } ObjectMetaData zObject = pObjectMetaData.getSystemMetaData().getObject( zDerivedFrom ); if ( zObject == null ) // Log Error & Create Fake Object so no other code fails (in theory as it is not wired into anything)! { pErrorSinc.addError( "NoDerivedObject", "Named: " + zDerivedFrom, pObjectMetaData.toStringForError() ); zObject = new ObjectMetaData( Mode.New, false, new ObjectSet( 0, false, "Bogus" ), null, zDerivedFrom, null ); } return new DerivedObjectTuple( zDerivedFrom, zObject ); } protected AbstractTypeGenerator createParentTypeGenerator( ObjectMetaData pObject ) { return new VOGenerator( mErrorSinc, mGenCollector, mObjectRefs, pObject, new DerivedObjectTuple( mDerivedObjectTuple ) ); } protected void generateTypeSpecificFiles( ObjectRef pObjectRef, ObjectRef pParentObjectRef ) { mGenCollector.add( new GenerateVO( mErrorSinc, mObjectMetaData, mDerivedObjectTuple, pObjectRef, pParentObjectRef ).generate() ); mGenCollector.add( new GenerateVOGO( mErrorSinc, mObjectMetaData, mDerivedObjectTuple, pObjectRef, pParentObjectRef ).generate() ); mGenCollector.add( new GenerateVOMetaData( mErrorSinc, mObjectMetaData, mDerivedObjectTuple, pObjectRef, pParentObjectRef ).generate() ); mGenCollector.add( new GenerateVOMetaDataGO( mErrorSinc, mObjectMetaData, mDerivedObjectTuple, pObjectRef, pParentObjectRef ).generate() ); mGenCollector.add( new GenerateVONames( mErrorSinc, mObjectMetaData, mDerivedObjectTuple, pObjectRef, pParentObjectRef ).generate() ); mGenCollector.add( new GenerateVONamesGO( mErrorSinc, mObjectMetaData, mDerivedObjectTuple, pObjectRef, pParentObjectRef ).generate() ); } } |