/** * Create a {@code PropertyState} from a double. * @param name The name of the property state * @param value The value of the property state * @return The new property state of type {@link Type#DOUBLE} */ public static PropertyState doubleProperty( @NotNull String name, double value) { return new DoublePropertyState(name, value); }
@Nonnull public static PropertyValue newDouble(@Nonnull Double value) { return new PropertyStateValue(DoublePropertyState.doubleProperty("", value)); }
@NotNull public static PropertyValue newDouble(@NotNull Double value) { return new PropertyStateValue(DoublePropertyState.doubleProperty("", value)); }
/** * Create a {@code PropertyState} from a double. * @param name The name of the property state * @param value The value of the property state * @return The new property state of type {@link Type#DOUBLE} */ public static PropertyState doubleProperty( @Nonnull String name, double value) { return new DoublePropertyState(name, value); }
@Override public Value createValue(double value) { return newValue(DoublePropertyState.doubleProperty("", value), namePathMapper); }
return new LongPropertyState(name, Long.parseLong(number)); } catch (NumberFormatException e) { return new DoublePropertyState(name, Double.parseDouble(number));
@NotNull public Value createValue(double value) { return newValue(DoublePropertyState.doubleProperty("", value), namePathMapper, getBlobAccessProvider()); }
return new LongPropertyState(name, Long.parseLong(number)); } catch (NumberFormatException e) { return new DoublePropertyState(name, Double.parseDouble(number));
return LongPropertyState.createLongProperty(name, (long) (Integer) value); } else if (value instanceof Double) { return DoublePropertyState.doubleProperty(name, (Double) value); } else if (value instanceof Calendar) { return GenericPropertyState.dateProperty(name, ISO8601.format((Calendar) value));
return new LongPropertyState(name, Long.parseLong(number)); } catch (NumberFormatException e) { return new DoublePropertyState(name, Double.parseDouble(number));
return LongPropertyState.createLongProperty(name, (long) (Integer) value); } else if (value instanceof Double) { return DoublePropertyState.doubleProperty(name, (Double) value); } else if (value instanceof Calendar) { return GenericPropertyState.dateProperty(name, ISO8601.format((Calendar) value));
return new LongPropertyState(name, Long.parseLong(number)); } catch (NumberFormatException e) { return new DoublePropertyState(name, Double.parseDouble(number));
return LongPropertyState.createLongProperty(name, (Long) value); case PropertyType.DOUBLE: return DoublePropertyState.doubleProperty(name, (Double) value); case PropertyType.BOOLEAN: return BooleanPropertyState.booleanProperty(name, (Boolean) value);
return LongPropertyState.createLongProperty(name, (Long) value); case PropertyType.DOUBLE: return DoublePropertyState.doubleProperty(name, (Double) value); case PropertyType.BOOLEAN: return BooleanPropertyState.booleanProperty(name, (Boolean) value);
/** * 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)); } }
/** * Create a {@code PropertyState} from a string. * @param name The name of the property state * @param value The value of the property state * @param type The type of the property state * @return The new property state */ @NotNull public static PropertyState createProperty(String name, String value, int type) { switch (type) { case PropertyType.STRING: return StringPropertyState.stringProperty(name, value); case PropertyType.BINARY: return BinaryPropertyState.binaryProperty(name, Conversions.convert(value).toBinary()); case PropertyType.LONG: return LongPropertyState.createLongProperty(name, Conversions.convert(value).toLong()); case PropertyType.DOUBLE: return DoublePropertyState.doubleProperty(name, Conversions.convert(value).toDouble()); case PropertyType.BOOLEAN: return BooleanPropertyState.booleanProperty(name, Conversions.convert(value).toBoolean()); case PropertyType.DECIMAL: return DecimalPropertyState.decimalProperty(name, Conversions.convert(value).toDecimal()); default: return new GenericPropertyState(name, value, Type.fromTag(type, false)); } }
/** * Create a {@code PropertyState} from a string. * @param name The name of the property state * @param value The value of the property state * @param type The type of the property state * @return The new property state */ @Nonnull public static PropertyState createProperty(String name, String value, int type) { switch (type) { case PropertyType.STRING: return StringPropertyState.stringProperty(name, value); case PropertyType.BINARY: return BinaryPropertyState.binaryProperty(name, Conversions.convert(value).toBinary()); case PropertyType.LONG: return LongPropertyState.createLongProperty(name, Conversions.convert(value).toLong()); case PropertyType.DOUBLE: return DoublePropertyState.doubleProperty(name, Conversions.convert(value).toDouble()); case PropertyType.BOOLEAN: return BooleanPropertyState.booleanProperty(name, Conversions.convert(value).toBoolean()); case PropertyType.DECIMAL: return DecimalPropertyState.decimalProperty(name, Conversions.convert(value).toDecimal()); default: return new GenericPropertyState(name, value, Type.fromTag(type, false)); } }
@Test public void testPropertyChanges() { JsopDiff diff; PropertyState before = StringPropertyState.stringProperty("foo", "bar"); diff = new JsopDiff(); diff.propertyAdded(before); assertEquals("^\"/foo\":\"bar\"", diff.toString()); diff = new JsopDiff(); diff.propertyChanged(before, LongPropertyState.createLongProperty("foo", 123L)); assertEquals("^\"/foo\":123", diff.toString()); diff = new JsopDiff(); diff.propertyChanged(before, DoublePropertyState.doubleProperty("foo", 1.23)); assertEquals("^\"/foo\":1.23", diff.toString()); diff = new JsopDiff(); diff.propertyChanged(before, BooleanPropertyState.booleanProperty("foo", true)); assertEquals("^\"/foo\":true", diff.toString()); diff = new JsopDiff(); diff.propertyDeleted(before); assertEquals("^\"/foo\":null", diff.toString()); }
return type.isArray() ? MultiDoublePropertyState.doubleProperty(name, (Iterable<Double>) value) : DoublePropertyState.doubleProperty(name, (Double) value); case PropertyType.DATE: return type.isArray()