litesoft
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
package org.litesoft.aokeyhole.objects;
import org.litesoft.aokeyhole.objects.support.*;
import java.util.*;
public class Property extends AbstractLineBase
{
private PropertyMetaData mMetaData;
private boolean mEditable;
private Object mValue;
public Property( PropertyMetaData pMetaData, boolean pEditable )
{
mMetaData = pMetaData;
mEditable = pEditable;
mValue = pMetaData.getInitialValue();
}
public PropertyMetaData getMetaData()
{
return mMetaData;
}
public boolean isEditable()
{
return mEditable;
}
public String getName()
{
return mMetaData.getName();
}
public Object getValue()
{
return mValue;
}
public String getValueAsString()
{
return mMetaData.valueToString( mValue );
}
public void unpersistValue( Object pValue )
{
updateValue( pValue );
}
/**
* @return true if Value actually changed
*/
public boolean setValue( Object pValue )
{
if ( !mEditable )
{
throw new IllegalStateException( getName() + " is Not Editable" );
}
return updateValue( pValue );
}
/**
* @return true if Value actually changed
*/
protected boolean updateValue( Object pValue )
{
if ( pValue instanceof String )
{
pValue = ((String) pValue).trim();
if ( "".equals( pValue ) )
{
pValue = null;
}
}
if ( areEqual( mValue, pValue ) )
{
return false;
}
mValue = pValue;
return true;
}
/**
* @return true if Value actually changed
*/
public boolean reset()
{
return setValue( mMetaData.getInitialValue() );
}
public void addLines( List<String> pCollector, int pIndent )
{
PropertyMetaData md = getMetaData();
Object value = getValue();
if ( !areEqual( md.getInitialValue(), value ) )
{
StringBuilder sb = startLine( pIndent );
sb.append( getName() ).append( ':' ).append( md.valueToString( value ) );
pCollector.add( sb.toString() );
}
}
public void setRehydrated()
{
}
/**
* @return null or Error
*/
public String validatePersistable()
{
if ( getMetaData().getRequired().isData() && (getValue() == null) )
{
return getName() + " is Required";
}
return null;
}
@Override
public String toString()
{
return "" + getMetaData() + ":" + getValueAsString();
}
}
|
Revision |
Author |
Commited |
Message |
2
|
GeorgeS
|
Sun 07 Feb, 2010 12:50:58 +0000 |
|