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 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.aokeyhole.objects.support; import org.litesoft.aokeyhole.objects.*; import org.litesoft.aokeyhole.toolkit.*; public abstract class PropertyBooleanMetaData extends PropertyMetaData { private boolean mDefaultValue; public PropertyBooleanMetaData( String pName, String pDisplayLabel, boolean pInitialAndDefaultValue ) { super( pName, pDisplayLabel, DataType.BOOLEAN, Required.DataNotUI, parse( pInitialAndDefaultValue ) ); mDefaultValue = pInitialAndDefaultValue; } public PropertyBooleanMetaData( String pName, boolean pInitialAndDefaultValue ) { this( pName, pName, pInitialAndDefaultValue ); } @Override public Object validateAndNormalize( Object pValue ) throws ParseException { Boolean zBoolean = parse( pValue ); return (zBoolean != null) ? zBoolean : mDefaultValue; } public static Boolean parse( Object pValue ) throws ParseException { if ( (pValue == null) || (pValue instanceof Boolean) ) { return (Boolean) pValue; } String value = pValue.toString(); if ( "YES".equalsIgnoreCase( value ) || "Y".equalsIgnoreCase( value ) || "TRUE".equalsIgnoreCase( value ) || "T".equalsIgnoreCase( value ) ) { return Boolean.TRUE; } if ( "NO".equalsIgnoreCase( value ) || "N".equalsIgnoreCase( value ) || "FALSE".equalsIgnoreCase( value ) || "F".equalsIgnoreCase( value ) ) { return Boolean.FALSE; } throw new ParseException( value + " is Not an acceptable boolean" ); } } |