/** * {@inheritDoc} * * @see org.modeshape.graph.query.model.TypeSystem#getTypeFactory(java.lang.Object) */ public TypeFactory<?> getTypeFactory( Object prototype ) { ValueFactory<?> valueFactory = valueFactories.getValueFactory(prototype); if (valueFactory == null) return null; PropertyType type = valueFactory.getPropertyType(); assert type != null; return typeFactoriesByPropertyType.get(type); }
@SuppressWarnings( "unchecked" ) protected final <T> T convert( String name, PropertyType type, T defaultValue, Map<String, Serializable> values, ExecutionContext context ) { Object value = values.get(name); if (value == null) return defaultValue; ValueFactory<?> factory = context.getValueFactories().getValueFactory(type); return (T)factory.create(value); }
/** * {@inheritDoc} */ public Property create( Name name, PropertyType desiredType, Iterator<?> values ) { CheckArg.isNotNull(name, "name"); final List<Object> valueList = new ArrayList<Object>(); if (desiredType == null) desiredType = PropertyType.OBJECT; final ValueFactory<?> factory = factories.getValueFactory(desiredType); while (values.hasNext()) { Object value = values.next(); value = factory.create(value); valueList.add(value); } if (valueList.isEmpty()) { return new BasicEmptyProperty(name); } if (valueList.size() == 1) { return new BasicSingleValueProperty(name, valueList.get(0)); } return new BasicMultiValueProperty(name, valueList); }
@SuppressWarnings( "unchecked" ) protected final <T> T convert( String name, Class<T> type, T defaultValue, Map<String, Serializable> values, ExecutionContext context ) { Object value = values.get(name); if (value == null) return defaultValue; PropertyType propertyType = PropertyType.discoverType(type); if (propertyType != null) { ValueFactory<?> factory = context.getValueFactories().getValueFactory(propertyType); return (T)factory.create(value); } if (type.isInstance(value)) { return (T)value; } String msg = GraphI18n.errorConvertingType.text(value.getClass().getSimpleName(), type.getSimpleName(), value); throw new ValueFormatException(value, PropertyType.OBJECT, msg); }
/** * {@inheritDoc} */ @Override public Property create( Name name, PropertyType desiredType, Iterator<?> values ) { CheckArg.isNotNull(name, "name"); final List<Object> valueList = new ArrayList<Object>(); if (desiredType == null) desiredType = PropertyType.OBJECT; final ValueFactory<?> factory = factories.getValueFactory(desiredType); while (values.hasNext()) { Object value = values.next(); value = factory.create(value); valueList.add(value); } if (valueList.isEmpty()) { return new BasicEmptyProperty(name); } if (valueList.size() == 1) { Object o = valueList.get(0); if (o instanceof String) { o = getSubstitutedProperty((String)o); } return new BasicSingleValueProperty(name, o); } return new BasicMultiValueProperty(name, valueList); }
final ValueFactory<?> factory = factories.getValueFactory(desiredType); for (Object value : values) { valueList.add(factory.create(value));
final ValueFactory<?> factory = factories.getValueFactory(desiredType); for (Object value : values) { valueList.add(factory.create(value));
PropertyType allowedType = PropertyType.discoverType(paramType); if (allowedType == null) continue; // assume not a JavaBean property with usable type ValueFactory<?> factory = context.getValueFactories().getValueFactory(allowedType); if (paramType.isArray()) { if (paramType.getComponentType().isArray()) continue; // array of array, which we don't do
final ValueFactory<?> factory = factories.getValueFactory(desiredType); if (values.length == 1) { Object value = values[0];
final ValueFactory<?> factory = factories.getValueFactory(desiredType); if (values.length == 1) { Object value = values[0];