ingo@2190: package de.intevation.flys.artifacts.states; ingo@2190: ingo@2190: import org.w3c.dom.Element; ingo@2190: ingo@2190: import de.intevation.artifacts.Artifact; ingo@2190: import de.intevation.artifacts.CallContext; ingo@2190: ingo@2190: import de.intevation.artifacts.common.ArtifactNamespaceContext; ingo@2190: import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator; ingo@2190: ingo@2190: import de.intevation.artifactdatabase.ProtocolUtils; ingo@2190: ingo@2190: import de.intevation.flys.artifacts.FLYSArtifact; ingo@2190: ingo@2190: ingo@2190: /** ingo@2190: * @author Ingo Weinzierl ingo@2190: */ ingo@2190: public abstract class MinMaxState extends DefaultState { ingo@2190: ingo@2190: @Override ingo@2190: protected void appendItems( ingo@2190: Artifact artifact, ingo@2190: ElementCreator creator, ingo@2190: String name, ingo@2190: CallContext context, ingo@2190: Element select ingo@2190: ) { ingo@2190: FLYSArtifact flys = (FLYSArtifact) artifact; ingo@2190: ingo@2190: select.setAttributeNS( ingo@2190: ArtifactNamespaceContext.NAMESPACE_URI, ingo@2190: "art:type", ingo@2190: getType()); ingo@2190: ingo@2190: Element min = ProtocolUtils.createArtNode( ingo@2190: creator, ingo@2190: "min", ingo@2190: new String[] { "value" }, ingo@2190: new String[] { String.valueOf(getLower(flys)) }); ingo@2190: ingo@2190: Element max = ProtocolUtils.createArtNode( ingo@2190: creator, ingo@2190: "max", ingo@2190: new String[] { "value" }, ingo@2190: new String[] { String.valueOf(getUpper(flys)) }); ingo@2190: ingo@2190: select.appendChild(min); ingo@2190: select.appendChild(max); ingo@2190: } ingo@2190: ingo@2190: ingo@2190: protected abstract Object getLower(FLYSArtifact flys); ingo@2190: ingo@2190: protected abstract Object getUpper(FLYSArtifact flys); ingo@2190: ingo@2190: protected abstract String getType(); ingo@2190: } ingo@2190: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :