Package simpleorm.dataset
Class SRecordMeta<T extends SRecordInstance>
- java.lang.Object
-
- simpleorm.dataset.SRecordMeta<T>
-
- All Implemented Interfaces:
java.io.Serializable
- Direct Known Subclasses:
RecordMeta
public class SRecordMeta<T extends SRecordInstance> extends java.lang.Object implements java.io.Serializable
Defines the meta data for aSRecordInstance
such as the table name. Details about each field are stored inSFieldMeta
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
SRecordInstance
es such as#findOrCreate
and#select
. (This packaging makes the calls shorter than using a static method on SRecordInstance.)- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description boolean
quoteName
-
Constructor Summary
Constructors Constructor Description SRecordMeta(java.lang.Class<T> userClass, java.lang.String tableName)
Create a new table/record definition.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SFieldScalar[]
fieldsForMode(SSelectMode selectMode)
Returns SFieldMetas that are updated to select given SelectMode.SFieldScalar[]
getAllScalarFields()
SFieldScalar[]
getDescriptiveScalarFields()
SFieldMeta
getField(java.lang.String fieldName)
Returns the field by its name, or null if not found.java.util.List<SFieldMeta>
getFieldMetas()
java.util.Set<java.lang.String>
getFieldNames()
All the field names.SFieldScalar[]
getPrimaryKeys()
Get the scalar primary key fields meta for this record metaSFieldScalar[]
getQueriedScalarFields()
java.lang.String
getTableName()
java.lang.Class<T>
getUserClass()
java.util.Map
getUserProperties()
<T> T
getUserProperty(java.lang.Object key)
SRecordMeta
putUserProperty(java.lang.Object key, java.lang.Object value)
protected java.lang.Object
readResolve()
SRecordMeta is like a singleton, in that only one instance of SRecordMeta must exist in the VM for a specific table.SRecordMeta
setQuoted(boolean quote)
Causes the generated sql to quote ("") the table name.java.lang.String
toLongerString()
Displays all columnsjava.lang.String
toString()
-
-
-
Constructor Detail
-
SRecordMeta
public SRecordMeta(java.lang.Class<T> userClass, java.lang.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 Detail
-
readResolve
protected java.lang.Object readResolve() throws java.io.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:
java.io.ObjectStreamException
-
getFieldMetas
public java.util.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 java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
toLongerString
public java.lang.String toLongerString()
Displays all columns
-
getUserClass
public java.lang.Class<T> getUserClass()
-
getFieldNames
public java.util.Set<java.lang.String> getFieldNames()
All the field names. use getField to look up the actual field.
-
getField
public SFieldMeta getField(java.lang.String fieldName)
Returns the field by its name, or null if not found.
-
getTableName
public java.lang.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(java.lang.Object key, java.lang.Object value)
-
getUserProperty
public <T> T getUserProperty(java.lang.Object key)
-
getUserProperties
public java.util.Map getUserProperties()
-
-