Subversion Repository Public Repository

litesoft

Diff Revisions 949 vs 950 for /trunk/Java/KeyHole/src/org/litesoft/aokeyhole/objects/support/ObjectProxy.java

Diff revisions: vs.
  @@ -1,96 +1,96 @@
1 - // This Source Code is in the Public Domain per: http://unlicense.org
2 - package org.litesoft.aokeyhole.objects.support;
3 -
4 - import org.litesoft.aokeyhole.objects.*;
5 - import org.litesoft.aokeyhole.toolkit.*;
6 -
7 - public class ObjectProxy extends AbstractBase {
8 - private AbstractNamedMetaData mOwner;
9 - private String mPurpose;
10 -
11 - private SystemMetaData mSystemMetaData = null;
12 - private IdentifierValidator mNameValidator = null;
13 -
14 - private ObjectMetaData mObjectMetaData = null;
15 - private String mObjectName = null;
16 -
17 - public ObjectProxy( AbstractNamedMetaData pOwner, String pPurpose ) {
18 - mOwner = pOwner;
19 - mPurpose = pPurpose;
20 - }
21 -
22 - /**
23 - * @throws ParseException if the previously set Object can NOT be found
24 - */
25 - public void unpersistFini( SystemMetaData pSystemMetaData, IdentifierValidator pNameValidator, ObjectMetaData pButNotThisObject,
26 - String pErrorIfNotThisObject )
27 - throws ParseException {
28 - mSystemMetaData = pSystemMetaData;
29 - mNameValidator = pNameValidator;
30 -
31 - String newObjectName = mObjectName;
32 - mObjectName = null;
33 -
34 - String error = fetchObjectIfNeeded( newObjectName, pButNotThisObject, pErrorIfNotThisObject );
35 - if ( error != null ) {
36 - throw new ParseException( error );
37 - }
38 - }
39 -
40 - public String getObjectName() {
41 - return (mObjectMetaData == null) ? mObjectName : mObjectMetaData.getName();
42 - }
43 -
44 - /**
45 - * @return true if a Change
46 - *
47 - * @throws IllegalArgumentException if Object is not found
48 - */
49 - public boolean setObjectName( String pNewObjectName, ObjectMetaData pButNotThisObject, String pErrorIfNotThisObject )
50 - throws IllegalArgumentException {
51 - String newObjectName = trimEmptyToNull( pNewObjectName );
52 - if ( areEqual( getObjectName(), pNewObjectName ) ) {
53 - return false;
54 - }
55 - if ( "VaribleToOne".equals( newObjectName ) ) {
56 - System.out.println( "ObjectProxy.setObjectName" );
57 - }
58 - if ( mSystemMetaData == null ) {
59 - mObjectName = newObjectName;
60 - return true;
61 - }
62 - ObjectMetaData cur = mObjectMetaData;
63 - String error = fetchObjectIfNeeded( newObjectName, pButNotThisObject, pErrorIfNotThisObject );
64 - if ( error != null ) {
65 - throw new ParseException( error );
66 - }
67 - return !areEqual( cur, mObjectMetaData );
68 - }
69 -
70 - private String fetchObjectIfNeeded( String pNewObjectName, ObjectMetaData pButNotThisObject, String pErrorIfNotThisObject ) {
71 - if ( pNewObjectName == null ) {
72 - mObjectMetaData = null;
73 - return null;
74 - }
75 - String zError = mNameValidator.validateIdentifier( pNewObjectName, mPurpose + " Object Name" );
76 - if ( zError != null ) {
77 - return "On " + mOwner.getName() + ": " + zError;
78 - }
79 - ObjectMetaData newObject = mSystemMetaData.getObject( pNewObjectName );
80 - if ( newObject == null ) {
81 - return "On " + mOwner.getName() + ", requested " + mPurpose + " Object not found: " + pNewObjectName;
82 - }
83 - if ( newObject == pButNotThisObject ) {
84 - if ( pErrorIfNotThisObject != null ) {
85 - return pErrorIfNotThisObject;
86 - }
87 - newObject = null;
88 - }
89 - mObjectMetaData = newObject;
90 - return null;
91 - }
92 -
93 - public ObjectMetaData getObjectMetaData() {
94 - return mObjectMetaData;
95 - }
96 - }
1 + // This Source Code is in the Public Domain per: http://unlicense.org
2 + package org.litesoft.aokeyhole.objects.support;
3 +
4 + import org.litesoft.aokeyhole.objects.*;
5 + import org.litesoft.aokeyhole.toolkit.*;
6 +
7 + public class ObjectProxy extends AbstractBase {
8 + private AbstractNamedMetaData mOwner;
9 + private String mPurpose;
10 +
11 + private SystemMetaData mSystemMetaData = null;
12 + private IdentifierValidator mNameValidator = null;
13 +
14 + private ObjectMetaData mObjectMetaData = null;
15 + private String mObjectName = null;
16 +
17 + public ObjectProxy( AbstractNamedMetaData pOwner, String pPurpose ) {
18 + mOwner = pOwner;
19 + mPurpose = pPurpose;
20 + }
21 +
22 + /**
23 + * @throws ParseException if the previously set Object can NOT be found
24 + */
25 + public void unpersistFini( SystemMetaData pSystemMetaData, IdentifierValidator pNameValidator, ObjectMetaData pButNotThisObject,
26 + String pErrorIfNotThisObject )
27 + throws ParseException {
28 + mSystemMetaData = pSystemMetaData;
29 + mNameValidator = pNameValidator;
30 +
31 + String newObjectName = mObjectName;
32 + mObjectName = null;
33 +
34 + String error = fetchObjectIfNeeded( newObjectName, pButNotThisObject, pErrorIfNotThisObject );
35 + if ( error != null ) {
36 + throw new ParseException( error );
37 + }
38 + }
39 +
40 + public String getObjectName() {
41 + return (mObjectMetaData == null) ? mObjectName : mObjectMetaData.getName();
42 + }
43 +
44 + /**
45 + * @return true if a Change
46 + *
47 + * @throws IllegalArgumentException if Object is not found
48 + */
49 + public boolean setObjectName( String pNewObjectName, ObjectMetaData pButNotThisObject, String pErrorIfNotThisObject )
50 + throws IllegalArgumentException {
51 + String newObjectName = trimEmptyToNull( pNewObjectName );
52 + if ( areEqual( getObjectName(), pNewObjectName ) ) {
53 + return false;
54 + }
55 + if ( "VaribleToOne".equals( newObjectName ) ) {
56 + System.out.println( "ObjectProxy.setObjectName" );
57 + }
58 + if ( mSystemMetaData == null ) {
59 + mObjectName = newObjectName;
60 + return true;
61 + }
62 + ObjectMetaData cur = mObjectMetaData;
63 + String error = fetchObjectIfNeeded( newObjectName, pButNotThisObject, pErrorIfNotThisObject );
64 + if ( error != null ) {
65 + throw new ParseException( error );
66 + }
67 + return !areEqual( cur, mObjectMetaData );
68 + }
69 +
70 + private String fetchObjectIfNeeded( String pNewObjectName, ObjectMetaData pButNotThisObject, String pErrorIfNotThisObject ) {
71 + if ( pNewObjectName == null ) {
72 + mObjectMetaData = null;
73 + return null;
74 + }
75 + String zError = mNameValidator.validateIdentifier( pNewObjectName, mPurpose + " Object Name" );
76 + if ( zError != null ) {
77 + return "On " + mOwner.getName() + ": " + zError;
78 + }
79 + ObjectMetaData newObject = mSystemMetaData.getObject( pNewObjectName );
80 + if ( newObject == null ) {
81 + return "On " + mOwner.getName() + ", requested " + mPurpose + " Object not found: " + pNewObjectName;
82 + }
83 + if ( newObject == pButNotThisObject ) {
84 + if ( pErrorIfNotThisObject != null ) {
85 + return pErrorIfNotThisObject;
86 + }
87 + newObject = null;
88 + }
89 + mObjectMetaData = newObject;
90 + return null;
91 + }
92 +
93 + public ObjectMetaData getObjectMetaData() {
94 + return mObjectMetaData;
95 + }
96 + }