|
@@ -1,13 +1,13 @@ |
1 |
1 |
|
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt |
2 |
2 |
|
package org.litesoft.aokeyhole.objects; |
3 |
3 |
|
|
4 |
|
- |
import java.util.*; |
5 |
|
- |
|
6 |
4 |
|
import org.litesoft.aokeyhole.objects.support.*; |
|
5 |
+ |
import org.litesoft.aokeyhole.persist.*; |
7 |
6 |
|
import org.litesoft.aokeyhole.toolkit.*; |
8 |
7 |
|
import org.litesoft.core.simpletypes.nonpublic.*; |
9 |
8 |
|
|
10 |
|
- |
public abstract class AttributeMetaData extends AbstractNamedMetaData<ObjectMetaData> implements MinimalAttributeMetaData, ViewSupportable, |
|
9 |
+ |
public abstract class AttributeMetaData extends AbstractNamedMetaData<ObjectMetaData> implements MinimalAttributeMetaData, |
|
10 |
+ |
ViewSupportable, |
11 |
11 |
|
Comparable<AttributeMetaData> |
12 |
12 |
|
{ |
13 |
13 |
|
public static final String ID_NAME = "ID"; |
|
@@ -17,7 +17,8 @@ |
17 |
17 |
|
private final PropertyManager mPropertyManager; |
18 |
18 |
|
private String mNotes = null; |
19 |
19 |
|
|
20 |
|
- |
protected AttributeMetaData( AttributeSet pAttributeSet, Mode pMode, boolean pEditable, boolean pVirtual, PropertyMetaData[] pPropertyMetaDatas, IdentifierValidator pNameValidator, String pName ) |
|
20 |
+ |
protected AttributeMetaData( AttributeSet pAttributeSet, Mode pMode, boolean pEditable, boolean pVirtual, PropertyMetaData[] pPropertyMetaDatas, |
|
21 |
+ |
IdentifierValidator pNameValidator, String pName ) |
21 |
22 |
|
{ |
22 |
23 |
|
super( pAttributeSet.getType().toString(), pMode, pEditable, pNameValidator, pName ); |
23 |
24 |
|
|
|
@@ -110,20 +111,19 @@ |
110 |
111 |
|
return mPropertyManager.updatePropertyValue( pName, pValue ); |
111 |
112 |
|
} |
112 |
113 |
|
|
113 |
|
- |
public void populateFrom( ToLinesObjectsParseStream pOPS ) |
|
114 |
+ |
public void populateFrom( AttributeReader pReader ) |
114 |
115 |
|
{ |
115 |
|
- |
while ( pOPS.isNextDepth( 3 ) ) // Properties |
|
116 |
+ |
for ( PropertyReader zReader; null != (zReader = pReader.nextProperty()); ) |
116 |
117 |
|
{ |
117 |
|
- |
pOPS.readLine(); |
118 |
|
- |
String zName = pOPS.getWhat(); |
119 |
|
- |
String zData = pOPS.getData(); |
120 |
|
- |
if ( AttribNames.NOTES.equals( zName ) ) |
|
118 |
+ |
String zWhat = zReader.getWhat(); |
|
119 |
+ |
String zData = zReader.getData(); |
|
120 |
+ |
if ( ObjectNames.NOTES.equals( zWhat ) ) |
121 |
121 |
|
{ |
122 |
122 |
|
unpersistNotes( zData ); |
123 |
123 |
|
} |
124 |
124 |
|
else |
125 |
125 |
|
{ |
126 |
|
- |
mPropertyManager.unpersistProperty( zName, zData ); |
|
126 |
+ |
mPropertyManager.unpersistProperty( zWhat, zData ); |
127 |
127 |
|
} |
128 |
128 |
|
} |
129 |
129 |
|
} |
|
@@ -145,25 +145,16 @@ |
145 |
145 |
|
return (error != null) ? error : mPropertyManager.validatePersistable(); |
146 |
146 |
|
} |
147 |
147 |
|
|
148 |
|
- |
@Override |
149 |
|
- |
public void addLines( List<String> pCollector, int pIndent ) |
150 |
|
- |
{ |
151 |
|
- |
pCollector.add( "" ); |
152 |
|
- |
StringBuilder sb = startLine( pIndent ); |
153 |
|
- |
addLineExtra( sb ); |
154 |
|
- |
pCollector.add( sb.toString() ); |
155 |
|
- |
pIndent += 2; |
156 |
|
- |
addNonNullLine( pCollector, pIndent, AttribNames.NOTES, getNotes() ); |
157 |
|
- |
mPropertyManager.addLines( pCollector, pIndent ); |
158 |
|
- |
} |
159 |
|
- |
|
160 |
|
- |
@Override |
161 |
|
- |
protected String getStartLineMetaDataTypePrefix() |
|
148 |
+ |
public void addTo( ObjectBuilder pBuilder ) |
162 |
149 |
|
{ |
163 |
|
- |
return isVirtual() ? ObjectNames.VIRTUAL_PREFIX : ""; |
|
150 |
+ |
AttributeBuilder zBuilder = pBuilder.createAttributeBuilder( getMetaDataType(), isVirtual(), getName(), |
|
151 |
+ |
SingleLineNotes.convertStringToLines( getNotes() ), |
|
152 |
+ |
getAdditionalValues() ); |
|
153 |
+ |
mPropertyManager.addTo( zBuilder ); |
|
154 |
+ |
zBuilder.done(); |
164 |
155 |
|
} |
165 |
156 |
|
|
166 |
|
- |
abstract protected void addLineExtra( StringBuilder pSb ); |
|
157 |
+ |
abstract protected String[] getAdditionalValues(); |
167 |
158 |
|
|
168 |
159 |
|
@Override |
169 |
160 |
|
public void setUpView( NameValuesComponent pNameValuesComponent ) |