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 |
// 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 PropertyIntPositiveMetaData extends PropertyMetaData { public PropertyIntPositiveMetaData( String pName, String pDisplayLabel, Required pRequired, Integer pInitialValue ) { super( pName, pDisplayLabel, DataType.INT_POSITIVE, pRequired, parse( pInitialValue ) ); } @Override public Object validateAndNormalize( Object pValue ) throws ParseException { return parse( pValue ); } public static Object parse( Object pValue ) throws ParseException { if ( pValue == null ) { return pValue; } int iValue; if ( pValue instanceof Integer ) { iValue = ((Integer) pValue); } else { String value = trimEmptyToNull( pValue.toString() ); if ( value == null ) { return value; } try { iValue = Integer.parseInt( value ); } catch ( NumberFormatException e ) { throw new ParseException( value + " is not a valid integer" ); } } if ( iValue < 1 ) { throw new ParseException( "" + iValue + " is not a positive integer" ); } return iValue; } } |