sascha@403: package de.intevation.artifactdatabase.state; sascha@403: sascha@403: import de.intevation.artifacts.Artifact; sascha@403: sascha@403: import java.util.HashMap; sascha@403: import java.util.Map; sascha@403: sascha@403: public interface FacetActivity sascha@403: { sascha@403: public static final FacetActivity ACTIVE = new FacetActivity() { sascha@403: @Override sascha@403: public boolean isInitialActive( sascha@403: Artifact artifact, sascha@403: Facet facet, sascha@403: String output sascha@403: ) { sascha@403: return true; sascha@403: } sascha@403: }; sascha@403: sascha@403: public static final FacetActivity INACTIVE = new FacetActivity() { sascha@403: @Override sascha@403: public boolean isInitialActive( sascha@403: Artifact artifact, sascha@403: Facet facet, sascha@403: String output sascha@403: ) { sascha@403: return false; sascha@403: } sascha@403: }; sascha@403: sascha@403: boolean isInitialActive(Artifact artifact, Facet facet, String output); sascha@403: sascha@403: public static final class Registry { sascha@403: sascha@403: private static final Registry INSTANCE = new Registry(); sascha@403: sascha@403: private Map activities; sascha@403: sascha@403: private Registry() { sascha@403: activities = new HashMap(); sascha@403: } sascha@403: sascha@404: public static Registry getInstance() { sascha@403: return INSTANCE; sascha@403: } sascha@403: sascha@403: public synchronized FacetActivity getActivity(String key) { sascha@403: FacetActivity activity = activities.get(key); sascha@403: return activity != null ? activity : ACTIVE; sascha@403: } sascha@403: sascha@403: public synchronized void register(String key, FacetActivity activity) { sascha@403: activities.put(key, activity); sascha@403: } sascha@403: } sascha@403: } sascha@403: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :