Subversion Repository Public Repository

litesoft

Diff Revisions 222 vs 787 for /trunk/Java/KeyHole/src/org/litesoft/aokeyhole/objects/ObjectMetaData.java

Diff revisions: vs.
  @@ -6,6 +6,7 @@
6 6 import org.litesoft.aokeyhole.objects.attributes.*;
7 7 import org.litesoft.aokeyhole.objects.factories.*;
8 8 import org.litesoft.aokeyhole.objects.support.*;
9 + import org.litesoft.aokeyhole.persist.*;
9 10 import org.litesoft.aokeyhole.toolkit.*;
10 11 import org.litesoft.core.simpletypes.nonpublic.*;
11 12
  @@ -27,7 +28,8 @@
27 28 private ObjectProxy mParent;
28 29 private ObjectMetaData[] mGeneratedRelationsByParent = EMPTY_ARRAY;
29 30
30 - public ObjectMetaData( Mode pMode, boolean pEditable, ObjectSet pObjectSet, IdentifierValidator pNameValidator, String pName, AttributeFactory pAttributeFactory )
31 + public ObjectMetaData( Mode pMode, boolean pEditable, ObjectSet pObjectSet, IdentifierValidator pNameValidator, String pName,
32 + AttributeFactory pAttributeFactory )
31 33 {
32 34 super( pObjectSet.getType(), pMode, pEditable, pNameValidator, pName );
33 35
  @@ -99,9 +101,9 @@
99 101 return add( mAttributeFactory.createAttributeMetaDataID( getObjectSet(), Mode.Rehydrating, isEditable(), pName ) );
100 102 }
101 103
102 - public AttributeMetaData unpersistAttributeValidOptions( AttributeType pType, String[] pNameAndOptions, boolean pVirtual )
104 + public AttributeMetaData unpersistAttributeValidOptions( AttributeType pType, String pName, String[] pOptions, boolean pVirtual )
103 105 {
104 - return add( mAttributeFactory.createAttributeMetaDataValidOptions( getObjectSet(), Mode.Rehydrating, isEditable(), pType, pVirtual, pNameAndOptions ) );
106 + return add( mAttributeFactory.createAttributeMetaDataValidOptions( getObjectSet(), Mode.Rehydrating, isEditable(), pType, pVirtual, pName, pOptions ) );
105 107 }
106 108
107 109 public AttributeMetaData unpersistAttributeSimple( AttributeType pType, String pName, boolean pVirtual )
  @@ -111,7 +113,8 @@
