// Do not edit this file!  It was generated by Melati POEM's DSD preprocessor.

package org.melati.poem.generated;


import org.melati.poem.AccessPoemException;
import org.melati.poem.Capability;
import org.melati.poem.Column;
import org.melati.poem.Field;
import org.melati.poem.JdbcPersistent;
import org.melati.poem.NoSuchRowPoemException;
import org.melati.poem.PoemDatabaseTables;
import org.melati.poem.TableCategory;
import org.melati.poem.TableInfoTable;
import org.melati.poem.ValidationPoemException;


/**
 * Melati POEM generated abstract base class for a <code>Persistent</code> 
 * <code>tableInfo</code> Object.
 *
 * see org.melati.poem.prepro.TableDef#generatePersistentBaseJava 
 */
public abstract class TableInfoBase extends JdbcPersistent {


 /**
  * Retrieves the Database object.
  * 
  * see org.melati.poem.prepro.TableDef#generatePersistentBaseJava 
  * @return the database
  */
  public PoemDatabaseTables getPoemDatabaseTables() {
    return (PoemDatabaseTables)getDatabase();
  }


 /**
  * Retrieves the  <code>TableInfoTable</code> table 
  * which this <code>Persistent</code> is from.
  * 
  * see org.melati.poem.prepro.TableDef#generatePersistentBaseJava 
  * @return the TableInfoTable
  */
  public TableInfoTable getTableInfoTable() {
    return (TableInfoTable)getTable();
  }

  private TableInfoTable _getTableInfoTable() {
    return (TableInfoTable)getTable();
  }

  // Fields in this table 
 /**
  * id - The Table Row Object ID 
  */
  protected Integer id;
 /**
  * name - A code-name for the table 
  */
  protected String name;
 /**
  * Display name - A user-friendly name for the table 
  */
  protected String displayname;
 /**
  * description - A brief description of the table's function 
  */
  protected String description;
 /**
  * Display order - A rank determining where the table appears in the list of 
  * all tables 
  */
  protected Integer displayorder;
 /**
  * Default `read' capability - The capability required, by default, for 
  * reading the table's records 
  */
  protected Integer defaultcanread;
 /**
  * Default `write' capability - The capability required, by default, for 
  * updating the table's records 
  */
  protected Integer defaultcanwrite;
 /**
  * Default `delete' capability - The capability required, by default, for 
  * deleting the table's records 
  */
  protected Integer defaultcandelete;
 /**
  * Default `create' capability - The capability required, by default, for 
  * creating records in the table 
  */
  protected Integer cancreate;
 /**
  * Cache size limit - The maximum number of records from the table to keep 
  * in the cache 
  */
  protected Integer cachelimit;
 /**
  * Record sequence cached - Whether the display sequence for the table's 
  * records is cached 
  */
  protected Boolean seqcached;
 /**
  * category - Which category the table falls into 
  */
  protected Integer category;


 /**
  * Retrieves the <code>Id</code> value, without locking, 
  * for this <code>tableInfo</code> <code>Persistent</code>.
  *
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @return the Integer id
  */
  public Integer getId_unsafe() {
    return id;
  }


 /**
  * Sets the <code>Id</code> value directly, without checking, 
  * for this tableInfo <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @param cooked  the pre-validated value to set
  */
  public void setId_unsafe(Integer cooked) {
    id = cooked;
  }

 /**
  * Retrieves the Id value, with locking, for this 
  * <code>tableInfo</code> <code>Persistent</code>.
  * Field description: 
  *   The Table Row Object ID 
  * 
  * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights 
  * @return the value of the field <code>Id</code> for this 
  *         <code>tableInfo</code> <code>Persistent</code>  
  */

  public Integer getId()
      throws AccessPoemException {
    readLock();
    return getId_unsafe();
  }


 /**
  * Sets the <code>Id</code> value, with checking, for this 
  * <code>tableInfo</code> <code>Persistent</code>.
  * Field description: 
  *   The Table Row Object ID 
  * 
  * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
  * @param cooked  a validated <code>int</code> 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @throws ValidationPoemException 
  *         if the value is not valid
  */
  public void setId(Integer cooked)
      throws AccessPoemException, ValidationPoemException {
    _getTableInfoTable().getIdColumn().
      getType().assertValidCooked(cooked);
    writeLock();
    setId_unsafe(cooked);
  }

 /**
  * Sets the <code>Id</code> value, with checking, for this 
  * <code>tableInfo</code> <code>Persistent</code>.
  * Field description: 
  *   The Table Row Object ID 
  * 
  * 
  * Generated by org.melati.poem.prepro.IntegerFieldDef#generateBaseMethods 
  * @param cooked  a validated <code>int</code>
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @throws ValidationPoemException 
  *         if the value is not valid
  */

  public final void setId(int cooked)
      throws AccessPoemException, ValidationPoemException {
    setId(new Integer(cooked));
  }


 /**
  * Retrieves the <code>Id</code> value as a <code>Field</code>
  * from this <code>tableInfo</code> <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @return the Integer id
  */
  public Field<Integer> getIdField() throws AccessPoemException {
    Column<Integer> c = _getTableInfoTable().getIdColumn();
    return new Field<Integer>((Integer)c.getRaw(this), c);
  }


 /**
  * Retrieves the <code>Name</code> value, without locking, 
  * for this <code>tableInfo</code> <code>Persistent</code>.
  *
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @return the String name
  */
  public String getName_unsafe() {
    return name;
  }


 /**
  * Sets the <code>Name</code> value directly, without checking, 
  * for this tableInfo <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @param cooked  the pre-validated value to set
  */
  public void setName_unsafe(String cooked) {
    name = cooked;
  }

 /**
  * Retrieves the Name value, with locking, for this 
  * <code>tableInfo</code> <code>Persistent</code>.
  * Field description: 
  *   A code-name for the table 
  * 
  * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights 
  * @return the value of the field <code>Name</code> for this 
  *         <code>tableInfo</code> <code>Persistent</code>  
  */

  public String getName()
      throws AccessPoemException {
    readLock();
    return getName_unsafe();
  }


 /**
  * Sets the <code>Name</code> value, with checking, for this 
  * <code>tableInfo</code> <code>Persistent</code>.
  * Field description: 
  *   A code-name for the table 
  * 
  * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
  * @param cooked  a validated <code>int</code> 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @throws ValidationPoemException 
  *         if the value is not valid
  */
  public void setName(String cooked)
      throws AccessPoemException, ValidationPoemException {
    _getTableInfoTable().getNameColumn().
      getType().assertValidCooked(cooked);
    writeLock();
    setName_unsafe(cooked);
  }


 /**
  * Retrieves the <code>Name</code> value as a <code>Field</code>
  * from this <code>tableInfo</code> <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @return the String name
  */
  public Field<String> getNameField() throws AccessPoemException {
    Column<String> c = _getTableInfoTable().getNameColumn();
    return new Field<String>((String)c.getRaw(this), c);
  }


 /**
  * Retrieves the <code>Displayname</code> value, without locking, 
  * for this <code>tableInfo</code> <code>Persistent</code>.
  *
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @return the String displayname
  */
  public String getDisplayname_unsafe() {
    return displayname;
  }


 /**
  * Sets the <code>Displayname</code> value directly, without checking, 
  * for this tableInfo <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @param cooked  the pre-validated value to set
  */
  public void setDisplayname_unsafe(String cooked) {
    displayname = cooked;
  }

 /**
  * Retrieves the Displayname value, with locking, for this 
  * <code>tableInfo</code> <code>Persistent</code>.
  * Field description: 
  *   A user-friendly name for the table 
  * 
  * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights 
  * @return the value of the field <code>Displayname</code> for this 
  *         <code>tableInfo</code> <code>Persistent</code>  
  */

  public String getDisplayname()
      throws AccessPoemException {
    readLock();
    return getDisplayname_unsafe();
  }


 /**
  * Sets the <code>Displayname</code> value, with checking, for this 
  * <code>tableInfo</code> <code>Persistent</code>.
  * Field description: 
  *   A user-friendly name for the table 
  * 
  * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
  * @param cooked  a validated <code>int</code> 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @throws ValidationPoemException 
  *         if the value is not valid
  */
  public void setDisplayname(String cooked)
      throws AccessPoemException, ValidationPoemException {
    _getTableInfoTable().getDisplaynameColumn().
      getType().assertValidCooked(cooked);
    writeLock();
    setDisplayname_unsafe(cooked);
  }


 /**
  * Retrieves the <code>Displayname</code> value as a <code>Field</code>
  * from this <code>tableInfo</code> <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @return the String displayname
  */
  public Field<String> getDisplaynameField() throws AccessPoemException {
    Column<String> c = _getTableInfoTable().getDisplaynameColumn();
    return new Field<String>((String)c.getRaw(this), c);
  }


 /**
  * Retrieves the <code>Description</code> value, without locking, 
  * for this <code>tableInfo</code> <code>Persistent</code>.
  *
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @return the String description
  */
  public String getDescription_unsafe() {
    return description;
  }


 /**
  * Sets the <code>Description</code> value directly, without checking, 
  * for this tableInfo <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @param cooked  the pre-validated value to set
  */
  public void setDescription_unsafe(String cooked) {
    description = cooked;
  }

 /**
  * Retrieves the Description value, with locking, for this 
  * <code>tableInfo</code> <code>Persistent</code>.
  * Field description: 
  *   A brief description of the table's function 
  * 
  * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights 
  * @return the value of the field <code>Description</code> for this 
  *         <code>tableInfo</code> <code>Persistent</code>  
  */

  public String getDescription()
      throws AccessPoemException {
    readLock();
    return getDescription_unsafe();
  }


 /**
  * Sets the <code>Description</code> value, with checking, for this 
  * <code>tableInfo</code> <code>Persistent</code>.
  * Field description: 
  *   A brief description of the table's function 
  * 
  * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
  * @param cooked  a validated <code>int</code> 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @throws ValidationPoemException 
  *         if the value is not valid
  */
  public void setDescription(String cooked)
      throws AccessPoemException, ValidationPoemException {
    _getTableInfoTable().getDescriptionColumn().
      getType().assertValidCooked(cooked);
    writeLock();
    setDescription_unsafe(cooked);
  }


 /**
  * Retrieves the <code>Description</code> value as a <code>Field</code>
  * from this <code>tableInfo</code> <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @return the String description
  */
  public Field<String> getDescriptionField() throws AccessPoemException {
    Column<String> c = _getTableInfoTable().getDescriptionColumn();
    return new Field<String>((String)c.getRaw(this), c);
  }


 /**
  * Retrieves the <code>Displayorder</code> value, without locking, 
  * for this <code>tableInfo</code> <code>Persistent</code>.
  *
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @return the Integer displayorder
  */
  public Integer getDisplayorder_unsafe() {
    return displayorder;
  }


 /**
  * Sets the <code>Displayorder</code> value directly, without checking, 
  * for this tableInfo <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @param cooked  the pre-validated value to set
  */
  public void setDisplayorder_unsafe(Integer cooked) {
    displayorder = cooked;
  }

 /**
  * Retrieves the Displayorder value, with locking, for this 
  * <code>tableInfo</code> <code>Persistent</code>.
  * Field description: 
  *   A rank determining where the table appears in the list of all tables 
  * 
  * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights 
  * @return the value of the field <code>Displayorder</code> for this 
  *         <code>tableInfo</code> <code>Persistent</code>  
  */

  public Integer getDisplayorder()
      throws AccessPoemException {
    readLock();
    return getDisplayorder_unsafe();
  }


 /**
  * Sets the <code>Displayorder</code> value, with checking, for this 
  * <code>tableInfo</code> <code>Persistent</code>.
  * Field description: 
  *   A rank determining where the table appears in the list of all tables 
  * 
  * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
  * @param cooked  a validated <code>int</code> 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @throws ValidationPoemException 
  *         if the value is not valid
  */
  public void setDisplayorder(Integer cooked)
      throws AccessPoemException, ValidationPoemException {
    _getTableInfoTable().getDisplayorderColumn().
      getType().assertValidCooked(cooked);
    writeLock();
    setDisplayorder_unsafe(cooked);
  }

 /**
  * Sets the <code>Displayorder</code> value, with checking, for this 
  * <code>tableInfo</code> <code>Persistent</code>.
  * Field description: 
  *   A rank determining where the table appears in the list of all tables 
  * 
  * 
  * Generated by org.melati.poem.prepro.IntegerFieldDef#generateBaseMethods 
  * @param cooked  a validated <code>int</code>
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @throws ValidationPoemException 
  *         if the value is not valid
  */

  public final void setDisplayorder(int cooked)
      throws AccessPoemException, ValidationPoemException {
    setDisplayorder(new Integer(cooked));
  }


 /**
  * Retrieves the <code>Displayorder</code> value as a <code>Field</code>
  * from this <code>tableInfo</code> <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @return the Integer displayorder
  */
  public Field<Integer> getDisplayorderField() throws AccessPoemException {
    Column<Integer> c = _getTableInfoTable().getDisplayorderColumn();
    return new Field<Integer>((Integer)c.getRaw(this), c);
  }


 /**
  * Retrieves the <code>Defaultcanread</code> value, without locking, 
  * for this <code>tableInfo</code> <code>Persistent</code>.
  *
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @return the Integer defaultcanread
  */
  public Integer getDefaultcanread_unsafe() {
    return defaultcanread;
  }


 /**
  * Sets the <code>Defaultcanread</code> value directly, without checking, 
  * for this tableInfo <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @param cooked  the pre-validated value to set
  */
  public void setDefaultcanread_unsafe(Integer cooked) {
    defaultcanread = cooked;
  }

 /**
  * Retrieves the Table Row Object ID. 
  *
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer read access rights 
  * @return the TROID as an <code>Integer</code> 
  */

  public Integer getDefaultcanreadTroid()
      throws AccessPoemException {
    readLock();
    return getDefaultcanread_unsafe();
  }


 /**
  * Sets the Table Row Object ID. 
  * 
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @param raw  a Table Row Object Id 
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  */
  public void setDefaultcanreadTroid(Integer raw)
      throws AccessPoemException {
    setDefaultcanread(raw == null ? null : 
        getPoemDatabaseTables().getCapabilityTable().getCapabilityObject(raw));
  }


 /**
  * Retrieves the <code>Defaultcanread</code> object referred to.
  *  
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer read access rights 
  * @throws NoSuchRowPoemException  
  *         if the <code>Persistent</code> has yet to be allocated a TROID 
  * @return the <code>Defaultcanread</code> as a <code>Capability</code> 
  */
  public Capability getDefaultcanread()
      throws AccessPoemException, NoSuchRowPoemException {
    Integer troid = getDefaultcanreadTroid();
    return troid == null ? null :
        getPoemDatabaseTables().getCapabilityTable().getCapabilityObject(troid);
  }


 /**
  * Set the Defaultcanread.
  * 
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @param cooked  a validated <code>Capability</code>
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights 
  */
  public void setDefaultcanread(Capability cooked)
      throws AccessPoemException {
    _getTableInfoTable().
      getDefaultcanreadColumn().
        getType().assertValidCooked(cooked);
    writeLock();
    if (cooked == null)
      setDefaultcanread_unsafe(null);
    else {
      cooked.existenceLock();
      setDefaultcanread_unsafe(cooked.troid());
    }
  }


 /**
  * Retrieves the <code>Defaultcanread</code> value as a <code>Field</code>
  * from this <code>tableInfo</code> <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @return the Integer defaultcanread
  */
  public Field<Integer> getDefaultcanreadField() throws AccessPoemException {
    Column<Integer> c = _getTableInfoTable().getDefaultcanreadColumn();
    return new Field<Integer>((Integer)c.getRaw(this), c);
  }


