
com.mageddo.featureswitch.repository.InMemoryFeatureRepository Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of feature-switch Show documentation
Show all versions of feature-switch Show documentation
Simplify Consumer And Producer Configuration
The newest version!
package com.mageddo.featureswitch.repository;
import com.mageddo.featureswitch.DefaultFeatureMetadata;
import com.mageddo.featureswitch.Feature;
import com.mageddo.featureswitch.FeatureMetadata;
import java.util.LinkedHashMap;
import java.util.Map;
public class InMemoryFeatureRepository implements FeatureRepository {
private final Map> featureMap = new LinkedHashMap<>();
private final Map> featureByUserMap = new LinkedHashMap<>();
@Override
public FeatureMetadata getMetadata(Feature feature, String user) {
if(user == null){
if(!featureMap.containsKey(feature.name())){
return null;
}
return new DefaultFeatureMetadata(feature, featureMap.get(feature.name()));
}
if(!featureByUserMap.containsKey(toKey(feature, user))){
return null;
}
return new DefaultFeatureMetadata(feature, featureByUserMap.get(toKey(feature, user)));
}
@Override
public int updateMetadata(FeatureMetadata featureMetadata, String user) {
if(user == null){
featureMap.put(featureMetadata.feature().name(), featureMetadata.parameters());
} else {
featureByUserMap.put(toKey(featureMetadata.feature(), user), featureMetadata.parameters());
}
return 1;
}
public String toKey(Feature feature, String user){
return feature.name() + user;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy