litesoft
@ 947
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 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.aokeyhole.objects; import org.litesoft.aokeyhole.objects.support.*; import org.litesoft.aokeyhole.persist.*; public class Property extends AbstractBase { 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 addTo( PropertyableBuilder pBuilder ) { PropertyMetaData md = getMetaData(); Object value = getValue(); if ( pBuilder.recordAllProperties() || !areEqual( md.getInitialValue(), value ) ) { pBuilder.addProperty( getName(), md.valueToString( value ) ); } } 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(); } } |
Commits for litesoft/trunk/Java/KeyHole/src/org/litesoft/aokeyhole/objects/Property.java
Revision | Author | Commited | Message |
---|---|---|---|
947 Diff | GeorgeS | Fri 06 Jun, 2014 23:36:56 +0000 | Correct Spelling of package! |
841 Diff | GeorgeS | Thu 06 Sep, 2012 18:28:52 +0000 | |
787 Diff | GeorgeS | Mon 30 Jul, 2012 03:00:12 +0000 | |
49 Diff | GeorgeS | Mon 12 Apr, 2010 02:59:10 +0000 | License Text |
17 Diff | GeorgeS | Thu 18 Feb, 2010 23:54:44 +0000 | |
2 | GeorgeS | Sun 07 Feb, 2010 12:50:58 +0000 |