Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java @ 2095:8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
flys-artifacts/trunk@3642 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 10 Jan 2012 11:50:01 +0000 |
parents | ebc2aa64c1be |
children | 85d31c2620e5 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java Tue Jan 10 11:44:46 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java Tue Jan 10 11:50:01 2012 +0000 @@ -262,7 +262,7 @@ State state = getState(context, stateId); if (state != null) { - state.initialize(artifact, context, callMeta); + state.initialize(artifact, this, context, callMeta); } } } @@ -620,6 +620,21 @@ } + public List<Facet> getFacets() { + List<Facet> all = new ArrayList<Facet>(); + + Set<Map.Entry<String, List<Facet>>> entries = facets.entrySet(); + for (Map.Entry<String, List<Facet>> entry: entries) { + List<Facet> fs = entry.getValue(); + for (Facet f: fs) { + all.add(f); + } + } + + return all; + } + + /** * Get facet as stored internally, with equalling name and index than given * facet. @@ -772,18 +787,29 @@ * @return filtered Outputlist. */ protected List<Output> filterOutputs(List<Output> outs) { - if (filterFacets == null || filterFacets.isEmpty()) { logger.debug("No filter for Outputs."); return outs; } + logger.debug("Filter Facets with " + filterFacets.size() + " filters."); + List<Output> filtered = new ArrayList<Output>(); for (Output out: outs) { + String outName = out.getName(); - List<Facet> fFacets = filterFacets.get(out.getName()); + logger.debug(" filter Facets for Output: " + outName); + + List<Facet> fFacets = filterFacets.get(outName); if (fFacets != null) { + logger.debug("" + fFacets.size() + " filters for: " + outName); + + if (logger.isDebugEnabled()) { + for (Facet tmp: fFacets) { + logger.debug(" filter = '" + tmp.getName() + "'"); + } + } List<Facet> resultFacets = new ArrayList<Facet>(); @@ -797,6 +823,8 @@ } } + logger.debug("Facets after filtering = " + resultFacets.size()); + if (!resultFacets.isEmpty()) { DefaultOutput nout = new DefaultOutput( out.getName(), @@ -808,6 +836,8 @@ } } + logger.debug("All Facets after filtering = " + filtered.size()); + return filtered; } @@ -819,6 +849,8 @@ * @return list of outputs */ public List<Output> getOutputs(Object context) { + logger.debug("##### Get Outputs for: " + identifier() + " #####"); + List<String> stateIds = getPreviousStateIds(); List<Output> generated = new ArrayList<Output>(); @@ -857,20 +889,28 @@ * @return list of output(s) for given state. */ protected List<Output> getOutputForState(DefaultState state) { + logger.debug("Find Outputs for State: " + state.getID()); + List<Output> list = state.getOutputs(); if (list == null || list.size() == 0) { logger.debug("-> No output modes for this state."); return new ArrayList<Output>(); } - List<Facet> fs = facets.get(state.getID()); + String stateId = state.getID(); + + List<Facet> fs = facets.get(stateId); if (fs == null || fs.size() == 0) { logger.debug("No facets found."); return new ArrayList<Output>(); } - return generateOutputs(list, fs); + List<Output> gen = generateOutputs(list, fs); + + logger.debug("State '" + stateId + "' has " + gen.size() + " outs"); + + return gen; } @@ -1077,11 +1117,54 @@ logger.debug("CURRENT STATE: " + getCurrentStateId()); + debugFacets(); + dumpFilterFacets(); + logger.debug("++++++++++++++ END ARTIFACT DUMP +++++++++++++++++"); } } + protected void debugFacets() { + logger.debug("######### FACETS #########"); + Set<Map.Entry<String, List<Facet>>> entries = facets.entrySet(); + + for (Map.Entry<String, List<Facet>> entry: entries) { + String out = entry.getKey(); + List<Facet> fs = entry.getValue(); + for (Facet f: fs) { + logger.debug(" # " + out + " : " + f.getName()); + } + } + + logger.debug("######## FACETS END ########"); + } + + + protected void dumpFilterFacets() { + logger.debug("######## FILTER FACETS ########"); + + if (filterFacets == null || filterFacets.isEmpty()) { + logger.debug("No Filter Facets defined."); + return; + } + + Set<Map.Entry<String, List<Facet>>> entries = filterFacets.entrySet(); + for (Map.Entry<String, List<Facet>> entry: entries) { + String out = entry.getKey(); + List<Facet> filters = entry.getValue(); + + logger.debug("There are " + filters.size() + " filters for: " +out); + + for (Facet filter: filters) { + logger.debug(" filter: " + filter.getName()); + } + } + + logger.debug("######## FILTER FACETS END ########"); + } + + protected void destroyState(String id, Object context) { State s = getState(context, id); s.endOfLife(this, context);