 /**
  * Retrieves the <code>Defaultcanwrite</code> value, without locking, 
  * for this <code>tableInfo</code> <code>Persistent</code>.
  *
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @return the Integer defaultcanwrite
  */
  public Integer getDefaultcanwrite_unsafe() {
    return defaultcanwrite;
  }


 /**
  * Sets the <code>Defaultcanwrite</code> value directly, without checking, 
  * for this tableInfo <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @param cooked  the pre-validated value to set
  */
  public void setDefaultcanwrite_unsafe(Integer cooked) {
    defaultcanwrite = cooked;
  }

 /**
  * Retrieves the Table Row Object ID. 
  *
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer read access rights 
  * @return the TROID as an <code>Integer</code> 
  */

  public Integer getDefaultcanwriteTroid()
      throws AccessPoemException {
    readLock();
    return getDefaultcanwrite_unsafe();
  }


 /**
  * Sets the Table Row Object ID. 
  * 
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @param raw  a Table Row Object Id 
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  */
  public void setDefaultcanwriteTroid(Integer raw)
      throws AccessPoemException {
    setDefaultcanwrite(raw == null ? null : 
        getPoemDatabaseTables().getCapabilityTable().getCapabilityObject(raw));
  }


 /**
  * Retrieves the <code>Defaultcanwrite</code> object referred to.
  *  
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer read access rights 
  * @throws NoSuchRowPoemException  
  *         if the <code>Persistent</code> has yet to be allocated a TROID 
  * @return the <code>Defaultcanwrite</code> as a <code>Capability</code> 
  */
  public Capability getDefaultcanwrite()
      throws AccessPoemException, NoSuchRowPoemException {
    Integer troid = getDefaultcanwriteTroid();
    return troid == null ? null :
        getPoemDatabaseTables().getCapabilityTable().getCapabilityObject(troid);
  }


 /**
  * Set the Defaultcanwrite.
  * 
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @param cooked  a validated <code>Capability</code>
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights 
  */
  public void setDefaultcanwrite(Capability cooked)
      throws AccessPoemException {
    _getTableInfoTable().
      getDefaultcanwriteColumn().
        getType().assertValidCooked(cooked);
    writeLock();
    if (cooked == null)
      setDefaultcanwrite_unsafe(null);
    else {
      cooked.existenceLock();
      setDefaultcanwrite_unsafe(cooked.troid());
    }
  }


 /**
  * Retrieves the <code>Defaultcanwrite</code> value as a <code>Field</code>
  * from this <code>tableInfo</code> <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @return the Integer defaultcanwrite
  */
  public Field<Integer> getDefaultcanwriteField() throws AccessPoemException {
    Column<Integer> c = _getTableInfoTable().getDefaultcanwriteColumn();
    return new Field<Integer>((Integer)c.getRaw(this), c);
  }


 /**
  * Retrieves the <code>Defaultcandelete</code> value, without locking, 
  * for this <code>tableInfo</code> <code>Persistent</code>.
  *
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @return the Integer defaultcandelete
  */
  public Integer getDefaultcandelete_unsafe() {
    return defaultcandelete;
  }


 /**
  * Sets the <code>Defaultcandelete</code> value directly, without checking, 
  * for this tableInfo <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @param cooked  the pre-validated value to set
  */
  public void setDefaultcandelete_unsafe(Integer cooked) {
    defaultcandelete = cooked;
  }

 /**
  * Retrieves the Table Row Object ID. 
  *
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer read access rights 
  * @return the TROID as an <code>Integer</code> 
  */

  public Integer getDefaultcandeleteTroid()
      throws AccessPoemException {
    readLock();
    return getDefaultcandelete_unsafe();
  }


 /**
  * Sets the Table Row Object ID. 
  * 
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @param raw  a Table Row Object Id 
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  */
  public void setDefaultcandeleteTroid(Integer raw)
      throws AccessPoemException {
    setDefaultcandelete(raw == null ? null : 
        getPoemDatabaseTables().getCapabilityTable().getCapabilityObject(raw));
  }


