ingo@209: package de.intevation.artifactdatabase.state;
ingo@209:
ingo@251: import java.util.ArrayList;
ingo@226: import java.util.List;
ingo@226:
ingo@209: /**
ingo@209: * The default implementation of an Output.
ingo@209: *
ingo@209: * @author Ingo Weinzierl
ingo@209: */
ingo@209: public class DefaultOutput implements Output {
ingo@209:
ingo@209: protected String name;
ingo@209:
ingo@209: protected String description;
ingo@209:
ingo@209: protected String mimeType;
ingo@209:
ingo@290: protected String type;
ingo@290:
ingo@226: protected List facets;
ingo@226:
ingo@358: protected Settings settings;
ingo@358:
ingo@209:
ingo@209: /**
ingo@209: * The default constructor that instantiates a new DefaultOutput object.
ingo@209: *
ingo@209: * @param name The name of this output.
ingo@209: * @param description The description of this output.
ingo@209: * @param mimeType The mimetype of this output.
ingo@209: */
ingo@209: public DefaultOutput(String name, String description, String mimeType) {
ingo@209: this.name = name;
ingo@209: this.description = description;
ingo@209: this.mimeType = mimeType;
ingo@290: this.type = "";
ingo@251: this.facets = new ArrayList();
ingo@209: }
ingo@209:
ingo@209:
ingo@290: public DefaultOutput(
ingo@290: String name,
ingo@290: String description,
ingo@290: String mimeType,
ingo@290: String type)
ingo@290: {
ingo@290: this(name, description, mimeType);
ingo@290:
ingo@290: this.facets = new ArrayList();
ingo@290: this.type = type;
ingo@290: }
ingo@290:
ingo@290:
ingo@290: public DefaultOutput(
ingo@290: String name,
ingo@290: String description,
ingo@290: String mimeType,
ingo@290: List facets)
ingo@290: {
ingo@290: this(name, description, mimeType);
ingo@290:
ingo@290: this.type = "";
ingo@290: this.facets = facets;
ingo@290: }
ingo@290:
ingo@290:
ingo@209: /**
ingo@226: * This constructor builds a new Output object that contains facets as well.
ingo@226: *
ingo@226: * @param name The name of this output.
ingo@226: * @param description The description of this output.
ingo@226: * @param mimeType The mimetype of this output.
ingo@226: * @param facets The list of facets supported by this output.
bjoern@448: * @param type The type of the Output e.g. chart
ingo@226: */
ingo@226: public DefaultOutput(
ingo@226: String name,
ingo@226: String description,
ingo@226: String mimeType,
ingo@290: List facets,
ingo@290: String type)
ingo@226: {
ingo@290: this(name, description, mimeType, facets);
ingo@226:
ingo@290: this.type = type;
ingo@226: }
ingo@226:
ingo@226:
ingo@226: /**
ingo@209: * Returns the name of this output.
ingo@209: *
ingo@209: * @return the name of this output.
ingo@209: */
ingo@209: public String getName() {
ingo@209: return name;
ingo@209: }
ingo@209:
ingo@209:
ingo@209: /**
ingo@209: * Returns the description of this output.
ingo@209: *
ingo@209: * @return the description of this output.
ingo@209: */
ingo@209: public String getDescription() {
ingo@209: return description;
ingo@209: }
ingo@209:
ingo@209:
ingo@209: /**
ingo@209: * Returns the mimetype of this output.
ingo@209: *
ingo@209: * @return the mimetype of this output.
ingo@209: */
ingo@209: public String getMimeType() {
ingo@209: return mimeType;
ingo@209: }
ingo@226:
ingo@226:
ingo@290: public String getType() {
ingo@290: return type;
ingo@290: }
ingo@290:
ingo@290:
ingo@226: /**
ingo@226: * Returns the list of facets supported by this output.
ingo@226: *
ingo@226: * @return the list of facets supported by this output.
ingo@226: */
ingo@226: public List getFacets() {
ingo@226: return facets;
ingo@226: }
ingo@251:
ingo@251:
ingo@251: public void addFacet(Facet facet) {
ingo@379: if (facet != null && !facets.contains(facet)) {
ingo@379: facets.add(facet);
ingo@379: }
ingo@251: }
ingo@296:
ingo@296:
ingo@296: public void addFacets(List facets) {
ingo@296: this.facets.addAll(facets);
ingo@296: }
ingo@358:
ingo@358:
ingo@358: @Override
ingo@361: public void setFacets(List facets) {
ingo@361: this.facets = facets;
ingo@361: }
ingo@361:
ingo@361:
ingo@361: @Override
ingo@358: public void setSettings(Settings settings) {
ingo@358: this.settings = settings;
ingo@358: }
ingo@358:
ingo@358:
ingo@358: @Override
ingo@358: public Settings getSettings() {
ingo@358: return settings;
ingo@358: }
ingo@209: }
ingo@209: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :