view artifact-database/src/main/java/de/intevation/artifactdatabase/state/FacetActivity.java @ 403:bd76529d612b

FacetActivity: Added interface and registry to decide if a facet should initially active or not. artifacts/trunk@5150 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sun, 29 Jul 2012 09:37:55 +0000
parents
children 4c78c5d2b367
line wrap: on
line source
package de.intevation.artifactdatabase.state;

import de.intevation.artifacts.Artifact;

import java.util.HashMap;
import java.util.Map;

public interface FacetActivity
{
    public static final FacetActivity ACTIVE = new FacetActivity() {
        @Override
        public boolean isInitialActive(
            Artifact artifact,
            Facet    facet,
            String   output
        ) {
            return true;
        }
    };

    public static final FacetActivity INACTIVE = new FacetActivity() {
        @Override
        public boolean isInitialActive(
            Artifact artifact,
            Facet    facet,
            String   output
        ) {
            return false;
        }
    };

    boolean isInitialActive(Artifact artifact, Facet facet, String output);

    public static final class Registry {

        private static final Registry INSTANCE = new Registry();

        private Map<String, FacetActivity> activities;

        private Registry() {
            activities = new HashMap<String, FacetActivity>();
        }

        public Registry getInstance() {
            return INSTANCE;
        }

        public synchronized FacetActivity getActivity(String key) {
            FacetActivity activity = activities.get(key);
            return activity != null ? activity : ACTIVE;
        }

        public synchronized void register(String key, FacetActivity activity) {
            activities.put(key, activity);
        }
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org