 /**
  * Retrieves the <code>Defaultcandelete</code> object referred to.
  *  
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer read access rights 
  * @throws NoSuchRowPoemException  
  *         if the <code>Persistent</code> has yet to be allocated a TROID 
  * @return the <code>Defaultcandelete</code> as a <code>Capability</code> 
  */
  public Capability getDefaultcandelete()
      throws AccessPoemException, NoSuchRowPoemException {
    Integer troid = getDefaultcandeleteTroid();
    return troid == null ? null :
        getPoemDatabaseTables().getCapabilityTable().getCapabilityObject(troid);
  }


 /**
  * Set the Defaultcandelete.
  * 
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @param cooked  a validated <code>Capability</code>
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights 
  */
  public void setDefaultcandelete(Capability cooked)
      throws AccessPoemException {
    _getTableInfoTable().
      getDefaultcandeleteColumn().
        getType().assertValidCooked(cooked);
    writeLock();
    if (cooked == null)
      setDefaultcandelete_unsafe(null);
    else {
      cooked.existenceLock();
      setDefaultcandelete_unsafe(cooked.troid());
    }
  }


 /**
  * Retrieves the <code>Defaultcandelete</code> value as a <code>Field</code>
  * from this <code>tableInfo</code> <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @return the Integer defaultcandelete
  */
  public Field<Integer> getDefaultcandeleteField() throws AccessPoemException {
    Column<Integer> c = _getTableInfoTable().getDefaultcandeleteColumn();
    return new Field<Integer>((Integer)c.getRaw(this), c);
  }


 /**
  * Retrieves the <code>Cancreate</code> value, without locking, 
  * for this <code>tableInfo</code> <code>Persistent</code>.
  *
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @return the Integer cancreate
  */
  public Integer getCancreate_unsafe() {
    return cancreate;
  }


 /**
  * Sets the <code>Cancreate</code> value directly, without checking, 
  * for this tableInfo <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @param cooked  the pre-validated value to set
  */
  public void setCancreate_unsafe(Integer cooked) {
    cancreate = cooked;
  }

 /**
  * Retrieves the Table Row Object ID. 
  *
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer read access rights 
  * @return the TROID as an <code>Integer</code> 
  */

  public Integer getCancreateTroid()
      throws AccessPoemException {
    readLock();
    return getCancreate_unsafe();
  }


 /**
  * Sets the Table Row Object ID. 
  * 
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @param raw  a Table Row Object Id 
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  */
  public void setCancreateTroid(Integer raw)
      throws AccessPoemException {
    setCancreate(raw == null ? null : 
        getPoemDatabaseTables().getCapabilityTable().getCapabilityObject(raw));
  }


 /**
  * Retrieves the <code>Cancreate</code> object referred to.
  *  
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer read access rights 
  * @throws NoSuchRowPoemException  
  *         if the <code>Persistent</code> has yet to be allocated a TROID 
  * @return the <code>Cancreate</code> as a <code>Capability</code> 
  */
  public Capability getCancreate()
      throws AccessPoemException, NoSuchRowPoemException {
    Integer troid = getCancreateTroid();
    return troid == null ? null :
        getPoemDatabaseTables().getCapabilityTable().getCapabilityObject(troid);
  }


 /**
  * Set the Cancreate.
  * 
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @param cooked  a validated <code>Capability</code>
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights 
  */
  public void setCancreate(Capability cooked)
      throws AccessPoemException {
    _getTableInfoTable().
      getCancreateColumn().
        getType().assertValidCooked(cooked);
    writeLock();
    if (cooked == null)
      setCancreate_unsafe(null);
    else {
      cooked.existenceLock();
      setCancreate_unsafe(cooked.troid());
    }
  }


 /**
  * Retrieves the <code>Cancreate</code> value as a <code>Field</code>
  * from this <code>tableInfo</code> <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @return the Integer cancreate
  */
  public Field<Integer> getCancreateField() throws AccessPoemException {
    Column<Integer> c = _getTableInfoTable().getCancreateColumn();
    return new Field<Integer>((Integer)c.getRaw(this), c);
  }


