public static synchronized ConverterRegistry getInstance() { if ( instance == null ) { instance = new ConverterRegistry(); } return instance; }
/** * Converts a string to a property value. * * @param s * the string. * @param c * the target class. * @return the object converted from the given string into a object of the target class. * @throws BeanException * if there was an error during the conversion. */ public static Object toPropertyValue( final String s, final Class c ) throws BeanException { if ( s == null ) { return null; } if ( c == null ) { return null; } final ValueConverter vc = ConverterRegistry.getInstance().getValueConverter( c ); if ( vc == null ) { return null; } return vc.toPropertyValue( s ); }
private void setConfigurationIfDefined( final ModifiableConfiguration config, final String configKey, final Object value ) { if ( value == null ) { return; } try { String valueText = ConverterRegistry.toAttributeValue( value ); config.setConfigProperty( configKey, valueText ); } catch ( final BeanException e ) { logger.info( String .format( "Ignoring invalid attribute-value override for configuration '%s' with value '%s'", configKey, value ) ); } }
protected Object convertValue( final String text ) throws BeanException { if ( text == null ) { return null; } if ( formatter != null ) { try { final Object o = formatter.parseObject( text ); // this magic converts the date or number value to the real type. // the formatter always returns doubles/bigdecimals or java.util.Dates // but we may need sql-dates, long-objects etc .. final String asText = ConverterRegistry.toAttributeValue( o ); return ConverterRegistry.toPropertyValue( asText, getType() ); } catch ( ParseException e ) { throw new BeanException( "Failed to format object" ); } } if ( Object.class == type || String.class == type ) { return text; } return ConverterRegistry.toPropertyValue( text, type ); }
final ValueConverter valueConverter = ConverterRegistry.getInstance().getValueConverter( key.getValueType() ); if ( valueConverter != null ) { final Object o = ConverterRegistry.toPropertyValue( String.valueOf( value ), key.getValueType() ); style.setStyleProperty( key, o ); } else {
final ValueConverter valueConverter = ConverterRegistry.getInstance().getValueConverter( entry.getValueType() ); if ( valueConverter != null ) { textValue = ConverterRegistry.toAttributeValue( value ); } catch ( BeanException be ) { textValue = String.valueOf( value ); return ConverterRegistry.toPropertyValue( textValue, entry.getValueType() ); } catch ( BeanException e ) { if ( logger.isDebugEnabled() ) {
public static Object convert( final Object o, final Class c, final Object defaultValue ) { if ( o == null ) { return defaultValue; } if ( c.isInstance( o ) ) { return o; } try { final String s = String.valueOf( o ); return toPropertyValue( s, c ); } catch ( BeanException e ) { return defaultValue; } } }
final List<SortConstraint> sortOrder = lookupSortOrder( processedReport ); this.query = (String) ConverterRegistry.convert( queryRaw, String.class, processedReport.getQuery() ); this.queryLimit = (Integer) ConverterRegistry.convert( queryLimitRaw, Integer.class, queryLimitDefault ); this.queryTimeout = (Integer) ConverterRegistry.convert( queryTimeoutRaw, Integer.class, queryTimeoutDefault );
public ValueConverter getValueConverter( final Class c ) { final ValueConverter plain = registeredClasses.get( c ); if ( plain != null ) { return plain; } if ( c.isArray() ) { final Class componentType = c.getComponentType(); final ValueConverter componentConverter = getValueConverter( componentType ); if ( componentConverter != null ) { return new ArrayValueConverter( componentType, componentConverter ); } } if ( c.isEnum() ) { return new EnumValueConverter( c ); } return null; }
final ConverterRegistry instance = ConverterRegistry.getInstance(); final ElementMetaData metaData = e.getMetaData(); boolean retval = false; e.setAttribute( namespace, name, propertyEditor.getValue() ); } else { final ValueConverter valueConverter = instance.getValueConverter( type ); if ( type.isAssignableFrom( String.class ) ) { final Object o = ConverterRegistry.toPropertyValue( String.valueOf( value ), type ); e.setAttribute( namespace, name, o ); } else {
private static String continueLookupVariable( final CSVTokenizer tokenizer, final Object parent ) throws BeanException { if ( tokenizer.hasMoreTokens() ) { final String name = tokenizer.nextToken(); final Object base = ConverterRegistry.toPropertyValue( name, parent.getClass() ); if ( tokenizer.hasMoreTokens() ) { return continueLookupVariable( tokenizer, base ); } else { return ConverterRegistry.toAttributeValue( base ); } } return null; }
final Object o = ConverterRegistry.toPropertyValue( (String) attribute, type ); if ( o != null ) { return o;
AttributeNames.Internal.QUERY ), preDataSubReport.getQuery() ); final String queryDefined = designtime ? "design-time-query" : preDataSubReport.getQuery(); this.query = (String) ConverterRegistry.convert( queryRaw, String.class, queryDefined ); evaluateExpression( preDataSubReport.getAttributeExpression( AttributeNames.Internal.NAMESPACE, AttributeNames.Internal.QUERY_LIMIT ), queryLimitDefault ); this.queryLimit = (Integer) ConverterRegistry.convert( queryLimitRaw, Integer.class, queryLimitDefault ); evaluateExpression( preDataSubReport.getAttributeExpression( AttributeNames.Internal.NAMESPACE, AttributeNames.Internal.QUERY_TIMEOUT ), queryTimeoutDefault ); this.queryTimeout = (Integer) ConverterRegistry.convert( queryTimeoutRaw, Integer.class, queryTimeoutDefault );
element.setAttribute( namespace, name, propertyEditor.getValue() ); } else { final ConverterRegistry instance = ConverterRegistry.getInstance(); final ValueConverter valueConverter = instance.getValueConverter( type ); if ( valueConverter != null ) { final Object o = ConverterRegistry.toPropertyValue( attributeValue, type ); element.setAttribute( namespace, name, o ); } else if ( String.class.isAssignableFrom( type ) ) {
/** * Converts an object to an attribute value. * * @param o * the object. * @return the attribute value. * @throws BeanException * if there was an error during the conversion. */ public static String toAttributeValue( final Object o ) throws BeanException { if ( o == null ) { return null; } final ValueConverter vc = ConverterRegistry.getInstance().getValueConverter( o.getClass() ); if ( vc == null ) { return null; } return vc.toAttributeValue( o ); }
public void initialize() { handler.setAdjustingToExternalInput( true ); try { final Object value = updateContext.getParameterValue( parameterName ); if ( value != null ) { try { if ( format != null ) { textArea.setText( format.format( value ) ); } else { textArea.setText( ConverterRegistry.toAttributeValue( value ) ); } } catch ( Exception e ) { // ignore illegal values, set them as plain text. textArea.setText( value.toString() ); setBackground( ParameterReportControllerPane.ERROR_COLOR ); } } else { textArea.setText( null ); } } finally { handler.setAdjustingToExternalInput( false ); } } }
/** * Returns the value for the cell at <code>columnIndex</code> and <code>rowIndex</code>. * * @param rowIndex * the row whose value is to be queried * @param columnIndex * the column whose value is to be queried * @return the value Object at the specified cell */ public Object getValueAt( final int rowIndex, final int columnIndex ) { try { final Class colType = getColumnClass( columnIndex ); if ( Number.class.isAssignableFrom( colType ) ) { return ConverterRegistry.toPropertyValue( String.valueOf( ( rowIndex * getColumnCount() ) + columnIndex ), colType ); } if ( Date.class.isAssignableFrom( colType ) ) { final Date date = new Date( ( ( rowIndex * getColumnCount() ) + columnIndex ) * ( 12 * 60 * 60 * 1000 ) ); return ConverterRegistry.toPropertyValue( ConverterRegistry.toAttributeValue( date ), colType ); } if ( String.class.isAssignableFrom( colType ) ) { return getColumnName( columnIndex ) + rowIndex; } return null; } catch ( Exception e ) { return null; } }
/** * This is a design-time default. * * @param position * @return */ public Object getParameterDefault( final int position ) { try { final String value = getBundle( Locale.getDefault() ).getString( "parameter." + position + ".default-value" ); if ( StringUtils.isEmpty( value ) ) { return null; } return ConverterRegistry.toPropertyValue( value, getParameterType( position ) ); } catch ( Exception e ) { return null; } }
public void setPropertyAsString( final String name, final Class type, final String txt ) throws BeanException { if ( name == null ) { throw new NullPointerException( "Name must not be null" ); } if ( type == null ) { throw new NullPointerException( "Type must not be null" ); } if ( txt == null ) { throw new NullPointerException( "Text must not be null" ); } final PropertySpecification ps = new PropertySpecification( name ); final ValueConverter vc; if ( ps.getIndex() != null && type.isArray() ) { vc = ConverterRegistry.getInstance().getValueConverter( type.getComponentType() ); } else { vc = ConverterRegistry.getInstance().getValueConverter( type ); } if ( vc == null ) { throw new BeanException( "Unable to handle '" + type + "' for property '" + name + '\'' ); } final Object o = vc.toPropertyValue( txt ); setProperty( ps, o ); }
public void initialize() { handler.setAdjustingToExternalInput( true ); try { final Object value = updateContext.getParameterValue( parameterName ); if ( value != null ) { try { if ( format != null ) { setText( format.format( value ) ); } else { setText( ConverterRegistry.toAttributeValue( value ) ); } } catch ( Exception e ) { // ignore illegal values, set them as plain text. setText( value.toString() ); setBackground( ParameterReportControllerPane.ERROR_COLOR ); } } else { setText( null ); } } finally { handler.setAdjustingToExternalInput( false ); } } }