ingo@63: package de.intevation.flys.client.shared.model;
ingo@63:
ingo@270: import java.util.ArrayList;
ingo@270: import java.util.List;
ingo@270:
ingo@796: import de.intevation.flys.client.client.ui.CollectionView;
ingo@796: import de.intevation.flys.client.client.ui.OutputTab;
ingo@796:
ingo@63:
ingo@63: /**
ingo@63: * The default implementation of an Output.
ingo@63: *
ingo@63: * @author Ingo Weinzierl
ingo@63: */
ingo@63: public class DefaultOutputMode implements OutputMode {
ingo@63:
ingo@63: /** The name of this mode.*/
ingo@63: protected String name;
ingo@63:
ingo@63: /** The description of this mode.*/
ingo@63: protected String description;
ingo@63:
ingo@63: /** The mime-type of this mode.*/
ingo@63: protected String mimeType;
ingo@63:
ingo@796: /** The type that this output mode represents.*/
ingo@796: protected String type;
ingo@796:
ingo@270: /** The list of available facets of this export mode.*/
ingo@270: protected List facets;
ingo@270:
ingo@63:
ingo@63: /** A convinience constructor.*/
ingo@63: public DefaultOutputMode() {
ingo@270: facets = new ArrayList();
ingo@63: }
ingo@63:
ingo@63:
ingo@63: /**
ingo@63: * The default constructor.
ingo@63: *
ingo@63: * @param name The name of this mode.
ingo@63: * @param description The description of this mode.
ingo@63: * @param mimeType The mime-type of this mode.
ingo@63: */
ingo@63: public DefaultOutputMode(String name, String description, String mimeType) {
ingo@63: this.name = name;
ingo@63: this.description = description;
ingo@63: this.mimeType = mimeType;
ingo@63: }
ingo@63:
ingo@63:
ingo@270: public DefaultOutputMode(
ingo@796: String name,
ingo@796: String description,
ingo@796: String mimeType,
ingo@796: String type)
ingo@796: {
ingo@796: this(name, description, mimeType);
ingo@796:
ingo@796: this.type = type;
ingo@796: }
ingo@796:
ingo@796:
ingo@796: public DefaultOutputMode(
ingo@270: String name,
ingo@270: String description,
ingo@270: String mimeType,
ingo@270: List facets)
ingo@270: {
ingo@270: this(name, description, mimeType);
ingo@796: this.type = "";
ingo@270: this.facets = facets;
ingo@270: }
ingo@270:
ingo@270:
ingo@63: public String getName() {
ingo@63: return name;
ingo@63: }
ingo@63:
ingo@63:
ingo@63: public String getDescription() {
ingo@63: return description;
ingo@63: }
ingo@63:
ingo@63:
ingo@63: public String getMimeType() {
ingo@63: return mimeType;
ingo@63: }
ingo@270:
ingo@270:
ingo@796: public String getType() {
ingo@796: return type;
ingo@796: }
ingo@796:
ingo@796:
ingo@270: /**
ingo@270: * Adds a new facet to this export.
ingo@270: *
ingo@270: * @param facet The new facet.
ingo@270: */
ingo@270: public void addFacet(Facet facet) {
ingo@270: facets.add(facet);
ingo@270: }
ingo@270:
ingo@270:
ingo@270: /**
ingo@270: * Returns the number of facets supported by this export.
ingo@270: *
ingo@270: * @return the number of facets.
ingo@270: */
ingo@270: public int getFacetCount() {
ingo@270: return facets.size();
ingo@270: }
ingo@270:
ingo@270:
ingo@270: /**
ingo@270: * Returns the facet at a given position.
ingo@270: *
ingo@270: * @param idx The position of a facet.
ingo@270: *
ingo@270: * @return a facet.
ingo@270: */
ingo@270: public Facet getFacet(int idx) {
ingo@270: if (idx < getFacetCount()) {
ingo@270: return facets.get(idx);
ingo@270: }
ingo@270:
ingo@270: return null;
ingo@270: }
ingo@270:
ingo@270:
ingo@270: public Facet getFacet(String name) {
ingo@270: for (Facet facet: facets) {
ingo@270: if (name.equals(facet.getName())) {
ingo@270: return facet;
ingo@270: }
ingo@270: }
ingo@270:
ingo@270: return null;
ingo@270: }
ingo@275:
ingo@275:
ingo@275: public List getFacets() {
ingo@275: return facets;
ingo@275: }
ingo@796:
ingo@796:
ingo@796: public OutputTab createOutputTab(String t, Collection c, CollectionView p) {
ingo@796: return null;
ingo@796: }
ingo@63: }
ingo@63: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :