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

package com.queplix.core.modules.eqlext.jxb.gr;

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

import com.queplix.core.modules.eqlext.jxb.gr.types.AggregateSType;
import com.queplix.core.modules.eqlext.jxb.gr.types.OrderDirectionSType;
import java.io.IOException;
import java.io.Reader;
import java.io.Serializable;
import java.io.Writer;
import org.exolab.castor.xml.MarshalException;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;
import org.exolab.castor.xml.ValidationException;
import org.xml.sax.ContentHandler;

/**
 * Class ReqField.
 * 
 * @version $Revision$ $Date$
 */
public class ReqField extends com.queplix.core.utils.jxb.JXBObject 
implements java.io.Serializable
{


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

    /**
     * Entity name of field
     */
    private java.lang.String _entity;

    /**
     * The field name
     */
    private java.lang.String _name;

    /**
     * Sort by this field or not
     */
    private java.lang.Boolean _sort = new java.lang.Boolean("false");

    /**
     * Sort direction
     */
    private com.queplix.core.modules.eqlext.jxb.gr.types.OrderDirectionSType _sortdir = com.queplix.core.modules.eqlext.jxb.gr.types.OrderDirectionSType.valueOf("asc");

    /**
     * for Report Module
     */
    private java.lang.String _caption;

    /**
     * for Report Module
     */
    private java.lang.Integer _size;

    /**
     * for Report Module
     */
    private java.lang.Boolean _group = new java.lang.Boolean("false");

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

    /**
     * Field _aggregate
     */
    private com.queplix.core.modules.eqlext.jxb.gr.types.AggregateSType _aggregate;


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

    public ReqField() 
     {
        super();
        setSortdir(com.queplix.core.modules.eqlext.jxb.gr.types.OrderDirectionSType.valueOf("asc"));
    } //-- com.queplix.core.modules.eqlext.jxb.gr.ReqField()


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

    /**
     * Returns the value of field 'aggregate'.
     * 
     * @return AggregateSType
     * @return the value of field 'aggregate'.
     */
    public com.queplix.core.modules.eqlext.jxb.gr.types.AggregateSType getAggregate()
    {
        return this._aggregate;
    } //-- com.queplix.core.modules.eqlext.jxb.gr.types.AggregateSType getAggregate() 

    /**
     * Returns the value of field 'caption'. The field 'caption'
     * has the following description: for Report Module
     * 
     * @return String
     * @return the value of field 'caption'.
     */
    public java.lang.String getCaption()
    {
        return this._caption;
    } //-- java.lang.String getCaption() 

    /**
     * Returns the value of field 'entity'. The field 'entity' has
     * the following description: Entity name of field
     * 
     * @return String
     * @return the value of field 'entity'.
     */
    public java.lang.String getEntity()
    {
        return this._entity;
    } //-- java.lang.String getEntity() 

    /**
     * Returns the value of field 'formid'.
     * 
     * @return String
     * @return the value of field 'formid'.
     */
    public java.lang.String getFormid()
    {
        return this._formid;
    } //-- java.lang.String getFormid() 

    /**
     * Returns the value of field 'group'. The field 'group' has
     * the following description: for Report Module
     * 
     * @return Boolean
     * @return the value of field 'group'.
     */
    public java.lang.Boolean getGroup()
    {
        return this._group;
    } //-- java.lang.Boolean getGroup() 

    /**
     * Returns the value of field 'name'. The field 'name' has the
     * following description: The field name
     * 
     * @return String
     * @return the value of field 'name'.
     */
    public java.lang.String getName()
    {
        return this._name;
    } //-- java.lang.String getName() 

    /**
     * Returns the value of field 'size'. The field 'size' has the
     * following description: for Report Module
     * 
     * @return Integer
     * @return the value of field 'size'.
     */
    public java.lang.Integer getSize()
    {
        return this._size;
    } //-- java.lang.Integer getSize() 

    /**
     * Returns the value of field 'sort'. The field 'sort' has the
     * following description: Sort by this field or not
     * 
     * @return Boolean
     * @return the value of field 'sort'.
     */
    public java.lang.Boolean getSort()
    {
        return this._sort;
    } //-- java.lang.Boolean getSort() 

    /**
     * Returns the value of field 'sortdir'. The field 'sortdir'
     * has the following description: Sort direction
     * 
     * @return OrderDirectionSType
     * @return the value of field 'sortdir'.
     */
    public com.queplix.core.modules.eqlext.jxb.gr.types.OrderDirectionSType getSortdir()
    {
        return this._sortdir;
    } //-- com.queplix.core.modules.eqlext.jxb.gr.types.OrderDirectionSType getSortdir() 

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

    /**
     * Method marshal
     * 
     * 
     * 
     * @param out
     */
    public void marshal(java.io.Writer out)
        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException
    {
        
        Marshaller.marshal(this, out);
    } //-- void marshal(java.io.Writer) 

    /**
     * Method marshal
     * 
     * 
     * 
     * @param handler
     */
    public void marshal(org.xml.sax.ContentHandler handler)
        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException
    {
        
        Marshaller.marshal(this, handler);
    } //-- void marshal(org.xml.sax.ContentHandler) 

    /**
     * Sets the value of field 'aggregate'.
     * 
     * @param aggregate the value of field 'aggregate'.
     */
    public void setAggregate(com.queplix.core.modules.eqlext.jxb.gr.types.AggregateSType aggregate)
    {
        this._aggregate = aggregate;
    } //-- void setAggregate(com.queplix.core.modules.eqlext.jxb.gr.types.AggregateSType) 

    /**
     * Sets the value of field 'caption'. The field 'caption' has
     * the following description: for Report Module
     * 
     * @param caption the value of field 'caption'.
     */
    public void setCaption(java.lang.String caption)
    {
        this._caption = caption;
    } //-- void setCaption(java.lang.String) 

    /**
     * Sets the value of field 'entity'. The field 'entity' has the
     * following description: Entity name of field
     * 
     * @param entity the value of field 'entity'.
     */
    public void setEntity(java.lang.String entity)
    {
        this._entity = entity;
    } //-- void setEntity(java.lang.String) 

    /**
     * Sets the value of field 'formid'.
     * 
     * @param formid the value of field 'formid'.
     */
    public void setFormid(java.lang.String formid)
    {
        this._formid = formid;
    } //-- void setFormid(java.lang.String) 

    /**
     * Sets the value of field 'group'. The field 'group' has the
     * following description: for Report Module
     * 
     * @param group the value of field 'group'.
     */
    public void setGroup(java.lang.Boolean group)
    {
        this._group = group;
    } //-- void setGroup(java.lang.Boolean) 

    /**
     * Sets the value of field 'name'. The field 'name' has the
     * following description: The field name
     * 
     * @param name the value of field 'name'.
     */
    public void setName(java.lang.String name)
    {
        this._name = name;
    } //-- void setName(java.lang.String) 

    /**
     * Sets the value of field 'size'. The field 'size' has the
     * following description: for Report Module
     * 
     * @param size the value of field 'size'.
     */
    public void setSize(java.lang.Integer size)
    {
        this._size = size;
    } //-- void setSize(java.lang.Integer) 

    /**
     * Sets the value of field 'sort'. The field 'sort' has the
     * following description: Sort by this field or not
     * 
     * @param sort the value of field 'sort'.
     */
    public void setSort(java.lang.Boolean sort)
    {
        this._sort = sort;
    } //-- void setSort(java.lang.Boolean) 

    /**
     * Sets the value of field 'sortdir'. The field 'sortdir' has
     * the following description: Sort direction
     * 
     * @param sortdir the value of field 'sortdir'.
     */
    public void setSortdir(com.queplix.core.modules.eqlext.jxb.gr.types.OrderDirectionSType sortdir)
    {
        this._sortdir = sortdir;
    } //-- void setSortdir(com.queplix.core.modules.eqlext.jxb.gr.types.OrderDirectionSType) 

    /**
     * Method unmarshal
     * 
     * 
     * 
     * @param reader
     * @return Object
     */
    public static java.lang.Object unmarshal(java.io.Reader reader)
        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException
    {
        return (com.queplix.core.modules.eqlext.jxb.gr.ReqField) Unmarshaller.unmarshal(com.queplix.core.modules.eqlext.jxb.gr.ReqField.class, reader);
    } //-- java.lang.Object unmarshal(java.io.Reader) 

    /**
     * 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() 

}
