// MobyPrimaryData.java
//
// Created: November 2005
//
// This file is a component of the BioMoby project.
// Copyright Martin Senger (martin.senger@gmail.com).
//

package org.biomoby.shared;

/**
 * A container representing primary (both input and output) data as
 * they are registered by services. <p>
 *
 *<p>
 * @author <A HREF="mailto:martin.senger@gmail.com">Martin Senger</A>
 * @version $Id: MobyPrimaryData.java,v 1.3 2008/01/07 22:11:36 gordonp Exp $
 */

abstract public class MobyPrimaryData
    extends MobyData implements Cloneable {

    /**************************************************************************
     *
     *************************************************************************/
    public MobyPrimaryData() {
	super();
    }

    /**************************************************************************
     *
     *************************************************************************/
    public MobyPrimaryData (String name) {
	super (name);
    }

    /**************************************************************************
     * Returns always true.
     *************************************************************************/
    public boolean isPrimary() {
	return true;
    }

    /**************************************************************************
     * Must be overwritten by a subclass.
     *************************************************************************/
    abstract public MobyPrimaryData clone();
    abstract public MobyDataType getDataType();
    abstract public void setDataType (MobyDataType value);
    abstract public MobyNamespace[] getNamespaces();
    abstract public void setNamespaces (MobyNamespace[] value);
    abstract public void addNamespace (MobyNamespace value);
    abstract public void removeNamespace (String namespaceName);
    abstract public void removeNamespace (MobyNamespace value);

}
