# HG changeset patch # User Ingo Weinzierl # Date 1308214625 0 # Node ID 3481cd37e6091f6ea33a10c564fe6ad503f0ea07 # Parent f8ac04b2dbd091f5b324cf6c1c5de48c332754c4 Use enums to dispatch computeFeed() and computeAdvance(). flys-artifacts/branches/facets-slt@2130 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r f8ac04b2dbd0 -r 3481cd37e609 flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java Thu Jun 16 08:43:58 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java Thu Jun 16 08:57:05 2011 +0000 @@ -46,6 +46,7 @@ import de.intevation.flys.artifacts.cache.CacheFactory; import de.intevation.flys.artifacts.model.ComputeCallback; +import de.intevation.flys.artifacts.model.ComputeCallback.ComputeType; import de.intevation.flys.artifacts.model.DischargeTables; import de.intevation.flys.artifacts.model.RiverFactory; import de.intevation.flys.artifacts.model.Segment; @@ -196,7 +197,7 @@ try { saveData(target, XPATH_FEED_INPUT, context); - compute(context); + compute(context, ComputeType.FEED); return describe(target, context); } @@ -261,7 +262,7 @@ setCurrentStateId(targetState); - compute(context); + compute(context, ComputeType.ADVANCE); return describe(target, context); } @@ -1051,8 +1052,8 @@ * * @param context The CallContext. */ - public Object compute(CallContext context) { - return compute(context, hash()); + public Object compute(CallContext context, ComputeType type) { + return compute(context, hash(), type); } @@ -1067,7 +1068,7 @@ * * @return the computed data. */ - public Object compute(CallContext context, String hash) { + public Object compute(CallContext context, String hash, ComputeType type) { String calc = (String) getData(CalculationSelect.FIELD_MODE).getValue(); DefaultState current = (DefaultState) getCurrentState(context); @@ -1079,15 +1080,25 @@ return null; } - return compute(hash, callback); + return compute(hash, callback, type); } - public Object compute(String key, ComputeCallback callback) { + public Object compute( + String key, + ComputeCallback callback, + ComputeType type) + { Cache cache = CacheFactory.getCache(COMPUTING_CACHE); if (cache == null) { - return callback.compute(facets); + switch (type) { + case FEED: + return callback.computeFeed(facets); + + case ADVANCE: + return callback.computeAdvance(facets); + } } net.sf.ehcache.Element element = cache.get(key); @@ -1096,7 +1107,15 @@ return element.getValue(); } - Object result = callback.compute(facets); + Object result = null; + switch (type) { + case FEED: + result = callback.computeFeed(facets); + break; + + case ADVANCE: + result = callback.computeAdvance(facets); + } if (result != null) { cache.put(new net.sf.ehcache.Element(key, result)); diff -r f8ac04b2dbd0 -r 3481cd37e609 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/ComputeCallback.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/ComputeCallback.java Thu Jun 16 08:43:58 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/ComputeCallback.java Thu Jun 16 08:57:05 2011 +0000 @@ -7,7 +7,9 @@ public interface ComputeCallback { - Object compute(List facets); + public enum ComputeType { + FEED, ADVANCE + } Object computeAdvance(List facets); diff -r f8ac04b2dbd0 -r 3481cd37e609 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/ComputeCallbackAdapter.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/ComputeCallbackAdapter.java Thu Jun 16 08:43:58 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/ComputeCallbackAdapter.java Thu Jun 16 08:57:05 2011 +0000 @@ -8,18 +8,6 @@ public class ComputeCallbackAdapter implements ComputeCallback { @Override - public Object compute(List facets) { - Object obj = computeAdvance(facets); - - if (obj == null) { - obj = computeFeed(facets); - } - - return obj; - } - - - @Override public Object computeAdvance(List facets) { return null; }