/*
 * 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.config.jxb;

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

import com.queplix.core.modules.config.jxb.types.FormLabelsOrientationType;
import java.io.IOException;
import java.io.Reader;
import java.io.Serializable;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Enumeration;
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;

/**
 * The sequence of form definition
 * 
 * @version $Revision$ $Date$
 */
public class Form extends com.queplix.core.utils.jxb.JXBObject 
implements java.io.Serializable
{


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

    /**
     * Attribute refers to entity which should be used for form
     */
    private java.lang.String _entity;

    /**
     * Specifies is this form visible or not.
     */
    private java.lang.Boolean _visible = new java.lang.Boolean("true");

    /**
     * The name of form
     */
    private java.lang.String _name;

    /**
     * Stores info about labels position - they shall be placed
     *  either at the left or above associated controls.
     *  
     */
    private com.queplix.core.modules.config.jxb.types.FormLabelsOrientationType _labelsOrientation = com.queplix.core.modules.config.jxb.types.FormLabelsOrientationType.valueOf("horizontal");

    /**
     * Field _defaultactions
     */
    private java.lang.Boolean _defaultactions;

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

    /**
     * Field _order
     */
    private java.lang.Integer _order = new java.lang.Integer("-1");

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

    /**
     * Describes possibility of represntation in the grid
     */
    private java.lang.Boolean _grid = new java.lang.Boolean("true");

    /**
     * Field _myqueweb
     */
    private java.lang.Boolean _myqueweb = new java.lang.Boolean("true");

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

    /**
     * Field _autosearch
     */
    private java.lang.Boolean _autosearch = new java.lang.Boolean("false");

    /**
     * Field _extension
     */
    private com.queplix.core.modules.config.jxb.Extension _extension;

    /**
     * The sequence of form's descriptions
     */
    private com.queplix.core.modules.config.jxb.Descriptions _descriptions;

    /**
     * The reference to external forms which should be loaded with
     * current form
     */
    private java.util.ArrayList _externalSetList;

    /**
     * The reference to external forms which should be used for
     * search constraints in current form
     */
    private java.util.ArrayList _externalFormList;

    /**
     * The reference to form field in another form which should be
     * initialized when current form is loaded
     */
    private java.util.ArrayList _externalFieldList;

    /**
     * Reverse to 'external-field'. The reference on the form field
     * of current form from another form. Auto-generated by system.
     */
    private java.util.ArrayList _internalFieldList;

    /**
     * The reference to linked dataset
     */
    private java.util.ArrayList _linkedDatasetList;

    /**
     * Field _buttons
     */
    private com.queplix.core.modules.config.jxb.Buttons _buttons;

    /**
     * Contains all links in the form
     */
    private com.queplix.core.modules.config.jxb.Links _links;

    /**
     * The layout for the form controls
     */
    private com.queplix.core.modules.config.jxb.Layout _layout;

    /**
     * The sequence of form's captions
     */
    private com.queplix.core.modules.config.jxb.Captions _captions;

    /**
     * Field _htmlelements
     */
    private com.queplix.core.modules.config.jxb.Htmlelements _htmlelements;

    /**
     * Field _filters
     */
    private com.queplix.core.modules.config.jxb.Filters _filters;


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

    public Form() 
     {
        super();
        setLabelsOrientation(com.queplix.core.modules.config.jxb.types.FormLabelsOrientationType.valueOf("horizontal"));
        _externalSetList = new ArrayList();
        _externalFormList = new ArrayList();
        _externalFieldList = new ArrayList();
        _internalFieldList = new ArrayList();
        _linkedDatasetList = new ArrayList();
    } //-- com.queplix.core.modules.config.jxb.Form()


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

    /**
     * Method addExternalField
     * 
     * 
     * 
     * @param vExternalField
     */
    public void addExternalField(com.queplix.core.modules.config.jxb.ExternalField vExternalField)
        throws java.lang.IndexOutOfBoundsException
    {
        _externalFieldList.add(vExternalField);
    } //-- void addExternalField(com.queplix.core.modules.config.jxb.ExternalField) 

    /**
     * Method addExternalField
     * 
     * 
     * 
     * @param index
     * @param vExternalField
     */
    public void addExternalField(int index, com.queplix.core.modules.config.jxb.ExternalField vExternalField)
        throws java.lang.IndexOutOfBoundsException
    {
        _externalFieldList.add(index, vExternalField);
    } //-- void addExternalField(int, com.queplix.core.modules.config.jxb.ExternalField) 

    /**
     * Method addExternalForm
     * 
     * 
     * 
     * @param vExternalForm
     */
    public void addExternalForm(com.queplix.core.modules.config.jxb.ExternalForm vExternalForm)
        throws java.lang.IndexOutOfBoundsException
    {
        _externalFormList.add(vExternalForm);
    } //-- void addExternalForm(com.queplix.core.modules.config.jxb.ExternalForm) 

    /**
     * Method addExternalForm
     * 
     * 
     * 
     * @param index
     * @param vExternalForm
     */
    public void addExternalForm(int index, com.queplix.core.modules.config.jxb.ExternalForm vExternalForm)
        throws java.lang.IndexOutOfBoundsException
    {
        _externalFormList.add(index, vExternalForm);
    } //-- void addExternalForm(int, com.queplix.core.modules.config.jxb.ExternalForm) 

    /**
     * Method addExternalSet
     * 
     * 
     * 
     * @param vExternalSet
     */
    public void addExternalSet(com.queplix.core.modules.config.jxb.ExternalSet vExternalSet)
        throws java.lang.IndexOutOfBoundsException
    {
        _externalSetList.add(vExternalSet);
    } //-- void addExternalSet(com.queplix.core.modules.config.jxb.ExternalSet) 

    /**
     * Method addExternalSet
     * 
     * 
     * 
     * @param index
     * @param vExternalSet
     */
    public void addExternalSet(int index, com.queplix.core.modules.config.jxb.ExternalSet vExternalSet)
        throws java.lang.IndexOutOfBoundsException
    {
        _externalSetList.add(index, vExternalSet);
    } //-- void addExternalSet(int, com.queplix.core.modules.config.jxb.ExternalSet) 

    /**
     * Method addInternalField
     * 
     * 
     * 
     * @param vInternalField
     */
    public void addInternalField(com.queplix.core.modules.config.jxb.InternalField vInternalField)
        throws java.lang.IndexOutOfBoundsException
    {
        _internalFieldList.add(vInternalField);
    } //-- void addInternalField(com.queplix.core.modules.config.jxb.InternalField) 

    /**
     * Method addInternalField
     * 
     * 
     * 
     * @param index
     * @param vInternalField
     */
    public void addInternalField(int index, com.queplix.core.modules.config.jxb.InternalField vInternalField)
        throws java.lang.IndexOutOfBoundsException
    {
        _internalFieldList.add(index, vInternalField);
    } //-- void addInternalField(int, com.queplix.core.modules.config.jxb.InternalField) 

    /**
     * Method addLinkedDataset
     * 
     * 
     * 
     * @param vLinkedDataset
     */
    public void addLinkedDataset(com.queplix.core.modules.config.jxb.LinkedDataset vLinkedDataset)
        throws java.lang.IndexOutOfBoundsException
    {
        _linkedDatasetList.add(vLinkedDataset);
    } //-- void addLinkedDataset(com.queplix.core.modules.config.jxb.LinkedDataset) 

    /**
     * Method addLinkedDataset
     * 
     * 
     * 
     * @param index
     * @param vLinkedDataset
     */
    public void addLinkedDataset(int index, com.queplix.core.modules.config.jxb.LinkedDataset vLinkedDataset)
        throws java.lang.IndexOutOfBoundsException
    {
        _linkedDatasetList.add(index, vLinkedDataset);
    } //-- void addLinkedDataset(int, com.queplix.core.modules.config.jxb.LinkedDataset) 

    /**
     * Method clearExternalField
     * 
     */
    public void clearExternalField()
    {
        _externalFieldList.clear();
    } //-- void clearExternalField() 

    /**
     * Method clearExternalForm
     * 
     */
    public void clearExternalForm()
    {
        _externalFormList.clear();
    } //-- void clearExternalForm() 

    /**
     * Method clearExternalSet
     * 
     */
    public void clearExternalSet()
    {
        _externalSetList.clear();
    } //-- void clearExternalSet() 

    /**
     * Method clearInternalField
     * 
     */
    public void clearInternalField()
    {
        _internalFieldList.clear();
    } //-- void clearInternalField() 

    /**
     * Method clearLinkedDataset
     * 
     */
    public void clearLinkedDataset()
    {
        _linkedDatasetList.clear();
    } //-- void clearLinkedDataset() 

    /**
     * Method enumerateExternalField
     * 
     * 
     * 
     * @return Enumeration
     */
    public java.util.Enumeration enumerateExternalField()
    {
        return new org.exolab.castor.util.IteratorEnumeration(_externalFieldList.iterator());
    } //-- java.util.Enumeration enumerateExternalField() 

    /**
     * Method enumerateExternalForm
     * 
     * 
     * 
     * @return Enumeration
     */
    public java.util.Enumeration enumerateExternalForm()
    {
        return new org.exolab.castor.util.IteratorEnumeration(_externalFormList.iterator());
    } //-- java.util.Enumeration enumerateExternalForm() 

    /**
     * Method enumerateExternalSet
     * 
     * 
     * 
     * @return Enumeration
     */
    public java.util.Enumeration enumerateExternalSet()
    {
        return new org.exolab.castor.util.IteratorEnumeration(_externalSetList.iterator());
    } //-- java.util.Enumeration enumerateExternalSet() 

    /**
     * Method enumerateInternalField
     * 
     * 
     * 
     * @return Enumeration
     */
    public java.util.Enumeration enumerateInternalField()
    {
        return new org.exolab.castor.util.IteratorEnumeration(_internalFieldList.iterator());
    } //-- java.util.Enumeration enumerateInternalField() 

    /**
     * Method enumerateLinkedDataset
     * 
     * 
     * 
     * @return Enumeration
     */
    public java.util.Enumeration enumerateLinkedDataset()
    {
        return new org.exolab.castor.util.IteratorEnumeration(_linkedDatasetList.iterator());
    } //-- java.util.Enumeration enumerateLinkedDataset() 

    /**
     * Returns the value of field 'autosearch'.
     * 
     * @return Boolean
     * @return the value of field 'autosearch'.
     */
    public java.lang.Boolean getAutosearch()
    {
        return this._autosearch;
    } //-- java.lang.Boolean getAutosearch() 

    /**
     * Returns the value of field 'buttons'.
     * 
     * @return Buttons
     * @return the value of field 'buttons'.
     */
    public com.queplix.core.modules.config.jxb.Buttons getButtons()
    {
        return this._buttons;
    } //-- com.queplix.core.modules.config.jxb.Buttons getButtons() 

    /**
     * Returns the value of field 'caption'.
     * 
     * @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 'captions'. The field 'captions'
     * has the following description: The sequence of form's
     * captions
     * 
     * @return Captions
     * @return the value of field 'captions'.
     */
    public com.queplix.core.modules.config.jxb.Captions getCaptions()
    {
        return this._captions;
    } //-- com.queplix.core.modules.config.jxb.Captions getCaptions() 

    /**
     * Returns the value of field 'defaultactions'.
     * 
     * @return Boolean
     * @return the value of field 'defaultactions'.
     */
    public java.lang.Boolean getDefaultactions()
    {
        return this._defaultactions;
    } //-- java.lang.Boolean getDefaultactions() 

    /**
     * Returns the value of field 'description'.
     * 
     * @return String
     * @return the value of field 'description'.
     */
    public java.lang.String getDescription()
    {
        return this._description;
    } //-- java.lang.String getDescription() 

    /**
     * Returns the value of field 'descriptions'. The field
     * 'descriptions' has the following description: The sequence
     * of form's descriptions
     * 
     * @return Descriptions
     * @return the value of field 'descriptions'.
     */
    public com.queplix.core.modules.config.jxb.Descriptions getDescriptions()
    {
        return this._descriptions;
    } //-- com.queplix.core.modules.config.jxb.Descriptions getDescriptions() 

    /**
     * Returns the value of field 'entity'. The field 'entity' has
     * the following description: Attribute refers to entity which
     * should be used for form
     * 
     * @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 'extension'.
     * 
     * @return Extension
     * @return the value of field 'extension'.
     */
    public com.queplix.core.modules.config.jxb.Extension getExtension()
    {
        return this._extension;
    } //-- com.queplix.core.modules.config.jxb.Extension getExtension() 

    /**
     * Method getExternalField
     * 
     * 
     * 
     * @param index
     * @return ExternalField
     */
    public com.queplix.core.modules.config.jxb.ExternalField getExternalField(int index)
        throws java.lang.IndexOutOfBoundsException
    {
        //-- check bounds for index
        if ((index < 0) || (index > _externalFieldList.size())) {
            throw new IndexOutOfBoundsException();
        }
        
        return (com.queplix.core.modules.config.jxb.ExternalField) _externalFieldList.get(index);
    } //-- com.queplix.core.modules.config.jxb.ExternalField getExternalField(int) 

    /**
     * Method getExternalField
     * 
     * 
     * 
     * @return ExternalField
     */
    public com.queplix.core.modules.config.jxb.ExternalField[] getExternalField()
    {
        int size = _externalFieldList.size();
        com.queplix.core.modules.config.jxb.ExternalField[] mArray = new com.queplix.core.modules.config.jxb.ExternalField[size];
        for (int index = 0; index < size; index++) {
            mArray[index] = (com.queplix.core.modules.config.jxb.ExternalField) _externalFieldList.get(index);
        }
        return mArray;
    } //-- com.queplix.core.modules.config.jxb.ExternalField[] getExternalField() 

    /**
     * Method getExternalFieldCount
     * 
     * 
     * 
     * @return int
     */
    public int getExternalFieldCount()
    {
        return _externalFieldList.size();
    } //-- int getExternalFieldCount() 

    /**
     * Method getExternalForm
     * 
     * 
     * 
     * @param index
     * @return ExternalForm
     */
    public com.queplix.core.modules.config.jxb.ExternalForm getExternalForm(int index)
        throws java.lang.IndexOutOfBoundsException
    {
        //-- check bounds for index
        if ((index < 0) || (index > _externalFormList.size())) {
            throw new IndexOutOfBoundsException();
        }
        
        return (com.queplix.core.modules.config.jxb.ExternalForm) _externalFormList.get(index);
    } //-- com.queplix.core.modules.config.jxb.ExternalForm getExternalForm(int) 

    /**
     * Method getExternalForm
     * 
     * 
     * 
     * @return ExternalForm
     */
    public com.queplix.core.modules.config.jxb.ExternalForm[] getExternalForm()
    {
        int size = _externalFormList.size();
        com.queplix.core.modules.config.jxb.ExternalForm[] mArray = new com.queplix.core.modules.config.jxb.ExternalForm[size];
        for (int index = 0; index < size; index++) {
            mArray[index] = (com.queplix.core.modules.config.jxb.ExternalForm) _externalFormList.get(index);
        }
        return mArray;
    } //-- com.queplix.core.modules.config.jxb.ExternalForm[] getExternalForm() 

    /**
     * Method getExternalFormCount
     * 
     * 
     * 
     * @return int
     */
    public int getExternalFormCount()
    {
        return _externalFormList.size();
    } //-- int getExternalFormCount() 

    /**
     * Method getExternalSet
     * 
     * 
     * 
     * @param index
     * @return ExternalSet
     */
    public com.queplix.core.modules.config.jxb.ExternalSet getExternalSet(int index)
        throws java.lang.IndexOutOfBoundsException
    {
        //-- check bounds for index
        if ((index < 0) || (index > _externalSetList.size())) {
            throw new IndexOutOfBoundsException();
        }
        
        return (com.queplix.core.modules.config.jxb.ExternalSet) _externalSetList.get(index);
    } //-- com.queplix.core.modules.config.jxb.ExternalSet getExternalSet(int) 

    /**
     * Method getExternalSet
     * 
     * 
     * 
     * @return ExternalSet
     */
    public com.queplix.core.modules.config.jxb.ExternalSet[] getExternalSet()
    {
        int size = _externalSetList.size();
        com.queplix.core.modules.config.jxb.ExternalSet[] mArray = new com.queplix.core.modules.config.jxb.ExternalSet[size];
        for (int index = 0; index < size; index++) {
            mArray[index] = (com.queplix.core.modules.config.jxb.ExternalSet) _externalSetList.get(index);
        }
        return mArray;
    } //-- com.queplix.core.modules.config.jxb.ExternalSet[] getExternalSet() 

    /**
     * Method getExternalSetCount
     * 
     * 
     * 
     * @return int
     */
    public int getExternalSetCount()
    {
        return _externalSetList.size();
    } //-- int getExternalSetCount() 

    /**
     * Returns the value of field 'filters'.
     * 
     * @return Filters
     * @return the value of field 'filters'.
     */
    public com.queplix.core.modules.config.jxb.Filters getFilters()
    {
        return this._filters;
    } //-- com.queplix.core.modules.config.jxb.Filters getFilters() 

    /**
     * Returns the value of field 'grid'. The field 'grid' has the
     * following description: Describes possibility of
     * represntation in the grid
     * 
     * @return Boolean
     * @return the value of field 'grid'.
     */
    public java.lang.Boolean getGrid()
    {
        return this._grid;
    } //-- java.lang.Boolean getGrid() 

    /**
     * Returns the value of field 'htmlelements'.
     * 
     * @return Htmlelements
     * @return the value of field 'htmlelements'.
     */
    public com.queplix.core.modules.config.jxb.Htmlelements getHtmlelements()
    {
        return this._htmlelements;
    } //-- com.queplix.core.modules.config.jxb.Htmlelements getHtmlelements() 

    /**
     * Method getInternalField
     * 
     * 
     * 
     * @param index
     * @return InternalField
     */
    public com.queplix.core.modules.config.jxb.InternalField getInternalField(int index)
        throws java.lang.IndexOutOfBoundsException
    {
        //-- check bounds for index
        if ((index < 0) || (index > _internalFieldList.size())) {
            throw new IndexOutOfBoundsException();
        }
        
        return (com.queplix.core.modules.config.jxb.InternalField) _internalFieldList.get(index);
    } //-- com.queplix.core.modules.config.jxb.InternalField getInternalField(int) 

    /**
     * Method getInternalField
     * 
     * 
     * 
     * @return InternalField
     */
    public com.queplix.core.modules.config.jxb.InternalField[] getInternalField()
    {
        int size = _internalFieldList.size();
        com.queplix.core.modules.config.jxb.InternalField[] mArray = new com.queplix.core.modules.config.jxb.InternalField[size];
        for (int index = 0; index < size; index++) {
            mArray[index] = (com.queplix.core.modules.config.jxb.InternalField) _internalFieldList.get(index);
        }
        return mArray;
    } //-- com.queplix.core.modules.config.jxb.InternalField[] getInternalField() 

    /**
     * Method getInternalFieldCount
     * 
     * 
     * 
     * @return int
     */
    public int getInternalFieldCount()
    {
        return _internalFieldList.size();
    } //-- int getInternalFieldCount() 

    /**
     * Returns the value of field 'labelsOrientation'. The field
     * 'labelsOrientation' has the following description: Stores
     * info about labels position - they shall be placed
     *  either at the left or above associated controls.
     *  
     * 
     * @return FormLabelsOrientationType
     * @return the value of field 'labelsOrientation'.
     */
    public com.queplix.core.modules.config.jxb.types.FormLabelsOrientationType getLabelsOrientation()
    {
        return this._labelsOrientation;
    } //-- com.queplix.core.modules.config.jxb.types.FormLabelsOrientationType getLabelsOrientation() 

    /**
     * Returns the value of field 'layout'. The field 'layout' has
     * the following description: The layout for the form controls
     * 
     * @return Layout
     * @return the value of field 'layout'.
     */
    public com.queplix.core.modules.config.jxb.Layout getLayout()
    {
        return this._layout;
    } //-- com.queplix.core.modules.config.jxb.Layout getLayout() 

    /**
     * Method getLinkedDataset
     * 
     * 
     * 
     * @param index
     * @return LinkedDataset
     */
    public com.queplix.core.modules.config.jxb.LinkedDataset getLinkedDataset(int index)
        throws java.lang.IndexOutOfBoundsException
    {
        //-- check bounds for index
        if ((index < 0) || (index > _linkedDatasetList.size())) {
            throw new IndexOutOfBoundsException();
        }
        
        return (com.queplix.core.modules.config.jxb.LinkedDataset) _linkedDatasetList.get(index);
    } //-- com.queplix.core.modules.config.jxb.LinkedDataset getLinkedDataset(int) 

    /**
     * Method getLinkedDataset
     * 
     * 
     * 
     * @return LinkedDataset
     */
    public com.queplix.core.modules.config.jxb.LinkedDataset[] getLinkedDataset()
    {
        int size = _linkedDatasetList.size();
        com.queplix.core.modules.config.jxb.LinkedDataset[] mArray = new com.queplix.core.modules.config.jxb.LinkedDataset[size];
        for (int index = 0; index < size; index++) {
            mArray[index] = (com.queplix.core.modules.config.jxb.LinkedDataset) _linkedDatasetList.get(index);
        }
        return mArray;
    } //-- com.queplix.core.modules.config.jxb.LinkedDataset[] getLinkedDataset() 

    /**
     * Method getLinkedDatasetCount
     * 
     * 
     * 
     * @return int
     */
    public int getLinkedDatasetCount()
    {
        return _linkedDatasetList.size();
    } //-- int getLinkedDatasetCount() 

    /**
     * Returns the value of field 'links'. The field 'links' has
     * the following description: Contains all links in the form
     * 
     * @return Links
     * @return the value of field 'links'.
     */
    public com.queplix.core.modules.config.jxb.Links getLinks()
    {
        return this._links;
    } //-- com.queplix.core.modules.config.jxb.Links getLinks() 

    /**
     * Returns the value of field 'myqueweb'.
     * 
     * @return Boolean
     * @return the value of field 'myqueweb'.
     */
    public java.lang.Boolean getMyqueweb()
    {
        return this._myqueweb;
    } //-- java.lang.Boolean getMyqueweb() 

    /**
     * Returns the value of field 'name'. The field 'name' has the
     * following description: The name of form
     * 
     * @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 'order'.
     * 
     * @return Integer
     * @return the value of field 'order'.
     */
    public java.lang.Integer getOrder()
    {
        return this._order;
    } //-- java.lang.Integer getOrder() 

    /**
     * Returns the value of field 'tab'.
     * 
     * @return String
     * @return the value of field 'tab'.
     */
    public java.lang.String getTab()
    {
        return this._tab;
    } //-- java.lang.String getTab() 

    /**
     * Returns the value of field 'visible'. The field 'visible'
     * has the following description: Specifies is this form
     * visible or not.
     * 
     * @return Boolean
     * @return the value of field 'visible'.
     */
    public java.lang.Boolean getVisible()
    {
        return this._visible;
    } //-- java.lang.Boolean getVisible() 

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

    /**
     * Method removeExternalField
     * 
     * 
     * 
     * @param vExternalField
     * @return boolean
     */
    public boolean removeExternalField(com.queplix.core.modules.config.jxb.ExternalField vExternalField)
    {
        boolean removed = _externalFieldList.remove(vExternalField);
        return removed;
    } //-- boolean removeExternalField(com.queplix.core.modules.config.jxb.ExternalField) 

    /**
     * Method removeExternalForm
     * 
     * 
     * 
     * @param vExternalForm
     * @return boolean
     */
    public boolean removeExternalForm(com.queplix.core.modules.config.jxb.ExternalForm vExternalForm)
    {
        boolean removed = _externalFormList.remove(vExternalForm);
        return removed;
    } //-- boolean removeExternalForm(com.queplix.core.modules.config.jxb.ExternalForm) 

    /**
     * Method removeExternalSet
     * 
     * 
     * 
     * @param vExternalSet
     * @return boolean
     */
    public boolean removeExternalSet(com.queplix.core.modules.config.jxb.ExternalSet vExternalSet)
    {
        boolean removed = _externalSetList.remove(vExternalSet);
        return removed;
    } //-- boolean removeExternalSet(com.queplix.core.modules.config.jxb.ExternalSet) 

    /**
     * Method removeInternalField
     * 
     * 
     * 
     * @param vInternalField
     * @return boolean
     */
    public boolean removeInternalField(com.queplix.core.modules.config.jxb.InternalField vInternalField)
    {
        boolean removed = _internalFieldList.remove(vInternalField);
        return removed;
    } //-- boolean removeInternalField(com.queplix.core.modules.config.jxb.InternalField) 

    /**
     * Method removeLinkedDataset
     * 
     * 
     * 
     * @param vLinkedDataset
     * @return boolean
     */
    public boolean removeLinkedDataset(com.queplix.core.modules.config.jxb.LinkedDataset vLinkedDataset)
    {
        boolean removed = _linkedDatasetList.remove(vLinkedDataset);
        return removed;
    } //-- boolean removeLinkedDataset(com.queplix.core.modules.config.jxb.LinkedDataset) 

    /**
     * Sets the value of field 'autosearch'.
     * 
     * @param autosearch the value of field 'autosearch'.
     */
    public void setAutosearch(java.lang.Boolean autosearch)
    {
        this._autosearch = autosearch;
    } //-- void setAutosearch(java.lang.Boolean) 

    /**
     * Sets the value of field 'buttons'.
     * 
     * @param buttons the value of field 'buttons'.
     */
    public void setButtons(com.queplix.core.modules.config.jxb.Buttons buttons)
    {
        this._buttons = buttons;
    } //-- void setButtons(com.queplix.core.modules.config.jxb.Buttons) 

    /**
     * Sets the value of field 'caption'.
     * 
     * @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 'captions'. The field 'captions' has
     * the following description: The sequence of form's captions
     * 
     * @param captions the value of field 'captions'.
     */
    public void setCaptions(com.queplix.core.modules.config.jxb.Captions captions)
    {
        this._captions = captions;
    } //-- void setCaptions(com.queplix.core.modules.config.jxb.Captions) 

    /**
     * Sets the value of field 'defaultactions'.
     * 
     * @param defaultactions the value of field 'defaultactions'.
     */
    public void setDefaultactions(java.lang.Boolean defaultactions)
    {
        this._defaultactions = defaultactions;
    } //-- void setDefaultactions(java.lang.Boolean) 

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

    /**
     * Sets the value of field 'descriptions'. The field
     * 'descriptions' has the following description: The sequence
     * of form's descriptions
     * 
     * @param descriptions the value of field 'descriptions'.
     */
    public void setDescriptions(com.queplix.core.modules.config.jxb.Descriptions descriptions)
    {
        this._descriptions = descriptions;
    } //-- void setDescriptions(com.queplix.core.modules.config.jxb.Descriptions) 

    /**
     * Sets the value of field 'entity'. The field 'entity' has the
     * following description: Attribute refers to entity which
     * should be used for form
     * 
     * @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 'extension'.
     * 
     * @param extension the value of field 'extension'.
     */
    public void setExtension(com.queplix.core.modules.config.jxb.Extension extension)
    {
        this._extension = extension;
    } //-- void setExtension(com.queplix.core.modules.config.jxb.Extension) 

    /**
     * Method setExternalField
     * 
     * 
     * 
     * @param index
     * @param vExternalField
     */
    public void setExternalField(int index, com.queplix.core.modules.config.jxb.ExternalField vExternalField)
        throws java.lang.IndexOutOfBoundsException
    {
        //-- check bounds for index
        if ((index < 0) || (index > _externalFieldList.size())) {
            throw new IndexOutOfBoundsException();
        }
        _externalFieldList.set(index, vExternalField);
    } //-- void setExternalField(int, com.queplix.core.modules.config.jxb.ExternalField) 

    /**
     * Method setExternalField
     * 
     * 
     * 
     * @param externalFieldArray
     */
    public void setExternalField(com.queplix.core.modules.config.jxb.ExternalField[] externalFieldArray)
    {
        //-- copy array
        _externalFieldList.clear();
        for (int i = 0; i < externalFieldArray.length; i++) {
            _externalFieldList.add(externalFieldArray[i]);
        }
    } //-- void setExternalField(com.queplix.core.modules.config.jxb.ExternalField) 

    /**
     * Method setExternalForm
     * 
     * 
     * 
     * @param index
     * @param vExternalForm
     */
    public void setExternalForm(int index, com.queplix.core.modules.config.jxb.ExternalForm vExternalForm)
        throws java.lang.IndexOutOfBoundsException
    {
        //-- check bounds for index
        if ((index < 0) || (index > _externalFormList.size())) {
            throw new IndexOutOfBoundsException();
        }
        _externalFormList.set(index, vExternalForm);
    } //-- void setExternalForm(int, com.queplix.core.modules.config.jxb.ExternalForm) 

    /**
     * Method setExternalForm
     * 
     * 
     * 
     * @param externalFormArray
     */
    public void setExternalForm(com.queplix.core.modules.config.jxb.ExternalForm[] externalFormArray)
    {
        //-- copy array
        _externalFormList.clear();
        for (int i = 0; i < externalFormArray.length; i++) {
            _externalFormList.add(externalFormArray[i]);
        }
    } //-- void setExternalForm(com.queplix.core.modules.config.jxb.ExternalForm) 

    /**
     * Method setExternalSet
     * 
     * 
     * 
     * @param index
     * @param vExternalSet
     */
    public void setExternalSet(int index, com.queplix.core.modules.config.jxb.ExternalSet vExternalSet)
        throws java.lang.IndexOutOfBoundsException
    {
        //-- check bounds for index
        if ((index < 0) || (index > _externalSetList.size())) {
            throw new IndexOutOfBoundsException();
        }
        _externalSetList.set(index, vExternalSet);
    } //-- void setExternalSet(int, com.queplix.core.modules.config.jxb.ExternalSet) 

    /**
     * Method setExternalSet
     * 
     * 
     * 
     * @param externalSetArray
     */
    public void setExternalSet(com.queplix.core.modules.config.jxb.ExternalSet[] externalSetArray)
    {
        //-- copy array
        _externalSetList.clear();
        for (int i = 0; i < externalSetArray.length; i++) {
            _externalSetList.add(externalSetArray[i]);
        }
    } //-- void setExternalSet(com.queplix.core.modules.config.jxb.ExternalSet) 

    /**
     * Sets the value of field 'filters'.
     * 
     * @param filters the value of field 'filters'.
     */
    public void setFilters(com.queplix.core.modules.config.jxb.Filters filters)
    {
        this._filters = filters;
    } //-- void setFilters(com.queplix.core.modules.config.jxb.Filters) 

    /**
     * Sets the value of field 'grid'. The field 'grid' has the
     * following description: Describes possibility of
     * represntation in the grid
     * 
     * @param grid the value of field 'grid'.
     */
    public void setGrid(java.lang.Boolean grid)
    {
        this._grid = grid;
    } //-- void setGrid(java.lang.Boolean) 

    /**
     * Sets the value of field 'htmlelements'.
     * 
     * @param htmlelements the value of field 'htmlelements'.
     */
    public void setHtmlelements(com.queplix.core.modules.config.jxb.Htmlelements htmlelements)
    {
        this._htmlelements = htmlelements;
    } //-- void setHtmlelements(com.queplix.core.modules.config.jxb.Htmlelements) 

    /**
     * Method setInternalField
     * 
     * 
     * 
     * @param index
     * @param vInternalField
     */
    public void setInternalField(int index, com.queplix.core.modules.config.jxb.InternalField vInternalField)
        throws java.lang.IndexOutOfBoundsException
    {
        //-- check bounds for index
        if ((index < 0) || (index > _internalFieldList.size())) {
            throw new IndexOutOfBoundsException();
        }
        _internalFieldList.set(index, vInternalField);
    } //-- void setInternalField(int, com.queplix.core.modules.config.jxb.InternalField) 

    /**
     * Method setInternalField
     * 
     * 
     * 
     * @param internalFieldArray
     */
    public void setInternalField(com.queplix.core.modules.config.jxb.InternalField[] internalFieldArray)
    {
        //-- copy array
        _internalFieldList.clear();
        for (int i = 0; i < internalFieldArray.length; i++) {
            _internalFieldList.add(internalFieldArray[i]);
        }
    } //-- void setInternalField(com.queplix.core.modules.config.jxb.InternalField) 

    /**
     * Sets the value of field 'labelsOrientation'. The field
     * 'labelsOrientation' has the following description: Stores
     * info about labels position - they shall be placed
     *  either at the left or above associated controls.
     *  
     * 
     * @param labelsOrientation the value of field
     * 'labelsOrientation'.
     */
    public void setLabelsOrientation(com.queplix.core.modules.config.jxb.types.FormLabelsOrientationType labelsOrientation)
    {
        this._labelsOrientation = labelsOrientation;
    } //-- void setLabelsOrientation(com.queplix.core.modules.config.jxb.types.FormLabelsOrientationType) 

    /**
     * Sets the value of field 'layout'. The field 'layout' has the
     * following description: The layout for the form controls
     * 
     * @param layout the value of field 'layout'.
     */
    public void setLayout(com.queplix.core.modules.config.jxb.Layout layout)
    {
        this._layout = layout;
    } //-- void setLayout(com.queplix.core.modules.config.jxb.Layout) 

    /**
     * Method setLinkedDataset
     * 
     * 
     * 
     * @param index
     * @param vLinkedDataset
     */
    public void setLinkedDataset(int index, com.queplix.core.modules.config.jxb.LinkedDataset vLinkedDataset)
        throws java.lang.IndexOutOfBoundsException
    {
        //-- check bounds for index
        if ((index < 0) || (index > _linkedDatasetList.size())) {
            throw new IndexOutOfBoundsException();
        }
        _linkedDatasetList.set(index, vLinkedDataset);
    } //-- void setLinkedDataset(int, com.queplix.core.modules.config.jxb.LinkedDataset) 

    /**
     * Method setLinkedDataset
     * 
     * 
     * 
     * @param linkedDatasetArray
     */
    public void setLinkedDataset(com.queplix.core.modules.config.jxb.LinkedDataset[] linkedDatasetArray)
    {
        //-- copy array
        _linkedDatasetList.clear();
        for (int i = 0; i < linkedDatasetArray.length; i++) {
            _linkedDatasetList.add(linkedDatasetArray[i]);
        }
    } //-- void setLinkedDataset(com.queplix.core.modules.config.jxb.LinkedDataset) 

    /**
     * Sets the value of field 'links'. The field 'links' has the
     * following description: Contains all links in the form
     * 
     * @param links the value of field 'links'.
     */
    public void setLinks(com.queplix.core.modules.config.jxb.Links links)
    {
        this._links = links;
    } //-- void setLinks(com.queplix.core.modules.config.jxb.Links) 

    /**
     * Sets the value of field 'myqueweb'.
     * 
     * @param myqueweb the value of field 'myqueweb'.
     */
    public void setMyqueweb(java.lang.Boolean myqueweb)
    {
        this._myqueweb = myqueweb;
    } //-- void setMyqueweb(java.lang.Boolean) 

    /**
     * Sets the value of field 'name'. The field 'name' has the
     * following description: The name of form
     * 
     * @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 'order'.
     * 
     * @param order the value of field 'order'.
     */
    public void setOrder(java.lang.Integer order)
    {
        this._order = order;
    } //-- void setOrder(java.lang.Integer) 

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

    /**
     * Sets the value of field 'visible'. The field 'visible' has
     * the following description: Specifies is this form visible or
     * not.
     * 
     * @param visible the value of field 'visible'.
     */
    public void setVisible(java.lang.Boolean visible)
    {
        this._visible = visible;
    } //-- void setVisible(java.lang.Boolean) 

    /**
     * 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.config.jxb.Form) Unmarshaller.unmarshal(com.queplix.core.modules.config.jxb.Form.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() 

}
