litesoft
@ 939
litesoft / trunk / Java / PoVoGenerator / Generator / src / org / litesoft / generator / AbstractTypeGenerator.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 58 59 60 61 62 63 64 65 66 67 68 |
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt package org.litesoft.generator; import org.litesoft.commonfoundation.typeutils.*; import java.util.*; import org.litesoft.aokeyhole.objects.*; import org.litesoft.codegen.*; public abstract class AbstractTypeGenerator { protected final ErrorSinc mErrorSinc; protected final List<SourceCodeGenerator> mGenCollector; protected final Map<String, ObjectRef> mObjectRefs; protected final ObjectMetaData mObjectMetaData; protected AbstractTypeGenerator( ErrorSinc pErrorSinc, List<SourceCodeGenerator> pGenCollector, Map<String, ObjectRef> pObjectRefs, ObjectMetaData pObjectMetaData ) { mErrorSinc = pErrorSinc; mGenCollector = pGenCollector; mObjectRefs = pObjectRefs; mObjectMetaData = pObjectMetaData; } public final ObjectRef generate() { String zName = mObjectMetaData.getName(); ObjectRef zObjectRef = mObjectRefs.get( zName ); if ( zObjectRef == null ) { int zInitialCount = mErrorSinc.errorCount(); zObjectRef = new ObjectRef( mErrorSinc, mObjectMetaData ); mObjectRefs.put( zName, zObjectRef ); if ( zInitialCount == mErrorSinc.errorCount() ) { ObjectRef zParentObjectRef = getParent(); if ( zInitialCount == mErrorSinc.errorCount() ) { generateTypeSpecificFiles( zObjectRef, zParentObjectRef ); } } } return zObjectRef; } private ObjectRef getParent() { String zParentName = Strings.noEmpty( mObjectMetaData.getParentName() ); if ( zParentName != null ) { // Look it up!!! ObjectMetaData zObject = mObjectMetaData.getSystemMetaData().getObject( zParentName ); if ( zObject != null ) { return createParentTypeGenerator( zObject ).generate(); } mErrorSinc.addError( "NoParentObject", "Named: " + zParentName, mObjectMetaData.toStringForError() ); } return null; } abstract protected void generateTypeSpecificFiles( ObjectRef pObjectRef, ObjectRef pParentObjectRef ); abstract protected AbstractTypeGenerator createParentTypeGenerator( ObjectMetaData pObject ); } |
Commits for litesoft/trunk/Java/PoVoGenerator/Generator/src/org/litesoft/generator/AbstractTypeGenerator.java
Revision | Author | Commited | Message |
---|---|---|---|
939 Diff | GeorgeS | Mon 02 Jun, 2014 21:30:31 +0000 | Extracting commonfoundation |
801 Diff | GeorgeS | Wed 15 Aug, 2012 03:59:02 +0000 | |
49 Diff | GeorgeS | Mon 12 Apr, 2010 02:59:10 +0000 | License Text |
21 Diff | GeorgeS | Tue 23 Feb, 2010 21:11:25 +0000 | |
2 | GeorgeS | Sun 07 Feb, 2010 12:50:58 +0000 |