comparison gnv-artifacts/src/main/java/de/intevation/gnv/state/StateBase.java @ 470:b7bb66440cc8

Added mechanism for advancing to previous states. gnv-artifacts/trunk@533 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 12 Jan 2010 15:25:32 +0000
parents 70df44021a9f
children a6a33ef35809
comparison
equal deleted inserted replaced
469:62fc63d0f71d 470:b7bb66440cc8
112 /** 112 /**
113 * @see de.intevation.gnv.state.State#getRequiredInputValues() 113 * @see de.intevation.gnv.state.State#getRequiredInputValues()
114 */ 114 */
115 public Collection<InputValue> getRequiredInputValues() { 115 public Collection<InputValue> getRequiredInputValues() {
116 return this.inputValues.values(); 116 return this.inputValues.values();
117 }
118
119
120 public void reset(String uuid) {
121
122 // clear input values of the current state
123 Iterator iter = inputValueNames.iterator();
124 while (iter.hasNext()) {
125 String name = (String) iter.next();
126 inputValues.remove(name);
127 }
128
129 // remove data of last state from cache
130 List describeData = getDescibeData(uuid);
131 if (describeData != null && describeData.size() != 0) {
132 describeData.remove(describeData.size()-1);
133 }
117 } 134 }
118 135
119 /** 136 /**
120 * @see de.intevation.gnv.state.State#setup(org.w3c.dom.Node) 137 * @see de.intevation.gnv.state.State#setup(org.w3c.dom.Node)
121 */ 138 */
342 } 359 }
343 } 360 }
344 } 361 }
345 } 362 }
346 return null; 363 return null;
347
348 } 364 }
349 365
350 /** 366 /**
351 * @see de.intevation.gnv.state.State#advance(java.lang.String, 367 * @see de.intevation.gnv.state.State#advance(java.lang.String,
352 * de.intevation.artifacts.CallMeta) 368 * de.intevation.artifacts.CallMeta)
458 /** 474 /**
459 * @param result 475 * @param result
460 */ 476 */
461 protected void purifyResult(Collection<Result> result, String uuid) { 477 protected void purifyResult(Collection<Result> result, String uuid) {
462 log.debug("StateBase.purifyResult"); 478 log.debug("StateBase.purifyResult");
463 Collection<Object> describeData = this.getDescibeData(uuid); 479 List<Object> describeData = this.getDescibeData(uuid);
464 if (describeData == null) { 480 if (describeData == null) {
465 describeData = new ArrayList<Object>(); 481 describeData = new ArrayList<Object>();
466 } 482 }
467 NamedCollection<KeyValueDescibeData> keyValueDescibeData = extractKVP(result, "KEY", "VALUE"); 483 NamedCollection<KeyValueDescibeData> keyValueDescibeData = extractKVP(result, "KEY", "VALUE");
468 describeData.add(keyValueDescibeData); 484 describeData.add(keyValueDescibeData);
516 * org.w3c.dom.Node, de.intevation.artifacts.CallMeta, 532 * org.w3c.dom.Node, de.intevation.artifacts.CallMeta,
517 * java.lang.String) 533 * java.lang.String)
518 */ 534 */
519 public void describe(Document document, Node rootNode, CallMeta callMeta,String uuid) { 535 public void describe(Document document, Node rootNode, CallMeta callMeta,String uuid) {
520 log.debug("StateBase.describe"); 536 log.debug("StateBase.describe");
521 Collection<Object> descibeData = this.getDescibeData(uuid); 537
538 List<Object> descibeData = this.getDescibeData(uuid);
522 if (descibeData != null) { 539 if (descibeData != null) {
523 Iterator<Object> it = descibeData.iterator(); 540 Iterator<Object> it = descibeData.iterator();
524 541
525 XMLUtils.ElementCreator creator = new XMLUtils.ElementCreator( 542 XMLUtils.ElementCreator creator = new XMLUtils.ElementCreator(
526 document, 543 document,
796 } 813 }
797 814
798 /** 815 /**
799 * @see de.intevation.gnv.state.State#getDescibeData() 816 * @see de.intevation.gnv.state.State#getDescibeData()
800 */ 817 */
801 protected Collection<Object> getDescibeData(String uuid) { 818 protected List<Object> getDescibeData(String uuid) {
802 if (CacheFactory.getInstance().isInitialized()) { 819 if (CacheFactory.getInstance().isInitialized()) {
803 String key = uuid + DESCRIBEDATAKEY; 820 String key = uuid + DESCRIBEDATAKEY;
804 log.debug("Hash for Queryelements: " + key); 821 log.debug("Hash for Queryelements: " + key);
805 net.sf.ehcache.Element value = CacheFactory.getInstance().getCache().get(key); 822 net.sf.ehcache.Element value = CacheFactory.getInstance().getCache().get(key);
806 if (value != null) { 823 if (value != null) {
807 return (Collection<Object>) (value.getObjectValue()); 824 return (List<Object>) (value.getObjectValue());
808 } 825 }
809 } 826 }
810 return null; 827 return null;
811 } 828 }
812 829
813 /** 830 /**
814 * @see de.intevation.gnv.state.State#getDescibeData() 831 * @see de.intevation.gnv.state.State#getDescibeData()
815 */ 832 */
816 protected void setDescibeData(String uuid, Collection<Object> describeData) { 833 protected void setDescibeData(String uuid, List<Object> describeData) {
817 834
818 if (CacheFactory.getInstance().isInitialized()) { 835 if (CacheFactory.getInstance().isInitialized()) {
819 String key = uuid + DESCRIBEDATAKEY; 836 String key = uuid + DESCRIBEDATAKEY;
820 log.debug("Hash for Queryelements: " + key); 837 log.debug("Hash for Queryelements: " + key);
821 CacheFactory.getInstance().getCache().put(new net.sf.ehcache.Element(key, describeData)); 838 CacheFactory.getInstance().getCache().put(new net.sf.ehcache.Element(key, describeData));

http://dive4elements.wald.intevation.org