/**
 *  Generated with Tigerstripe(tm) Tigerstripe Workbench Feature 2.2.0.v20070419-1556-GFEkmUll2-0111E.
 *
 *  Tigerstripe(tm) is a registered trademark of Tigerstripe, Inc.
 *
 *  Plugin  : Sun Microsystems Inc./SunJavaSpecificationPlugin(1.0) (1.0)
 *
 *  DO NOT EDIT THIS CODE WAS AUTOMATICALLY GENERATED
 *
 *  Generated from source Tigerstipe Artifact :
 *        javax.oss.cbe.service.Service
 *
 *  Using template :
 *        templates/1.3/valueInterface.vm
 *
 * Copyright 2002-2007 The Members of the OSS through Java(TM) Initiative.
 * All rights reserved. Use is subject to license terms.
 */
package javax.oss.cbe.service;

import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import javax.xml.bind.annotation.XmlType;

import ossj.common.cbe.service.ServiceValueAdapter;

@XmlType
@XmlJavaTypeAdapter(value=ServiceValueAdapter.class)

/**
 *  Public interface definition for ServiceValue.
 *
 * A Common Business Entity interface defining a Service.
 * Extends from javax.oss.service.ServiceValue
 *
 */
public interface ServiceValue 
	extends javax.oss.cbe.EntityValue {

    /** VALUE_TYPE attribute name definition. */
    public static final String VALUE_TYPE = "javax.oss.cbe.service.ServiceValue";
    
    /** attribute name definition for serviceKey.*/
    public static final String SERVICE_KEY = "serviceKey";


    /** attribute name definition for mandatory. */
    public static final String MANDATORY = "mandatory";
    /** attribute name definition for startMode. */
    public static final String START_MODE = "startMode";
    /** attribute name definition for state. */
    public static final String STATE = "state";
    /** attribute name definition for subscriberId. */
    public static final String SUBSCRIBER_ID = "subscriberId";

    /**
     * Deep copy of this object.
     *
     * @return The cloned object
     */
    public Object clone();


    /**
     *
     * Attribute getter for mandatory.
     *
     *
     * Sets a boolean indicating whether or not the service is mandatory.
     * A mandatory service is a service that must be must be running when the
     * managed environment is in a non-failed state. A non-mandatory service
     * is not required to run.
     * This parameter is optional and may be unpopulated.
     *
     * @return the value of the mandatory field.
     * @throws java.lang.IllegalStateException - if the attribute is not populated.
     * @throws javax.oss.OssUnsupportedAttributeException - if the attribute is not supported.
     *
     */
    public boolean isMandatory( )
        throws  
        java.lang.IllegalStateException,
        javax.oss.OssUnsupportedAttributeException;


    /**
     * Attribute setter for mandatory.
     *
     *
     * Sets a boolean indicating whether or not the service is mandatory.
     * A mandatory service is a service that must be must be running when the
     * managed environment is in a non-failed state. A non-mandatory service
     * is not required to run.
     * This parameter is optional and may be unpopulated.
     * @param value - the value to use to set the mandatory attribute.
     * @throws java.lang.IllegalArgumentException
     *         Thrown to report that a bad argument was provided to the method.
     * @throws javax.oss.OssUnsupportedAttributeException - if the attribute is not supported.
     *
     */
    public void setMandatory(boolean value)
        throws
        javax.oss.OssUnsupportedAttributeException,
        java.lang.IllegalArgumentException;

    /**
     *
     * Attribute getter for startMode.
     *
     *
     * Set the start mode that indicates how this service is started.
     * This parameter is optional and may be unpopulated.
     *
     * @return the value of the startMode field.
     * @see javax.oss.cbe.service.StartMode
     * @throws java.lang.IllegalStateException - if the attribute is not populated.
     * @throws javax.oss.OssUnsupportedAttributeException - if the attribute is not supported.
     *
     */
    public int getStartMode( )
        throws  
        java.lang.IllegalStateException,
        javax.oss.OssUnsupportedAttributeException;


    /**
     * Attribute setter for startMode.
     *
     *
     * Set the start mode that indicates how this service is started.
     * This parameter is optional and may be unpopulated.
     * @param value - int as given by one of the <CODE>StartMode</CODE> interface constant
     * @see javax.oss.cbe.service.StartMode
     * @throws java.lang.IllegalArgumentException
     *         Thrown to report that a bad argument was provided to the method.
     * @throws javax.oss.OssUnsupportedAttributeException - if the attribute is not supported.
     *
     */
    public void setStartMode(int value)
        throws
        javax.oss.OssUnsupportedAttributeException,
        java.lang.IllegalArgumentException;

    /**
     *
     * Attribute getter for state.
     *
     *
     * Change the state with the given String
     *
     * @return the value of the state field.
     * @see javax.oss.cbe.service.ServiceState
     * @throws java.lang.IllegalStateException - if the attribute is not populated.
     *
     */
    public java.lang.String getState( )
        throws 
        java.lang.IllegalStateException;


    /**
     * Attribute setter for state.
     *
     *
     * Change the state with the given String
     * @param value - java.lang.String as given by one of the <CODE>ServiceState</CODE> interface constant
     * @see javax.oss.cbe.service.ServiceState
     * @throws java.lang.IllegalArgumentException
     *         Thrown to report that a bad argument was provided to the method.
     *
     */
    public void setState(java.lang.String value)
        throws
        java.lang.IllegalArgumentException;

    /**
     *
     * Attribute getter for subscriberId.
     *
     *
     * Change the subscriber ID
     *
     * @return the value of the subscriberId field.
     * @throws java.lang.IllegalStateException - if the attribute is not populated.
     *
     */
    public java.lang.String getSubscriberId( )
        throws 
        java.lang.IllegalStateException;


    /**
     * Attribute setter for subscriberId.
     *
     *
     * Change the subscriber ID
     * @param value - the value to use to set the subscriberId attribute.
     * @throws java.lang.IllegalArgumentException
     *         Thrown to report that a bad argument was provided to the method.
     *
     */
    public void setSubscriberId(java.lang.String value)
        throws
        java.lang.IllegalArgumentException;


    /**
     * Gets the key for this value object.
     *
     * @return the key for this value object
     * @throws java.lang.IllegalStateException if no key was populated in this
     *    value object.
     */
    public javax.oss.cbe.service.ServiceKey getServiceKey()
        throws 
        java.lang.IllegalStateException;

    /**
     * Sets the key for this value object.
     *
     * @param key - the key to set on this value object.
     * @throws java.lang.IllegalArgumentException if the key is not a valid
     *    key for this value object.
     */
    public void setServiceKey(javax.oss.cbe.service.ServiceKey key)
        throws 
        java.lang.IllegalArgumentException;

    /**
     * Factory method for ServiceKey.
     *
     * @return a new instance of a blank ServiceKey
     */
    public javax.oss.cbe.service.ServiceKey makeServiceKey();


}