@Override public Features setProperty(final String featureId, final JsonPointer propertyPath, final JsonValue propertyValue) { Feature feature = getFeatureOrNull(featureId); if (null != feature) { feature = feature.setProperty(propertyPath, propertyValue); } else { feature = ThingsModelFactory.newFeature(featureId, ThingsModelFactory.newFeaturePropertiesBuilder() .set(propertyPath, propertyValue) .build()); } return setFeature(feature); }
@Override public Thing setFeature(final Feature feature) { final Features newFeatures; if (null == features || features.isNull()) { newFeatures = ThingsModelFactory.newFeaturesBuilder() .set(feature) .build(); } else { newFeatures = features.setFeature(feature); } return setFeatures(newFeatures); }
@Override public Thing setAttribute(final JsonPointer attributePath, final JsonValue attributeValue) { final Attributes newAttributes; if (null == attributes || attributes.isNull()) { newAttributes = ThingsModelFactory.newAttributesBuilder() .set(attributePath, attributeValue) .build(); } else { newAttributes = attributes.setValue(attributePath, attributeValue); } return setAttributes(newAttributes); }
@Override public Thing setAclEntry(final AclEntry aclEntry) { final AccessControlList newAcl; if (null == acl || acl.isEmpty()) { newAcl = ThingsModelFactory.newAcl(aclEntry); } else { newAcl = acl.setEntry(aclEntry); } return setAccessControlList(newAcl); }
/** * Returns a new builder for an immutable {@link FeatureDefinition} which is initialised with the values of the * given JSON array. * * @param jsonArray provides the initial values of the result. * @return the builder. * @throws NullPointerException if {@code jsonArray} is {@code null}. * @throws FeatureDefinitionIdentifierInvalidException if any Identifier of the array is invalid. */ public static FeatureDefinitionBuilder newFeatureDefinitionBuilder(final JsonArray jsonArray) { return ImmutableFeatureDefinition.Builder.getInstance().addAll(newFeatureDefinition(jsonArray)); }
@Override public Thing setFeatureProperties(final String featureId, final FeatureProperties properties) { if (null == features || features.isNull()) { return setFeature(ThingsModelFactory.newFeature(featureId, properties)); } return setFeatures(features.setProperties(featureId, properties)); }
@Override public Thing setFeatureDefinition(final String featureId, final FeatureDefinition definition) { if (null == features || features.isNull()) { return setFeature(ThingsModelFactory.newFeature(featureId, definition, null)); } return setFeatures(features.setDefinition(featureId, definition)); }
@Override public FromScratch setPermissions(final AuthorizationSubject authorizationSubject, final Permissions permissions) { final AclEntry aclEntry = ThingsModelFactory.newAclEntry(authorizationSubject, permissions); return setPermissions(aclEntry); }
@Override public FeatureProperties setValue(final CharSequence key, final double value) { return ThingsModelFactory.newFeaturePropertiesBuilder() .set(key, value) .build(); }
@Override public FromScratch removeFeature(final String featureId) { invokeOnFeaturesBuilder(fb -> fb.remove(featureId)); final Features fs = getFeatures(); if (null == fs || fs.isEmpty()) { featuresBuilder = null; } return this; }
@Override public FeatureProperties setAll(final Iterable<JsonField> jsonFields) { return ThingsModelFactory.newFeaturePropertiesBuilder() .setAll(jsonFields) .build(); }
@Override public Thing removeAttribute(final JsonPointer attributePath) { if (null == attributes || attributes.isEmpty() || attributes.isNull()) { return this; } return setAttributes(attributes.remove(attributePath)); }
@Override public FromScratch setFeature(final Feature feature) { invokeOnFeaturesBuilder(fb -> fb.set(feature)); return this; }
@Override public FromCopy setFeatureProperties(final Predicate<Features> existingFeaturesPredicate, final String featureId, final FeatureProperties featureProperties) { if (testFeaturesPredicate(existingFeaturesPredicate)) { fromScratchBuilder.setFeatureProperties(featureId, featureProperties); } return this; }
@Override public Thing setAclEntry(final AclEntry aclEntry) { final AccessControlList newAcl; if (null == acl || acl.isEmpty()) { newAcl = ThingsModelFactory.newAcl(aclEntry); } else { newAcl = acl.setEntry(aclEntry); } return setAccessControlList(newAcl); }
@Override public Features setProperty(final String featureId, final JsonPointer propertyPath, final JsonValue propertyValue) { Feature feature = getFeatureOrNull(featureId); if (null != feature) { feature = feature.setProperty(propertyPath, propertyValue); } else { feature = ThingsModelFactory.newFeature(featureId, ThingsModelFactory.newFeaturePropertiesBuilder() .set(propertyPath, propertyValue) .build()); } return setFeature(feature); }
@Override public Thing setFeature(final Feature feature) { final Features newFeatures; if (null == features || features.isNull()) { newFeatures = ThingsModelFactory.newFeaturesBuilder() .set(feature) .build(); } else { newFeatures = features.setFeature(feature); } return setFeatures(newFeatures); }
@Override public Thing setAttribute(final JsonPointer attributePath, final JsonValue attributeValue) { final Attributes newAttributes; if (null == attributes || attributes.isNull()) { newAttributes = ThingsModelFactory.newAttributesBuilder() .set(attributePath, attributeValue) .build(); } else { newAttributes = attributes.setValue(attributePath, attributeValue); } return setAttributes(newAttributes); }
@Override public Thing setFeatureProperties(final String featureId, final FeatureProperties properties) { if (null == features || features.isNull()) { return setFeature(ThingsModelFactory.newFeature(featureId, properties)); } return setFeatures(features.setProperties(featureId, properties)); }
@Override public FromScratch removeFeature(final String featureId) { invokeOnFeaturesBuilder(fb -> fb.remove(featureId)); final Features fs = getFeatures(); if (null == fs || fs.isEmpty()) { featuresBuilder = null; } return this; }