class ImmutableFeatures implements Features {

    @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);
    }

    private  ImmutableFeatures(final Map<String, Feature> features);

}