/** * Create a {@code PropertyState} based on a {@link Value}. The * {@link Type} of the property state is determined by the * type of the value. * @param name The name of the property state * @param value The value of the property state * @return The new property state * @throws RepositoryException forwarded from {@code value} */ @NotNull public static PropertyState createProperty(String name, Value value) throws RepositoryException { int type = value.getType(); switch (type) { case PropertyType.STRING: return StringPropertyState.stringProperty(name, getString(value, type)); case PropertyType.BINARY: return BinaryPropertyState.binaryProperty(name, value); case PropertyType.LONG: return LongPropertyState.createLongProperty(name, value.getLong()); case PropertyType.DOUBLE: return DoublePropertyState.doubleProperty(name, value.getDouble()); case PropertyType.BOOLEAN: return BooleanPropertyState.booleanProperty(name, value.getBoolean()); case PropertyType.DECIMAL: return DecimalPropertyState.decimalProperty(name, value.getDecimal()); default: return new GenericPropertyState(name, getString(value, type), Type.fromTag(type, false)); } }
/** * Create a {@code PropertyState} based on a {@link Value}. The * {@link Type} of the property state is determined by the * type of the value. * @param name The name of the property state * @param value The value of the property state * @return The new property state * @throws RepositoryException forwarded from {@code value} */ @Nonnull public static PropertyState createProperty(String name, Value value) throws RepositoryException { int type = value.getType(); switch (type) { case PropertyType.STRING: return StringPropertyState.stringProperty(name, getString(value, type)); case PropertyType.BINARY: return BinaryPropertyState.binaryProperty(name, value); case PropertyType.LONG: return LongPropertyState.createLongProperty(name, value.getLong()); case PropertyType.DOUBLE: return DoublePropertyState.doubleProperty(name, value.getDouble()); case PropertyType.BOOLEAN: return BooleanPropertyState.booleanProperty(name, value.getBoolean()); case PropertyType.DECIMAL: return DecimalPropertyState.decimalProperty(name, value.getDecimal()); default: return new GenericPropertyState(name, getString(value, type), Type.fromTag(type, false)); } }