Class SRecordMeta<T extends SRecordInstance>

java.lang.Object
simpleorm.dataset.SRecordMeta<T>
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
RecordMeta

public class SRecordMeta<T extends SRecordInstance> extends Object implements Serializable
Defines the meta data for a SRecordInstance such as the table name. Details about each field are stored in SFieldMeta refered to from this object.

Thus Instance Variables of this class only describe the definition of a Record, not instances or connections.

This class also contains routines to create new SRecordInstancees such as #findOrCreate and #select. (This packaging makes the calls shorter than using a static method on SRecordInstance.)

See Also:
  • Field Details

    • quoteName

      public boolean quoteName
  • Constructor Details

    • SRecordMeta

      public SRecordMeta(Class<T> userClass, String tableName)
      Create a new table/record definition.

      Parameters:
      userClass - an instance of the class this RecordMeta holds the metadata for (ie T )
      tableName - The name of the SQL table that will be associated with this record.
  • Method Details

    • readResolve

      protected Object readResolve() throws ObjectStreamException
      SRecordMeta is like a singleton, in that only one instance of SRecordMeta must exist in the VM for a specific table. This is a special method used during de-serialization to determine if the object de-serialized should be substituted. This method is implemented to return the SRecordMeta object for the appropriate user Class that already exists.

      (This method is reflected into and magically called by serialization.)

      Throws:
      ObjectStreamException
    • getFieldMetas

      public List<SFieldMeta> getFieldMetas()
      Returns:
      the an unmodifiable view of the field metas (both Scalar and References)
    • fieldsForMode

      public SFieldScalar[] fieldsForMode(SSelectMode selectMode)
      Returns SFieldMetas that are updated to select given SelectMode.
    • getPrimaryKeys

      public SFieldScalar[] getPrimaryKeys()
      Get the scalar primary key fields meta for this record meta
      Returns:
      a readonly list of the primary key Fields meta of the record meta
    • getQueriedScalarFields

      public SFieldScalar[] getQueriedScalarFields()
    • getAllScalarFields

      public SFieldScalar[] getAllScalarFields()
    • getDescriptiveScalarFields

      public SFieldScalar[] getDescriptiveScalarFields()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • toLongerString

      public String toLongerString()
      Displays all columns
    • getUserClass

      public Class<T> getUserClass()
    • getFieldNames

      public Set<String> getFieldNames()
      All the field names. use getField to look up the actual field.
    • getField

      public SFieldMeta getField(String fieldName)
      Returns the field by its name, or null if not found.
    • getTableName

      public String getTableName()
    • setQuoted

      public SRecordMeta setQuoted(boolean quote)
      Causes the generated sql to quote ("") the table name. Makes it case sensitive, allows reserved words and odd characters. Beware that Postgresql (only) defaults to lower case, not upper case.
    • putUserProperty

      public SRecordMeta putUserProperty(Object key, Object value)
    • getUserProperty

      public <T> T getUserProperty(Object key)
    • getUserProperties

      public Map getUserProperties()