comparison artifact-database/src/main/java/de/intevation/artifactdatabase/state/StateEngine.java @ 374:5420b96dd0b3

Added a method StateEngine.getStateData() that returns the StateData of a specific Artifact. artifacts/trunk@3827 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 30 Jan 2012 13:17:32 +0000
parents 16ab243507e0
children 708de1779232
comparison
equal deleted inserted replaced
373:6072f84608c2 374:5420b96dd0b3
4 import java.util.HashMap; 4 import java.util.HashMap;
5 import java.util.List; 5 import java.util.List;
6 import java.util.Map; 6 import java.util.Map;
7 7
8 import org.apache.log4j.Logger; 8 import org.apache.log4j.Logger;
9
10 import de.intevation.artifactdatabase.data.StateData;
11
9 12
10 /** 13 /**
11 * The StateEngine stores all states and associated information about 14 * The StateEngine stores all states and associated information about
12 * outputs and facets for each Artifact. 15 * outputs and facets for each Artifact.
13 * 16 *
59 * 62 *
60 * @return the state. 63 * @return the state.
61 */ 64 */
62 public State getState(String stateId) { 65 public State getState(String stateId) {
63 return allStates.get(stateId); 66 return allStates.get(stateId);
67 }
68
69
70 public StateData getStateData(String artifact, String dataName) {
71 List<State> artifactStates = getStates(artifact);
72
73 if (artifactStates == null || artifactStates.size() == 0) {
74 logger.warn("No States for Artifact '" + artifact + "' existing.");
75 return null;
76 }
77
78 for (State state: artifactStates) {
79 StateData sd = state.getData(dataName);
80
81 if (sd != null) {
82 return sd;
83 }
84 }
85
86 logger.warn(
87 "No StateData for Artifact '" + artifact +
88 "' with name '" + dataName + "' existing.");
89
90 return null;
64 } 91 }
65 92
66 93
67 /** 94 /**
68 * Add new states for a specific artifact. 95 * Add new states for a specific artifact.

http://dive4elements.wald.intevation.org