rrenkert@7846: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde rrenkert@7846: * Software engineering by Intevation GmbH rrenkert@7846: * rrenkert@7846: * This file is Free Software under the GNU AGPL (>=v3) rrenkert@7846: * and comes with ABSOLUTELY NO WARRANTY! Check out the rrenkert@7846: * documentation coming with Dive4Elements River for details. rrenkert@7846: */ rrenkert@7846: rrenkert@7846: package org.dive4elements.river.artifacts.model.minfo; rrenkert@7846: rrenkert@7846: import org.apache.log4j.Logger; rrenkert@7846: rrenkert@7846: import org.dive4elements.artifactdatabase.state.Facet; rrenkert@7846: import org.dive4elements.artifactdatabase.state.StaticFacet; rrenkert@7846: import org.dive4elements.artifacts.Artifact; rrenkert@7846: import org.dive4elements.artifacts.CallContext; rrenkert@7846: import org.dive4elements.artifacts.CallMeta; rrenkert@7846: import org.dive4elements.artifacts.common.utils.XMLUtils; rrenkert@7846: import org.dive4elements.river.artifacts.D4EArtifact; rrenkert@7846: import org.dive4elements.river.artifacts.model.DataFacet; rrenkert@7846: import org.dive4elements.river.artifacts.model.FacetTypes; rrenkert@7846: import org.dive4elements.river.artifacts.resources.Resources; rrenkert@7846: import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; rrenkert@7846: import org.w3c.dom.Document; rrenkert@7846: rrenkert@7846: rrenkert@7846: public class PorosityFacet rrenkert@7846: extends DataFacet rrenkert@7846: implements FacetTypes, StaticFacet rrenkert@7846: { teichmann@8202: private static Logger log = Logger.getLogger(PorosityFacet.class); rrenkert@7846: rrenkert@7846: private static final String NAME = "porosity"; rrenkert@7846: rrenkert@7846: public PorosityFacet() { rrenkert@7846: } rrenkert@7846: rrenkert@7846: public PorosityFacet(String facetName, String description) { rrenkert@7846: super(facetName, description); rrenkert@7846: } rrenkert@7846: rrenkert@7846: public PorosityFacet(int idx, String name, String description, rrenkert@7846: ComputeType type, String stateId, String hash) { rrenkert@7846: super(idx, name, description, type, hash, stateId); rrenkert@7894: this.metaData.put("X", "chart.longitudinal.section.xaxis.label"); rrenkert@7894: this.metaData.put("Y", "chart.bedquality.yaxis.label.porosity"); rrenkert@7846: } rrenkert@7846: rrenkert@7846: public Object getData(Artifact artifact, CallContext context) { rrenkert@7846: rrenkert@7846: D4EArtifact flys = (D4EArtifact) artifact; rrenkert@7846: String porosity_id = flys.getDataAsString("porosity_id"); rrenkert@7846: rrenkert@7846: Porosity porosity = rrenkert@7846: PorosityFactory.getPorosity(Integer.valueOf(porosity_id)); rrenkert@7846: rrenkert@7987: return porosity.getAsArray(); rrenkert@7846: } rrenkert@7846: rrenkert@7846: /** Copy deeply. */ rrenkert@7846: @Override rrenkert@7846: public Facet deepCopy() { rrenkert@7846: PorosityFacet copy = new PorosityFacet(); rrenkert@7846: copy.set(this); rrenkert@7846: copy.type = type; rrenkert@7846: copy.hash = hash; rrenkert@7846: copy.stateId = stateId; rrenkert@7846: return copy; rrenkert@7846: } rrenkert@7846: rrenkert@7846: @Override rrenkert@7846: public void setup(Artifact artifact, Document data, CallMeta callMeta) { teichmann@8202: log.debug("setup"); rrenkert@7846: teichmann@8202: if (log.isDebugEnabled()) { teichmann@8202: log.debug(XMLUtils.toString(data)); rrenkert@7846: } rrenkert@7846: rrenkert@7846: String code = D4EArtifact.getDatacageIDValue(data); rrenkert@7846: rrenkert@7881: String[] split = code.split(";"); rrenkert@7881: String id = split[0]; rrenkert@7881: String desc = ""; rrenkert@7881: if (split.length >= 2) { rrenkert@7881: desc = split[1]; rrenkert@7881: } rrenkert@7881: rrenkert@7846: if (code != null) { rrenkert@7846: this.name = NAME; rrenkert@7846: this.description = Resources.getMsg( rrenkert@7846: callMeta, rrenkert@7846: "facet.porosity", rrenkert@7881: "Porosity", rrenkert@7881: new Object[] { desc }); rrenkert@7846: D4EArtifact d4e = (D4EArtifact) artifact; rrenkert@7881: d4e.addStringData("porosity_id", id); rrenkert@7846: } rrenkert@7846: } rrenkert@7846: }