comparison 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
comparison
equal deleted inserted replaced
402:b4ed641f01db 403:bd76529d612b
1 package de.intevation.artifactdatabase.state;
2
3 import de.intevation.artifacts.Artifact;
4
5 import java.util.HashMap;
6 import java.util.Map;
7
8 public interface FacetActivity
9 {
10 public static final FacetActivity ACTIVE = new FacetActivity() {
11 @Override
12 public boolean isInitialActive(
13 Artifact artifact,
14 Facet facet,
15 String output
16 ) {
17 return true;
18 }
19 };
20
21 public static final FacetActivity INACTIVE = new FacetActivity() {
22 @Override
23 public boolean isInitialActive(
24 Artifact artifact,
25 Facet facet,
26 String output
27 ) {
28 return false;
29 }
30 };
31
32 boolean isInitialActive(Artifact artifact, Facet facet, String output);
33
34 public static final class Registry {
35
36 private static final Registry INSTANCE = new Registry();
37
38 private Map<String, FacetActivity> activities;
39
40 private Registry() {
41 activities = new HashMap<String, FacetActivity>();
42 }
43
44 public Registry getInstance() {
45 return INSTANCE;
46 }
47
48 public synchronized FacetActivity getActivity(String key) {
49 FacetActivity activity = activities.get(key);
50 return activity != null ? activity : ACTIVE;
51 }
52
53 public synchronized void register(String key, FacetActivity activity) {
54 activities.put(key, activity);
55 }
56 }
57 }
58 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org