/** * Returns the identifier of the {@code Feature} whose properties were modified. * * @return the identifier. */ public String getFeatureId() { return feature.getId(); }
/** * Returns the identifier of the {@code Feature} whose properties were modified. * * @return the identifier. */ public String getFeatureId() { return feature.getId(); }
@Override public FeaturesBuilder setAll(final Iterable<Feature> features) { checkNotNull(features, "features to be set"); features.forEach(f -> this.features.put(f.getId(), f)); return this; }
@Override public FeaturesBuilder set(final Feature feature) { checkNotNull(feature, "feature to be set"); features.put(feature.getId(), feature); return this; }
@Override public FeaturesBuilder remove(final Feature feature) { checkNotNull(feature, "feature to be removed"); features.remove(feature.getId()); return this; }
@Override public JsonPointer getResourcePath() { final String path = "/features/" + featureCreated.getId(); return JsonPointer.of(path); }
@Override public FeaturesBuilder setAll(final Iterable<Feature> features) { checkNotNull(features, "features to be set"); features.forEach(f -> this.features.put(f.getId(), f)); return this; }
@Override public FeaturesBuilder set(final Feature feature) { checkNotNull(feature, "feature to be set"); features.put(feature.getId(), feature); return this; }
private static List<Document> createPushes(final Feature feature) { final List<Document> result = feature.getProperties() .map(featureProperties -> createFlatFeaturesRepresentation(featureProperties, feature.getId())) .orElseGet(ArrayList::new); result.add(createDefaultFeatureDoc(feature.getId())); return result; }
private static List<Document> createPushes(final Feature feature) { final List<Document> result = feature.getProperties() .map(featureProperties -> createFlatFeaturesRepresentation(featureProperties, feature.getId())) .orElseGet(ArrayList::new); result.add(createDefaultFeatureDoc(feature.getId())); return result; }
private Features createNewFeaturesWithNewFeature(final Feature newFeature) { final Map<String, Feature> featuresCopy = copyFeatures(); featuresCopy.put(newFeature.getId(), newFeature); return new ImmutableFeatures(featuresCopy); }
private Features createNewFeaturesWithNewFeature(final Feature newFeature) { final Map<String, Feature> featuresCopy = copyFeatures(); featuresCopy.put(newFeature.getId(), newFeature); return new ImmutableFeatures(featuresCopy); }
@Override public Features setFeature(final Feature feature) { checkNotNull(feature, "Feature to be set"); final Feature existingFeature = getFeatureOrNull(feature.getId()); if (!Objects.equals(existingFeature, feature)) { return createNewFeaturesWithNewFeature(feature); } return this; }
@Override public Features setFeature(final Feature feature) { checkNotNull(feature, "Feature to be set"); final Feature existingFeature = getFeatureOrNull(feature.getId()); if (!Objects.equals(existingFeature, feature)) { return createNewFeaturesWithNewFeature(feature); } return this; }
private Result getFeatureProperties(final Feature feature, final String thingId, final RetrieveFeatureProperties command, @Nullable final Thing thing) { final String featureId = feature.getId(); final DittoHeaders dittoHeaders = command.getDittoHeaders(); return feature.getProperties() .map(featureProperties -> RetrieveFeaturePropertiesResponse.of(thingId, featureId, featureProperties, dittoHeaders)) .map(response -> ResultFactory.newQueryResult(command, thing, response, this)) .orElseGet(() -> ResultFactory.newErrorResult( ExceptionFactory.featurePropertiesNotFound(thingId, featureId, dittoHeaders))); }
private Result getFeatureDefinition(final Feature feature, final String thingId, final RetrieveFeatureDefinition command, @Nullable final Thing thing) { final String featureId = feature.getId(); final DittoHeaders dittoHeaders = command.getDittoHeaders(); return feature.getDefinition() .map(featureDefinition -> RetrieveFeatureDefinitionResponse.of(thingId, featureId, featureDefinition, dittoHeaders)) .map(response -> ResultFactory.newQueryResult(command, thing, response, this)) .orElseGet(() -> ResultFactory.newErrorResult( ExceptionFactory.featureDefinitionNotFound(thingId, featureId, dittoHeaders))); }
private static Collection<ResourcePermissions> createEntriesForFeature(final Feature feature, final Enforcer policyEnforcer) { final Collection<ResourcePermissions> result = new HashSet<>(); result.add(FeatureResourcePermissions.getInstance(feature, policyEnforcer)); final FeatureProperties featureProperties = feature.getProperties().orElseGet( ThingsModelFactory::emptyFeatureProperties); featureProperties.forEach(featureProperty -> result.addAll( createEntriesForFeatureProperty(feature.getId(), JsonFactory.newPointer(featureProperty.getKey()), featureProperty.getValue(), policyEnforcer))); return result; }
@Override protected void appendPayload(final JsonObjectBuilder jsonObjectBuilder, final JsonSchemaVersion schemaVersion, final Predicate<JsonField> thePredicate) { final Predicate<JsonField> predicate = schemaVersion.and(thePredicate); jsonObjectBuilder.set(ThingModifyCommandResponse.JsonFields.JSON_THING_ID, thingId, predicate); jsonObjectBuilder.set(JSON_FEATURE_ID, featureCreated.getId()); jsonObjectBuilder.set(JSON_FEATURE, featureCreated.toJson(schemaVersion, thePredicate), predicate); }
@Override protected void appendPayload(final JsonObjectBuilder jsonObjectBuilder, final JsonSchemaVersion schemaVersion, final Predicate<JsonField> thePredicate) { final Predicate<JsonField> predicate = schemaVersion.and(thePredicate); jsonObjectBuilder.set(ThingModifyCommandResponse.JsonFields.JSON_THING_ID, thingId, predicate); jsonObjectBuilder.set(JSON_FEATURE_ID, featureCreated.getId()); jsonObjectBuilder.set(JSON_FEATURE, featureCreated.toJson(schemaVersion, thePredicate), predicate); }
private Result getDeleteFeatureDefinitionResult(final Feature feature, final Context context, final long nextRevision, final DeleteFeatureDefinition command) { final DittoHeaders dittoHeaders = command.getDittoHeaders(); final String thingId = context.getThingId(); final String featureId = feature.getId(); return feature.getDefinition() .map(featureDefinition -> ResultFactory.newMutationResult(command, FeatureDefinitionDeleted.of(thingId, featureId, nextRevision, getEventTimestamp(), dittoHeaders), DeleteFeatureDefinitionResponse.of(thingId, featureId, dittoHeaders), this)) .orElseGet(() -> ResultFactory.newErrorResult( ExceptionFactory.featureDefinitionNotFound(thingId, featureId, dittoHeaders))); }