litesoft
@ 809
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 |
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt package org.litesoft.GWT.forms.server.support.nonpublic; import java.util.*; import org.litesoft.core.simpletypes.*; import java.io.*; import org.litesoft.core.typeutils.*; public abstract class AbstractSendableKeyValuePairConverter extends AbstractSendableDataConverter { protected Serializable convertNotNullToPassable( Object pValue ) { return createSimpleKeyValuePair( pValue ); } protected Object convertNotNullNotBoxedTypeFromPassable( Serializable pValue ) { return (pValue instanceof SimpleKeyValuePair) ? // convertSimpleKeyValuePairKey( ((SimpleKeyValuePair) pValue).getKey() ) : // pValue.toString(); } protected Object convertSimpleKeyValuePairKey( Object pKey ) { return pKey; } abstract protected SimpleKeyValuePair createSimpleKeyValuePair( Object pOption ); public SimpleKeyValuePair[] createValidOptions( Object[] pValidOptions, String[] pAltOrLimitingValidOptions ) { if ( Objects.isNullOrEmpty( pValidOptions ) ) { if ( Objects.isNullOrEmpty( pValidOptions = pAltOrLimitingValidOptions ) ) { return SimpleKeyValuePair.EMPTY_ARRAY; } } if ( (pValidOptions == pAltOrLimitingValidOptions) || (pAltOrLimitingValidOptions == null) ) { SimpleKeyValuePair[] rv = new SimpleKeyValuePair[pValidOptions.length]; for ( int i = 0; i < pValidOptions.length; i++ ) { rv[i] = createSimpleKeyValuePair( pValidOptions[i] ); } return rv; } Set<String> zLimitTo = new HashSet<String>(); for ( String option : pAltOrLimitingValidOptions ) { zLimitTo.add( createSimpleKeyValuePair( option ).toStringValue() ); } List<SimpleKeyValuePair> rv = new ArrayList<SimpleKeyValuePair>(); for ( Object option : pValidOptions ) { SimpleKeyValuePair possibleEntry = createSimpleKeyValuePair( option ); if ( zLimitTo.contains( possibleEntry.toStringValue() ) ) { rv.add( possibleEntry ); } } return rv.toArray( new SimpleKeyValuePair[rv.size()] ); } } |