/** * {@inheritDoc} * * @see org.modeshape.graph.GraphMerger.PropertyMerger#mergeProperty(Batch, Path, Property, Property) */ public void mergeProperty( Batch batch, Path path, Property actual, Property desired ) { // the actual property already exists ... Iterator<?> actualValues = actual.getValues(); Iterator<?> desiredValues = desired.getValues(); boolean performSet = false; while (actualValues.hasNext() && desiredValues.hasNext()) { Object actualValue = actualValues.next(); Object desiredValue = desiredValues.next(); if (ValueComparators.OBJECT_COMPARATOR.compare(actualValue, desiredValue) != 0) { performSet = true; break; } } if (!performSet && (actualValues.hasNext() || desiredValues.hasNext())) { performSet = true; } if (performSet) { batch.set(desired).on(path); } } }
private String getPropertyString( Property property ) { // Surround property value in double quotes so final property looks like: // color = "blue" (single valued property) // colors = ["blue", "red", "green"] (multi-valued property) StringBuilder sb = new StringBuilder(); sb.append(getContext().getValueFactories().getStringFactory().create(property.getName())); sb.append(" = "); if (property.isEmpty()) { sb.append("null"); } else if (property.isSingle()) { String valueStr = getContext().getValueFactories().getStringFactory().create(property.getValues().next()); sb.append('\"').append(valueStr).append('\"'); } else { sb.append('['); boolean first = true; for (Object value : property.getValuesAsArray()) { if (first) first = false; else sb.append(","); String valueStr = getContext().getValueFactories().getStringFactory().create(value); sb.append('\"').append(valueStr).append('\"'); } if (property.isMultiple()) sb.append(']'); } return sb.toString(); } }
String classname = stringFactory.create(classnameProperty.getValues().next()); String[] classpath = classpathProperty == null ? new String[] {} : stringFactory.create(classpathProperty.getValuesAsArray()); ClassLoader classLoader = context.getClassLoader(classpath);
for (Iterator<?> iter = property.getValues(); iter.hasNext();) { Object value = iter.next(); PropertyType type = PropertyType.discoverType(value);
Object value1 = property1.getValues().next(); Object value2 = property2.getValues().next(); if (removeDuplicates && ValueComparators.OBJECT_COMPARATOR.compare(value1, value2) == 0) return property1; return factory.create(property1.getName(), new Object[] {value1, value2}); Iterator<?> valueIterator = new DualIterator(property1.getValues(), property2.getValues()); return factory.create(property1.getName(), valueIterator);
for (Iterator<?> iter = property.getValues(); iter.hasNext();) { Object value = iter.next(); PropertyType type = PropertyType.discoverType(value);
private void verifyProperty( StreamSequencerContext context, String name, Object... values ) { Property prop = context.getInputProperty(context.getValueFactories().getNameFactory().create(name)); assertThat(prop, notNullValue()); assertThat(prop.getName(), is(context.getValueFactories().getNameFactory().create(name))); assertThat(prop.isEmpty(), is(false)); assertThat(prop.size(), is(values.length)); assertThat(prop.isMultiple(), is(values.length > 1)); assertThat(prop.isSingle(), is(values.length == 1)); Iterator<?> iter = prop.getValues(); for (Object val : values) { assertThat(iter.hasNext(), is(true)); assertThat(iter.next(), is(val)); } }
for (Property property : request.properties()) { if (property.getName().equals(ModeShapeLexicon.UUID) || property.getName().equals(JcrLexicon.UUID)) { uuid = getExecutionContext().getValueFactories().getUuidFactory().create(property.getValues().next());
for (Property property : request.properties()) { if (property.getName().equals(ModeShapeLexicon.UUID) || property.getName().equals(JcrLexicon.UUID)) { uuid = getExecutionContext().getValueFactories().getUuidFactory().create(property.getValues().next()); } else { if (property.size() > 0) propsToStore.add(property);