 /**
  * Retrieves the <code>Cachelimit</code> value, without locking, 
  * for this <code>tableInfo</code> <code>Persistent</code>.
  *
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @return the Integer cachelimit
  */
  public Integer getCachelimit_unsafe() {
    return cachelimit;
  }


 /**
  * Sets the <code>Cachelimit</code> value directly, without checking, 
  * for this tableInfo <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @param cooked  the pre-validated value to set
  */
  public void setCachelimit_unsafe(Integer cooked) {
    cachelimit = cooked;
  }

 /**
  * Retrieves the Cachelimit value, with locking, for this 
  * <code>tableInfo</code> <code>Persistent</code>.
  * Field description: 
  *   The maximum number of records from the table to keep in the cache 
  * 
  * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights 
  * @return the value of the field <code>Cachelimit</code> for this 
  *         <code>tableInfo</code> <code>Persistent</code>  
  */

  public Integer getCachelimit()
      throws AccessPoemException {
    readLock();
    return getCachelimit_unsafe();
  }


 /**
  * Sets the <code>Cachelimit</code> value, with checking, for this 
  * <code>tableInfo</code> <code>Persistent</code>.
  * Field description: 
  *   The maximum number of records from the table to keep in the cache 
  * 
  * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
  * @param cooked  a validated <code>int</code> 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @throws ValidationPoemException 
  *         if the value is not valid
  */
  public void setCachelimit(Integer cooked)
      throws AccessPoemException, ValidationPoemException {
    _getTableInfoTable().getCachelimitColumn().
      getType().assertValidCooked(cooked);
    writeLock();
    setCachelimit_unsafe(cooked);
  }

 /**
  * Sets the <code>Cachelimit</code> value, with checking, for this 
  * <code>tableInfo</code> <code>Persistent</code>.
  * Field description: 
  *   The maximum number of records from the table to keep in the cache 
  * 
  * 
  * Generated by org.melati.poem.prepro.IntegerFieldDef#generateBaseMethods 
  * @param cooked  a validated <code>int</code>
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @throws ValidationPoemException 
  *         if the value is not valid
  */

  public final void setCachelimit(int cooked)
      throws AccessPoemException, ValidationPoemException {
    setCachelimit(new Integer(cooked));
  }


 /**
  * Retrieves the <code>Cachelimit</code> value as a <code>Field</code>
  * from this <code>tableInfo</code> <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @return the Integer cachelimit
  */
  public Field<Integer> getCachelimitField() throws AccessPoemException {
    Column<Integer> c = _getTableInfoTable().getCachelimitColumn();
    return new Field<Integer>((Integer)c.getRaw(this), c);
  }


 /**
  * Retrieves the <code>Seqcached</code> value, without locking, 
  * for this <code>tableInfo</code> <code>Persistent</code>.
  *
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @return the Boolean seqcached
  */
  public Boolean getSeqcached_unsafe() {
    return seqcached;
  }


 /**
  * Sets the <code>Seqcached</code> value directly, without checking, 
  * for this tableInfo <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @param cooked  the pre-validated value to set
  */
  public void setSeqcached_unsafe(Boolean cooked) {
    seqcached = cooked;
  }

 /**
  * Retrieves the Seqcached value, with locking, for this 
  * <code>tableInfo</code> <code>Persistent</code>.
  * Field description: 
  *   Whether the display sequence for the table's records is cached 
  * 
  * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights 
  * @return the value of the field <code>Seqcached</code> for this 
  *         <code>tableInfo</code> <code>Persistent</code>  
  */

  public Boolean getSeqcached()
      throws AccessPoemException {
    readLock();
    return getSeqcached_unsafe();
  }


 /**
  * Sets the <code>Seqcached</code> value, with checking, for this 
  * <code>tableInfo</code> <code>Persistent</code>.
  * Field description: 
  *   Whether the display sequence for the table's records is cached 
  * 
  * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
  * @param cooked  a validated <code>int</code> 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @throws ValidationPoemException 
  *         if the value is not valid
  */
  public void setSeqcached(Boolean cooked)
      throws AccessPoemException, ValidationPoemException {
    _getTableInfoTable().getSeqcachedColumn().
      getType().assertValidCooked(cooked);
    writeLock();
    setSeqcached_unsafe(cooked);
  }

