/*
 * This class was automatically generated with 
 * <a href="http://www.castor.org">Castor 0.9.4.3</a>, using an XML
 * Schema.
 * $Id$
 */

package nz.co.cks.tms.xml;

  //---------------------------------/
 //- Imported classes and packages -/
//---------------------------------/

import java.io.Reader;
import java.io.Serializable;
import java.io.Writer;
import java.util.Date;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;
import org.exolab.castor.xml.ValidationException;

/**
 * Class ReportBillingType.
 * 
 * @version $Revision$ $Date$
 */
public abstract class ReportBillingType implements java.io.Serializable {


      //--------------------------/
     //- Class/Member Variables -/
    //--------------------------/

    /**
     * Field _ncbId
     */
    private int _ncbId;

    /**
     * keeps track of state for field: _ncbId
     */
    private boolean _has_ncbId;

    /**
     * Field _loginName
     */
    private java.lang.String _loginName;

    /**
     * Field _customerOnchargeRef
     */
    private java.lang.String _customerOnchargeRef;

    /**
     * Field _serviceCode
     */
    private java.lang.String _serviceCode;

    /**
     * Field _invoiceDate
     */
    private org.exolab.castor.types.Date _invoiceDate;

    /**
     * Field _startDateTime
     */
    private java.util.Date _startDateTime;

    /**
     * Field _endDateTime
     */
    private java.util.Date _endDateTime;


      //----------------/
     //- Constructors -/
    //----------------/

    public ReportBillingType() {
        super();
    } //-- nz.co.cks.tms.xml.ReportBillingType()


      //-----------/
     //- Methods -/
    //-----------/

    /**
     * Method deleteNcbId
     */
    public void deleteNcbId()
    {
        this._has_ncbId= false;
    } //-- void deleteNcbId() 

    /**
     * Method getCustomerOnchargeRefReturns the value of field
     * 'customerOnchargeRef'.
     * 
     * @return the value of field 'customerOnchargeRef'.
     */
    public java.lang.String getCustomerOnchargeRef()
    {
        return this._customerOnchargeRef;
    } //-- java.lang.String getCustomerOnchargeRef() 

    /**
     * Method getEndDateTimeReturns the value of field
     * 'endDateTime'.
     * 
     * @return the value of field 'endDateTime'.
     */
    public java.util.Date getEndDateTime()
    {
        return this._endDateTime;
    } //-- java.util.Date getEndDateTime() 

    /**
     * Method getInvoiceDateReturns the value of field
     * 'invoiceDate'.
     * 
     * @return the value of field 'invoiceDate'.
     */
    public org.exolab.castor.types.Date getInvoiceDate()
    {
        return this._invoiceDate;
    } //-- org.exolab.castor.types.Date getInvoiceDate() 

    /**
     * Method getLoginNameReturns the value of field 'loginName'.
     * 
     * @return the value of field 'loginName'.
     */
    public java.lang.String getLoginName()
    {
        return this._loginName;
    } //-- java.lang.String getLoginName() 

    /**
     * Method getNcbIdReturns the value of field 'ncbId'.
     * 
     * @return the value of field 'ncbId'.
     */
    public int getNcbId()
    {
        return this._ncbId;
    } //-- int getNcbId() 

    /**
     * Method getServiceCodeReturns the value of field
     * 'serviceCode'.
     * 
     * @return the value of field 'serviceCode'.
     */
    public java.lang.String getServiceCode()
    {
        return this._serviceCode;
    } //-- java.lang.String getServiceCode() 

    /**
     * Method getStartDateTimeReturns the value of field
     * 'startDateTime'.
     * 
     * @return the value of field 'startDateTime'.
     */
    public java.util.Date getStartDateTime()
    {
        return this._startDateTime;
    } //-- java.util.Date getStartDateTime() 

    /**
     * Method hasNcbId
     */
    public boolean hasNcbId()
    {
        return this._has_ncbId;
    } //-- boolean hasNcbId() 

    /**
     * Method isValid
     */
    public boolean isValid()
    {
        try {
            validate();
        }
        catch (org.exolab.castor.xml.ValidationException vex) {
            return false;
        }
        return true;
    } //-- boolean isValid() 

    /**
     * Method setCustomerOnchargeRefSets the value of field
     * 'customerOnchargeRef'.
     * 
     * @param customerOnchargeRef the value of field
     * 'customerOnchargeRef'.
     */
    public void setCustomerOnchargeRef(java.lang.String customerOnchargeRef)
    {
        this._customerOnchargeRef = customerOnchargeRef;
    } //-- void setCustomerOnchargeRef(java.lang.String) 

    /**
     * Method setEndDateTimeSets the value of field 'endDateTime'.
     * 
     * @param endDateTime the value of field 'endDateTime'.
     */
    public void setEndDateTime(java.util.Date endDateTime)
    {
        this._endDateTime = endDateTime;
    } //-- void setEndDateTime(java.util.Date) 

    /**
     * Method setInvoiceDateSets the value of field 'invoiceDate'.
     * 
     * @param invoiceDate the value of field 'invoiceDate'.
     */
    public void setInvoiceDate(org.exolab.castor.types.Date invoiceDate)
    {
        this._invoiceDate = invoiceDate;
    } //-- void setInvoiceDate(org.exolab.castor.types.Date) 

    /**
     * Method setLoginNameSets the value of field 'loginName'.
     * 
     * @param loginName the value of field 'loginName'.
     */
    public void setLoginName(java.lang.String loginName)
    {
        this._loginName = loginName;
    } //-- void setLoginName(java.lang.String) 

    /**
     * Method setNcbIdSets the value of field 'ncbId'.
     * 
     * @param ncbId the value of field 'ncbId'.
     */
    public void setNcbId(int ncbId)
    {
        this._ncbId = ncbId;
        this._has_ncbId = true;
    } //-- void setNcbId(int) 

    /**
     * Method setServiceCodeSets the value of field 'serviceCode'.
     * 
     * @param serviceCode the value of field 'serviceCode'.
     */
    public void setServiceCode(java.lang.String serviceCode)
    {
        this._serviceCode = serviceCode;
    } //-- void setServiceCode(java.lang.String) 

    /**
     * Method setStartDateTimeSets the value of field
     * 'startDateTime'.
     * 
     * @param startDateTime the value of field 'startDateTime'.
     */
    public void setStartDateTime(java.util.Date startDateTime)
    {
        this._startDateTime = startDateTime;
    } //-- void setStartDateTime(java.util.Date) 

    /**
     * Method validate
     */
    public void validate()
        throws org.exolab.castor.xml.ValidationException
    {
        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
        validator.validate(this);
    } //-- void validate() 

}
