litesoft
@ 811
litesoft / trunk / Java / PoVoGenerator / Generator / src / org / litesoft / generator / ObjectRef.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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt package org.litesoft.generator; import java.io.*; import org.litesoft.aokeyhole.objects.*; import org.litesoft.aokeyhole.objects.properties.*; import org.litesoft.codegen.*; import org.litesoft.core.typeutils.*; public class ObjectRef { private String mFolder = "N/A:Errored"; private String mPackage = "N/A:Errored"; private String mFullFolderPath = "N/A:Errored"; private String mObjectName = "N/A:Errored"; public String getFolder() { return mFolder; } public String getPackage() { return mPackage; } public String getFullFolderPath() { return mFullFolderPath; } public String getObjectName() { return mObjectName; } public String getFullyQualifiedName() { return mPackage + "." + mObjectName; } public ObjectRef( ErrorSinc pErrorSinc, ObjectMetaData pObjectMetaData ) { mObjectName = pObjectMetaData.getName(); String zFolderAndPackage = pObjectMetaData.getPropertyManager().get_String( PMD_Package.NAME, "" ).trim(); if ( zFolderAndPackage.length() == 0 ) { pErrorSinc.addError( "Package", "Missing", pObjectMetaData.toString() ); return; } int zAt = zFolderAndPackage.indexOf( '|' ); if ( zAt == -1 ) { pErrorSinc.addError( "PackageFormat", "No Folder/Package Sep ('|')", pObjectMetaData.toString() ); return; } mFolder = zFolderAndPackage.substring( 0, zAt ).trim(); mPackage = zFolderAndPackage.substring( zAt + 1 ).trim(); if ( mPackage.length() == 0 ) { pErrorSinc.addError( "PackageFormat", "Nothing after sep ('|')", pObjectMetaData.toString() ); return; } if ( !isInvalidPackage( mPackage ) ) { pErrorSinc.addError( "UnacceptablePackage", "(" + mPackage + ") after sep ('|')", pObjectMetaData.toString() ); return; } mFullFolderPath = ((mFolder.length() == 0) ? "" : mFolder.replace( '\\', '/' ) + "/") + mPackage.replace( '.', '/' ); if ( !new File( mFullFolderPath ).isDirectory() ) { pErrorSinc.addError( "PackageNotDirectory", "Folder & Package (" + mFullFolderPath + ")", pObjectMetaData.toString() ); } } private boolean isInvalidPackage( String pPackage ) { for ( int i = 0; i < pPackage.length(); i++ ) { char c = pPackage.charAt( i ); if ( !Characters.isAlphaNumeric( c ) && (c != '.') ) { return false; } } return true; } } |