111 113
112 114 public AttributeMetaData unpersistAttributeRelatedVirtual( AttributeType pType, String pName, String pRelatedToName )
113 115 {
114 - AttributeMetaDataRelatedVirtual md = mAttributeFactory.createAttributeMetaDataRelatedVirtual( getObjectSet(), Mode.Rehydrating, isEditable(), pType, pName );
116 + AttributeMetaDataRelatedVirtual md =
117 + mAttributeFactory.createAttributeMetaDataRelatedVirtual( getObjectSet(), Mode.Rehydrating, isEditable(), pType, pName );
115 118 add( md );
116 119 md.unpersistRelatedTo( pRelatedToName );
117 120 return md;
  @@ -119,7 +122,8 @@
119 122
120 123 public AttributeMetaData unpersistAttributeRelatedPersisted( AttributeType pType, String pName, String pRelatedToName, String pBackAttrib )
121 124 {
122 - AttributeMetaDataRelatedPersisted md = mAttributeFactory.createAttributeMetaDataRelatedPersisted( getObjectSet(), Mode.Rehydrating, isEditable(), pType, pName );
125 + AttributeMetaDataRelatedPersisted md =
126 + mAttributeFactory.createAttributeMetaDataRelatedPersisted( getObjectSet(), Mode.Rehydrating, isEditable(), pType, pName );
123 127 add( md );
124 128 md.unpersistRelatedTo( pRelatedToName );
125 129 md.unpersistBackAttrib( pBackAttrib );
  @@ -183,7 +187,7 @@
183 187 }
184 188 if ( pType instanceof AbstractValidOptionsAttributeTypeSimple )
185 189 {
186 - return add( mAttributeFactory.createAttributeMetaDataValidOptions( getObjectSet(), Mode.New, isEditable(), pType, pVirtual, (String) null ) );
190 + return add( mAttributeFactory.createAttributeMetaDataValidOptions( getObjectSet(), Mode.New, isEditable(), pType, pVirtual, null ) );
187 191 }
188 192 // Simple
189 193 return add( mAttributeFactory.createAttributeMetaDataSimple( getObjectSet(), Mode.New, isEditable(), pType, pVirtual, null ) );
  @@ -456,88 +460,68 @@
456 460 return shrunk;
457 461 }
458 462
459 - @Override
460 - public void addLines( List<String> pCollector, int pIndent )
463 + public void addTo( SubSystemBuilder pBuilder )
461 464 {
462 - pCollector.add( "" );
463 - pCollector.add( "" );
464 - StringBuilder sb = startLine( pIndent );
465 - String parentName = getParentName();
466 - if ( parentName != null )
465 + ObjectBuilder zBuilder =
466 + pBuilder.createObjectBuilder( getMetaDataType(), getName(), getParentName(), SingleLineNotes.convertStringToLines( getNotes() ) );
467 + mPropertyManager.addTo( zBuilder );
468 + for ( AttributeMetaData zAttribute : getSortedAttributes() )
467 469 {
468 - sb.append( '|' ).append( parentName );
470 + zAttribute.addTo( zBuilder );
469 471 }
470 - pCollector.add( sb.toString() );
471 - pIndent += 2;
472 - addNonNullLine( pCollector, pIndent, AttribNames.NOTES, getNotes() );
473 - mPropertyManager.addLines( pCollector, pIndent );
474 - addOwnings( pCollector, --pIndent, getSortedAttributes() );
472 + zBuilder.done();
475 473 }
476 474
477 - public void populateFrom( ToLinesObjectsParseStream pOPS )
475 + public void populateFrom( ObjectReader pReader )
478 476 {
479 - while ( pOPS.isNextDepth( 2 ) ) // Properties
477 + unpersistNotes( SingleLineNotes.convertLinesToString( pReader.getNotes() ) );
478 + for ( PropertyReader zReader; null != (zReader = pReader.nextProperty()); )
480 479 {
481 - pOPS.readLine();
482 - String zWhat = pOPS.getWhat();
483 - String zData = pOPS.getData();
484 - if ( ObjectNames.NOTES.equals( zWhat ) )
485 - {
486 - unpersistNotes( zData );
487 - }
488 - else
489 - {
490 - mPropertyManager.unpersistProperty( zWhat, zData );
491 - }
480 + String zWhat = zReader.getWhat();
481 + String zData = zReader.getData();
482 + mPropertyManager.unpersistProperty( zWhat, zData );
492 483 }
493 - while ( pOPS.isNextDepth( 1 ) ) // Attributes
484 + for ( AttributeReader zReader; null != (zReader = pReader.nextAttribute()); )
494 485 {
495 - pOPS.readLine();
496 - String zWhat = pOPS.getWhat();
486 + String zType = zReader.getType();
497 487
498 - boolean zVirtual = zWhat.startsWith( ObjectNames.VIRTUAL_PREFIX );
499 - if ( zVirtual )
500 - {
501 - zWhat = zWhat.substring( ObjectNames.VIRTUAL_PREFIX.length() );
502 - }
503 - AttributeSet zSet = determineAttributeSet( zWhat, zVirtual );
488 + boolean zVirtual = zReader.isVirtual();
489 + AttributeSet zSet = determineAttributeSet( zType, zVirtual );
504 490 if ( zSet == null )
505 491 {
506 - throw pOPS.error( "Unrecognized Attribute-type '" + pOPS.getWhat() + "', not" + mAttributeFactory.getTypesForError() );
492 + throw zReader.unrecognizedType(
493 + "Unrecognized Attribute-type '" + (zVirtual ? "Virtual-" : "") + zType + "', not" + mAttributeFactory.getTypesForError() );
507 494 }
508 495
509 - AttributeMetaData md = createAttributeMetaData( zSet, zVirtual, pOPS );
510 -
511 - md.populateFrom( pOPS );
496 + createAttributeMetaData( zSet, zVirtual, zReader ).populateFrom( zReader );
512 497 }
513 498 }
514 499
515 - private AttributeMetaData createAttributeMetaData( AttributeSet pSet, boolean pVirtual, ToLinesObjectsParseStream pOPS )
500 + private AttributeMetaData createAttributeMetaData( AttributeSet pSet, boolean pVirtual, AttributeReader pReader )
516 501 {
517 - String[] parts;
518 502 AttributeType zType = pSet.getType();
519 503 FundamentalAttributeType zFAT = zType.getFAT();
520 504 if ( zFAT.isRelated() )
521 505 {
506 + String[] parts;
522 507 if ( pVirtual )
523 508 {
524 - parts = pOPS.parseData( 2, '|' );
525 - return unpersistAttributeRelatedVirtual( zType, parts[0], parts[1] );
509 + parts = pReader.getAdditionalValues( 1 );
510 + return unpersistAttributeRelatedVirtual( zType, pReader.getName(), parts[0] ); // RelatedToName
526 511 }
527 - parts = pOPS.parseData( 3, '|' );
528 - return unpersistAttributeRelatedPersisted( zType, parts[0], parts[1], parts[2] );
512 + parts = pReader.getAdditionalValues( 2 );
513 + return unpersistAttributeRelatedPersisted( zType, pReader.getName(), parts[0], parts[1] ); // RelatedToName, BackAttrib
529 514 }
530 515 if ( zType instanceof AbstractValidOptionsAttributeTypeSimple )
531 516 {
532 - parts = pOPS.parseData( '|' );
533 - return unpersistAttributeValidOptions( zType, parts, pVirtual );
517 + return unpersistAttributeValidOptions( zType, pReader.getName(), pReader.getAdditionalValues( null ), pVirtual );
534 518 }
535 - parts = pOPS.parseData( 1, '|' );
519 + pReader.getAdditionalValues( 0 );
536 520 if ( zType instanceof A_ID )
537 521 {
538 - return unpersistAttributeID( parts[0] );
522 + return unpersistAttributeID( pReader.getName() );
539 523 }
540 - return unpersistAttributeSimple( zType, parts[0], pVirtual );
524 + return unpersistAttributeSimple( zType, pReader.getName(), pVirtual );
541 525 }
542 526
543 527 private AttributeSet determineAttributeSet( String pWhat, boolean pVirtual )