 /**
  * Sets the <code>Seqcached</code> value, with checking, 
  * from a <code>boolean</code>, for this 
  * <code>tableInfo</code> <code>Persistent</code>.
  * Field description: 
  *   Whether the display sequence for the table's records is cached 
  * 
  * 
  * Generated by org.melati.poem.prepro.BooleanFieldDef#generateBaseMethods 
  * @param cooked  a <code>boolean</code> 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @throws ValidationPoemException 
  *         if the value is not valid
  */

  public final void setSeqcached(boolean cooked)
      throws AccessPoemException, ValidationPoemException {
    setSeqcached(cooked ? Boolean.TRUE : Boolean.FALSE);
  }


 /**
  * Retrieves the <code>Seqcached</code> value as a <code>Field</code>
  * from this <code>tableInfo</code> <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @return the Boolean seqcached
  */
  public Field<Boolean> getSeqcachedField() throws AccessPoemException {
    Column<Boolean> c = _getTableInfoTable().getSeqcachedColumn();
    return new Field<Boolean>((Boolean)c.getRaw(this), c);
  }


 /**
  * Retrieves the <code>Category</code> value, without locking, 
  * for this <code>tableInfo</code> <code>Persistent</code>.
  *
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @return the Integer category
  */
  public Integer getCategory_unsafe() {
    return category;
  }


 /**
  * Sets the <code>Category</code> value directly, without checking, 
  * for this tableInfo <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
  * @param cooked  the pre-validated value to set
  */
  public void setCategory_unsafe(Integer cooked) {
    category = cooked;
  }

 /**
  * Retrieves the Table Row Object ID. 
  *
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer read access rights 
  * @return the TROID as an <code>Integer</code> 
  */

  public Integer getCategoryTroid()
      throws AccessPoemException {
    readLock();
    return getCategory_unsafe();
  }


 /**
  * Sets the Table Row Object ID. 
  * 
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @param raw  a Table Row Object Id 
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  */
  public void setCategoryTroid(Integer raw)
      throws AccessPoemException {
    setCategory(raw == null ? null : 
        getPoemDatabaseTables().getTableCategoryTable().getTableCategoryObject(raw));
  }


 /**
  * Retrieves the <code>Category</code> object referred to.
  *  
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer read access rights 
  * @throws NoSuchRowPoemException  
  *         if the <code>Persistent</code> has yet to be allocated a TROID 
  * @return the <code>Category</code> as a <code>TableCategory</code> 
  */
  public TableCategory getCategory()
      throws AccessPoemException, NoSuchRowPoemException {
    Integer troid = getCategoryTroid();
    return troid == null ? null :
        getPoemDatabaseTables().getTableCategoryTable().getTableCategoryObject(troid);
  }


 /**
  * Set the Category.
  * 
  * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
  * @param cooked  a validated <code>TableCategory</code>
  * @throws AccessPoemException  
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights 
  */
  public void setCategory(TableCategory cooked)
      throws AccessPoemException {
    _getTableInfoTable().
      getCategoryColumn().
        getType().assertValidCooked(cooked);
    writeLock();
    if (cooked == null)
      setCategory_unsafe(null);
    else {
      cooked.existenceLock();
      setCategory_unsafe(cooked.troid());
    }
  }


 /**
  * Retrieves the <code>Category</code> value as a <code>Field</code>
  * from this <code>tableInfo</code> <code>Persistent</code>.
  * 
  * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
  * @throws AccessPoemException 
  *         if the current <code>AccessToken</code> 
  *         does not confer write access rights
  * @return the Integer category
  */
  public Field<Integer> getCategoryField() throws AccessPoemException {
    Column<Integer> c = _getTableInfoTable().getCategoryColumn();
    return new Field<Integer>((Integer)c.getRaw(this), c);
  }

}

