/** * Create a multi valued {@code PropertyState} from a list of paths. * No validation is performed on the strings passed for {@code values}. * @param name The name of the property state * @param values The values of the property state * @return The new property state of type {@link Type#PATHS} */ public static PropertyState pathProperty(String name, Iterable<String> values) { return new MultiGenericPropertyState(name, values, PATHS); }
case PropertyType.DATE: return type.isArray() ? MultiGenericPropertyState.dateProperty(name, (Iterable<String>) value) : GenericPropertyState.dateProperty(name, (String) value); case PropertyType.BOOLEAN: case PropertyType.NAME: return type.isArray() ? MultiGenericPropertyState.nameProperty(name, (Iterable<String>) value) : GenericPropertyState.nameProperty(name, (String) value); case PropertyType.PATH: return type.isArray() ? MultiGenericPropertyState.pathProperty(name, (Iterable<String>) value) : GenericPropertyState.pathProperty(name, (String) value); case PropertyType.REFERENCE: return type.isArray() ? MultiGenericPropertyState.referenceProperty(name, (Iterable<String>) value) : GenericPropertyState.referenceProperty(name, (String) value); case PropertyType.WEAKREFERENCE: return type.isArray() ? MultiGenericPropertyState.weakreferenceProperty(name, (Iterable<String>) value) : GenericPropertyState.weakreferenceProperty(name, (String) value); case PropertyType.URI: return type.isArray() ? MultiGenericPropertyState.uriProperty(name, (Iterable<String>) value) : GenericPropertyState.uriProperty(name, (String) value); case PropertyType.DECIMAL:
if (multi) { if (weak) { p = MultiGenericPropertyState.weakreferenceProperty( prop.getName(), ids); } else { p = MultiGenericPropertyState.referenceProperty( prop.getName(), ids);
@NotNull public static PropertyValue newName(@NotNull Iterable<String> value) { return new PropertyStateValue(MultiGenericPropertyState.nameProperty("", value)); }
@Test public void testAssignFromDates() { String date1 = "1970-01-01T00:00:00.000Z"; String date2 = "1971-01-01T00:00:00.000Z"; PropertyState source = MultiGenericPropertyState.dateProperty("foo", Arrays.asList(date1, date2)); PropertyBuilder builder = PropertyBuilder.scalar(Type.DATE); builder.assignFrom(source); assertEquals(source, builder.getPropertyState()); }
case PropertyType.DATE: return type.isArray() ? MultiGenericPropertyState.dateProperty(name, (Iterable<String>) value) : GenericPropertyState.dateProperty(name, (String) value); case PropertyType.BOOLEAN: case PropertyType.NAME: return type.isArray() ? MultiGenericPropertyState.nameProperty(name, (Iterable<String>) value) : GenericPropertyState.nameProperty(name, (String) value); case PropertyType.PATH: return type.isArray() ? MultiGenericPropertyState.pathProperty(name, (Iterable<String>) value) : GenericPropertyState.pathProperty(name, (String) value); case PropertyType.REFERENCE: return type.isArray() ? MultiGenericPropertyState.referenceProperty(name, (Iterable<String>) value) : GenericPropertyState.referenceProperty(name, (String) value); case PropertyType.WEAKREFERENCE: return type.isArray() ? MultiGenericPropertyState.weakreferenceProperty(name, (Iterable<String>) value) : GenericPropertyState.weakreferenceProperty(name, (String) value); case PropertyType.URI: return type.isArray() ? MultiGenericPropertyState.uriProperty(name, (Iterable<String>) value) : GenericPropertyState.uriProperty(name, (String) value); case PropertyType.DECIMAL:
if (multi) { if (weak) { p = MultiGenericPropertyState.weakreferenceProperty( prop.getName(), ids); } else { p = MultiGenericPropertyState.referenceProperty( prop.getName(), ids);
@Nonnull public static PropertyValue newName(@Nonnull Iterable<String> value) { return new PropertyStateValue(MultiGenericPropertyState.nameProperty("", value)); }
@Test public void testDateProperty() { PropertyBuilder builder = PropertyBuilder.array(Type.DATE); String date1 = "1970-01-01T00:00:00.000Z"; String date2 = "1971-01-01T00:00:00.000Z"; builder.setName("foo") .addValue(date1) .addValue(date2); Assert.assertEquals(MultiGenericPropertyState.dateProperty("foo", Arrays.asList(date1, date2)), builder.getPropertyState()); builder.setScalar(); try { builder.getPropertyState(); } catch (IllegalStateException expected) { } builder.removeValue(date1); Assert.assertEquals(GenericPropertyState.dateProperty("foo", date2), builder.getPropertyState()); }
if (multi) { if (weak) { p = MultiGenericPropertyState.weakreferenceProperty( prop.getName(), ids); } else { p = MultiGenericPropertyState.referenceProperty( prop.getName(), ids);
static void addMixin(NodeBuilder builder, String name) { if (builder.hasProperty(JCR_MIXINTYPES)) { final Set<String> mixins = newHashSet(builder.getProperty(JCR_MIXINTYPES).getValue(Type.NAMES)); if (mixins.add(name)) { builder.setProperty(nameProperty(JCR_MIXINTYPES, mixins)); } } else { builder.setProperty(nameProperty(JCR_MIXINTYPES, of(name))); } }
/** * Create a multi valued {@code PropertyState} from a list of references. * No validation is performed on the strings passed for {@code values}. * @param name The name of the property state * @param values The values of the property state * @return The new property state of type {@link Type#REFERENCES} */ public static PropertyState referenceProperty(String name, Iterable<String> values) { return new MultiGenericPropertyState(name, values, REFERENCES); }
static void addMixin(NodeBuilder builder, String name) { if (builder.hasProperty(JCR_MIXINTYPES)) { final Set<String> mixins = newHashSet(builder.getProperty(JCR_MIXINTYPES).getValue(Type.NAMES)); if (mixins.add(name)) { builder.setProperty(nameProperty(JCR_MIXINTYPES, mixins)); } } else { builder.setProperty(nameProperty(JCR_MIXINTYPES, of(name))); } }
/** * Create a multi valued {@code PropertyState} from a list of references. * No validation is performed on the strings passed for {@code values}. * @param name The name of the property state * @param values The values of the property state * @return The new property state of type {@link Type#REFERENCES} */ public static PropertyState referenceProperty(String name, Iterable<String> values) { return new MultiGenericPropertyState(name, values, REFERENCES); }
private static boolean updateFrozenMixins(NodeBuilder builder) { if (builder.hasProperty(JCR_FROZENMIXINTYPES)) { final Set<String> mixins = newHashSet(builder.getProperty(JCR_FROZENMIXINTYPES).getValue(NAMES)); if (mixins.remove(MIX_SIMPLE_VERSIONABLE)) { mixins.add(MIX_VERSIONABLE); builder.setProperty(nameProperty(JCR_FROZENMIXINTYPES, mixins)); return true; } } return false; }
/** * Create a multi valued {@code PropertyState} from a list of URIs. * No validation is performed on the strings passed for {@code values}. * @param name The name of the property state * @param values The values of the property state * @return The new property state of type {@link Type#URIS} */ public static PropertyState uriProperty(String name, Iterable<String> values) { return new MultiGenericPropertyState(name, values, URIS); }
private static boolean updateFrozenMixins(NodeBuilder builder) { if (builder.hasProperty(JCR_FROZENMIXINTYPES)) { final Set<String> mixins = newHashSet(builder.getProperty(JCR_FROZENMIXINTYPES).getValue(NAMES)); if (mixins.remove(MIX_SIMPLE_VERSIONABLE)) { mixins.add(MIX_VERSIONABLE); builder.setProperty(nameProperty(JCR_FROZENMIXINTYPES, mixins)); return true; } } return false; }
/** * Create a multi valued {@code PropertyState} from a list of dates. * * @param name The name of the property state * @param values The values of the property state * @return The new property state of type {@link Type#DATES} */ public static PropertyState dateProperty(String name, Iterable<String> values) { return new MultiGenericPropertyState(name, values, DATES); }
private static void removeMixin(NodeBuilder builder, String name) { if (builder.hasProperty(JCR_MIXINTYPES)) { final Set<String> mixins = newHashSet(builder.getProperty(JCR_MIXINTYPES).getValue(Type.NAMES)); if (mixins.remove(name)) { if (mixins.isEmpty()) { builder.removeProperty(JCR_MIXINTYPES); } else { builder.setProperty(nameProperty(JCR_MIXINTYPES, mixins)); } } } }
/** * Create a multi valued {@code PropertyState} from a list of names. * No validation is performed on the strings passed for {@code values}. * @param name The name of the property state * @param values The values of the property state * @return The new property state of type {@link Type#NAMES} */ public static PropertyState nameProperty(String name, Iterable<String> values) { return new MultiGenericPropertyState(name, values, NAMES); }