comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/DataFacet.java @ 1061:b1b0a0b61845

Made facets cloneable with the right type. flys-artifacts/trunk@2533 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 23 Aug 2011 13:17:21 +0000
parents 3fd891d5228d
children b1ed0ec0236f
comparison
equal deleted inserted replaced
1060:2d60a875e28c 1061:b1b0a0b61845
2 2
3 import de.intevation.artifacts.Artifact; 3 import de.intevation.artifacts.Artifact;
4 import de.intevation.artifacts.CallContext; 4 import de.intevation.artifacts.CallContext;
5 5
6 import de.intevation.artifactdatabase.state.DefaultFacet; 6 import de.intevation.artifactdatabase.state.DefaultFacet;
7 import de.intevation.artifactdatabase.state.Facet;
7 8
8 import de.intevation.flys.artifacts.FLYSArtifact; 9 import de.intevation.flys.artifacts.FLYSArtifact;
9 10
10 import de.intevation.flys.artifacts.states.DefaultState.ComputeType; 11 import de.intevation.flys.artifacts.states.DefaultState.ComputeType;
11 12
13 extends DefaultFacet 14 extends DefaultFacet
14 { 15 {
15 protected ComputeType type; 16 protected ComputeType type;
16 protected String hash; 17 protected String hash;
17 protected String stateId; 18 protected String stateId;
19
20 public DataFacet() {
21 }
18 22
19 public DataFacet(String name, String description) { 23 public DataFacet(String name, String description) {
20 this(name, description, ComputeType.ADVANCE); 24 this(name, description, ComputeType.ADVANCE);
21 } 25 }
22 26
47 this.type = type; 51 this.type = type;
48 this.hash = hash; 52 this.hash = hash;
49 this.stateId = stateId; 53 this.stateId = stateId;
50 } 54 }
51 55
56 @Override
52 public Object getData(Artifact artifact, CallContext context) { 57 public Object getData(Artifact artifact, CallContext context) {
53 FLYSArtifact flys = (FLYSArtifact)artifact; 58 FLYSArtifact flys = (FLYSArtifact)artifact;
54 String theHash = hash != null ? hash : flys.hash(); 59 String theHash = hash != null ? hash : flys.hash();
55 60
56 return stateId != null && stateId.length() > 0 61 return stateId != null && stateId.length() > 0
57 ? flys.compute(context, stateId, theHash, type, false) 62 ? flys.compute(context, stateId, theHash, type, false)
58 : flys.compute(context, theHash, type, false); 63 : flys.compute(context, theHash, type, false);
59 } 64 }
65
66 @Override
67 public Facet deepCopy() {
68 DataFacet copy = new DataFacet();
69 copy.set(this);
70 copy.type = type;
71 copy.hash = hash;
72 copy.stateId = stateId;
73 return copy;
74 }
60 } 75 }
61 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : 76 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org