net.sf.dc.core.objects
Class DCObject

java.lang.Object
  extended bynet.sf.dc.core.objects.DCObject
Direct Known Subclasses:
Movie, Music, Software, SoftwareCategory

public abstract class DCObject
extends java.lang.Object

Base class for all Data Crow objects. Here the fields, values and required fields are stored. Checks are done to garantee uniqueness and validity of the records. Objects which extend this class need to override the save and load methods

Since:
1.3
Version:
DC0.50
Author:
Robert-Jan van der Waals

Field Summary
static int _ID
           
protected static boolean alwaysGenerateID
           
protected  boolean bValidation
          Indicates of the data should be checked for validity
protected  int module
           
protected  java.lang.String sTableName
           
protected  int uiRowNumber
           
protected  java.util.Vector values
           
protected static WorkFlow wf
           
 
Constructor Summary
protected DCObject()
          Creates an empty data crow object
 
Method Summary
 boolean checkIntegrity(boolean update)
          Checks if the values are unique and if all the required fields have been filled
 void clearValues()
          Sets all values to empty
 void delete(RequestorCollection requestors)
           
 java.lang.String[] getChangedFieldNames()
          Returns the labels of the fields that have been marked as changed
 java.lang.Object[] getChangedFieldValues()
          Returns the values of the fields that have been marked as changed
 java.lang.String[] getCreateStatements()
          Returns the create statement for the table for this object
 java.lang.String getDatabaseFieldName(int index)
          Returns the database field name for the given field
 java.lang.String[] getDatabaseFieldNames()
          Returns all the database field names
 DCFieldDefinition getField(int index)
          Returns the field definition object for the given field index
 int[] getFieldIndices()
          Returns all field indices
 DCFieldDefinition[] getFields()
          Returns all the field definitions.
 int getFieldType(int index)
          Returns the UI field type for the given field
 int[] getFieldTypes()
          Returns all the UI field types
 int[] getHiddenFields()
          Retrieves all currently, to the user, hidden fields
abstract  javax.swing.ImageIcon getIcon()
          Returns the icon for this object.
 java.lang.String getID()
          Retrieves the ID for this data crow object
 java.lang.String getLabel(int index)
          Retrieves the label for the given field
 java.lang.String[] getLabels()
          Retrieves all field labels
 int getMaxFieldLength(int index)
          Retrieves the maximum length for the given field
 int[] getMaxFieldLengths()
          Retrieves the maximum length(s) for all the fields
 DCModule getModule()
          Returns the module to which this object belongs.
 int[] getNotSearchableFields()
          Retrieves all fields on which a search cannot be performed.
 int[] getReadOnlyFields()
          Returns the fields that are uneditable to the user
 int[] getRequiredFields()
          Returns the required field names
 boolean getSilence()
          Indicates if queries should display output
 java.lang.String getTableName()
          Returns the table name for this data crow object
 java.lang.String getUnfilledRequiredFields()
          Checks to see whether al required fields have been filled
 java.lang.Object getValue(int index)
          Returns the value of a field
 java.lang.Object[] getValues()
          Returns all values
 int[] getVisibleFields()
          Retrieves the indices of the, for the user visible fields
 java.lang.Object[] getVisibleValues()
          Retrieves the values for the visible fields
protected abstract  void initializeSettings()
          Initialize all user settings on this data crow object
 boolean isChanged()
          Indicates if changes have been made to this data crow object.
 boolean isChanged(int index)
          Indicates if changes have been made to the specified value.
 boolean isHidden(int index)
          Indicates if the given field is visible to the user or not
 boolean isRequired(int index)
          Indicates whether the given field is required or not
 boolean isUnique(DCObject o, boolean bUpdateQuery)
          Checks to see whether the record already exists or not
 void load(QueryOptions options, RequestorCollection requestors)
          Loads records.
 void saveNew(RequestorCollection requestors)
          Inserts a new record.
 void saveUpdate(RequestorCollection requestors)
          Updates a record.
static void setAlwaysGenerateID(boolean alwaysGenerateID)
          Deprecated.  
 void setChanged(int index, boolean b)
          Marks the specified value as changed (or not) This means that the value will be considered for an insert or update to the database
protected abstract  void setModuleIndex()
          Sets the module index / sets the ownership of this data crow object
 void setSilence(boolean silence)
          Disables the output of this query to the log and log screen.
protected abstract  void setTableName()
          Sets the database table name for this object
 void setUIRowNumber(int row)
           
 void setValidation(boolean validate)
          Specifies if values should be validated
 void setValue(int index, java.lang.Object value)
          Sets a value for the given field
 void setValues(java.lang.Object[] row)
          Sets a complete set of values on the object calls setValue for each individual value
 QueryCondition toQueryCondition(boolean select)
          Creates a query condition for select statements by using the field names and their values
 void undoChanges()
          Sets all fields to 'unchanged'.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

uiRowNumber

protected int uiRowNumber

module

protected int module

values

protected java.util.Vector values

bValidation

protected boolean bValidation
Indicates of the data should be checked for validity


alwaysGenerateID

protected static boolean alwaysGenerateID

wf

protected static final WorkFlow wf

sTableName

protected java.lang.String sTableName

_ID

public static final int _ID
See Also:
Constant Field Values
Constructor Detail

DCObject

protected DCObject()
Creates an empty data crow object

Method Detail

setValues

public void setValues(java.lang.Object[] row)
Sets a complete set of values on the object calls setValue for each individual value

See Also:
setValue(int, Object)

setModuleIndex

protected abstract void setModuleIndex()
Sets the module index / sets the ownership of this data crow object


initializeSettings

protected abstract void initializeSettings()
Initialize all user settings on this data crow object


setTableName

protected abstract void setTableName()
Sets the database table name for this object


getIcon

public abstract javax.swing.ImageIcon getIcon()
Returns the icon for this object. Example; Software Categories has an icon


getModule

public DCModule getModule()
Returns the module to which this object belongs. Shortcut for getting the module object instead of the module index.


getFields

public DCFieldDefinition[] getFields()
Returns all the field definitions. Shortcut; normally you would first have to ask for the module and then ask to the module which field definitions it contains.


undoChanges

public void undoChanges()
Sets all fields to 'unchanged'. This garantees that none of the values will be saved to the database when performing an update or insert. All 'setValue' calls are up to this moment are discarded


isChanged

public boolean isChanged()
Indicates if changes have been made to this data crow object. A field is indicated as beign changed when the user or system has performed a set value.


isChanged

public boolean isChanged(int index)
Indicates if changes have been made to the specified value. A field is indicated as beign changed when the user or system has performed a set value.

Parameters:
index - the value index to check on

setChanged

public void setChanged(int index,
                       boolean b)
Marks the specified value as changed (or not) This means that the value will be considered for an insert or update to the database

Parameters:
index - the value index to mark as changed / unchanged
b - changed y/n

isHidden

public boolean isHidden(int index)
Indicates if the given field is visible to the user or not

Parameters:
index - field index

isRequired

public boolean isRequired(int index)
Indicates whether the given field is required or not

Parameters:
index - field index

getHiddenFields

public int[] getHiddenFields()
Retrieves all currently, to the user, hidden fields


getID

public java.lang.String getID()
Retrieves the ID for this data crow object


getNotSearchableFields

public int[] getNotSearchableFields()
Retrieves all fields on which a search cannot be performed. Example; a user can not perform a search on a picture field


getVisibleFields

public int[] getVisibleFields()
Retrieves the indices of the, for the user visible fields


getVisibleValues

public java.lang.Object[] getVisibleValues()
Retrieves the values for the visible fields


setAlwaysGenerateID

public static void setAlwaysGenerateID(boolean alwaysGenerateID)
Deprecated.  

Hack: always generate a new ID. Only used for upgrades of old CD Library database. Otherwise: don't touch

Parameters:
alwaysGenerateID -

setValue

public void setValue(int index,
                     java.lang.Object value)
Sets a value for the given field


clearValues

public void clearValues()
Sets all values to empty


getLabels

public java.lang.String[] getLabels()
Retrieves all field labels


getTableName

public java.lang.String getTableName()
Returns the table name for this data crow object


getLabel

public java.lang.String getLabel(int index)
Retrieves the label for the given field

Parameters:
index - field index

getMaxFieldLengths

public int[] getMaxFieldLengths()
Retrieves the maximum length(s) for all the fields


getMaxFieldLength

public int getMaxFieldLength(int index)
Retrieves the maximum length for the given field

Parameters:
index - field index

getValue

public java.lang.Object getValue(int index)
Returns the value of a field

Returns:
(String) field value

getValues

public java.lang.Object[] getValues()
Returns all values

Returns:
value array

setUIRowNumber

public void setUIRowNumber(int row)

getFieldTypes

public int[] getFieldTypes()
Returns all the UI field types

Returns:
UI field type indices
See Also:
ComponentFactory

getFieldType

public int getFieldType(int index)
Returns the UI field type for the given field

Returns:
UI field type index
See Also:
ComponentFactory

getDatabaseFieldNames

public java.lang.String[] getDatabaseFieldNames()
Returns all the database field names

Returns:
database field names array

getDatabaseFieldName

public java.lang.String getDatabaseFieldName(int index)
Returns the database field name for the given field

Parameters:
index - field index

getRequiredFields

public int[] getRequiredFields()
Returns the required field names


getReadOnlyFields

public int[] getReadOnlyFields()
Returns the fields that are uneditable to the user


saveNew

public void saveNew(RequestorCollection requestors)
Inserts a new record. Requests to the UI can be passed.

Parameters:
requestors - collection of requests (can be null)

saveUpdate

public void saveUpdate(RequestorCollection requestors)
Updates a record. Requests to the UI can be passed.

Parameters:
requestors - collection of requests (can be null)

delete

public void delete(RequestorCollection requestors)

load

public void load(QueryOptions options,
                 RequestorCollection requestors)
Loads records. Requests to the UI can be passed.

Parameters:
options - query options, can be null
requestors - collection of requests (can be null)

setSilence

public void setSilence(boolean silence)
Disables the output of this query to the log and log screen. Also disables showing messageboxes when a query was success- fully executed

Parameters:
silence - show output y/n

getSilence

public boolean getSilence()
Indicates if queries should display output


setValidation

public void setValidation(boolean validate)
Specifies if values should be validated

Parameters:
validate - validate values y/n

toQueryCondition

public QueryCondition toQueryCondition(boolean select)
Creates a query condition for select statements by using the field names and their values

Parameters:
select - indicates if this is about a select query

getField

public DCFieldDefinition getField(int index)
Returns the field definition object for the given field index

Parameters:
index - field index

getChangedFieldNames

public java.lang.String[] getChangedFieldNames()
Returns the labels of the fields that have been marked as changed


getChangedFieldValues

public java.lang.Object[] getChangedFieldValues()
Returns the values of the fields that have been marked as changed


checkIntegrity

public boolean checkIntegrity(boolean update)
Checks if the values are unique and if all the required fields have been filled

Parameters:
update - indicates if the values are new or existing

getCreateStatements

public java.lang.String[] getCreateStatements()
Returns the create statement for the table for this object


isUnique

public boolean isUnique(DCObject o,
                        boolean bUpdateQuery)
Checks to see whether the record already exists or not

Parameters:
o - object to be checked
bUpdateQuery - indicates whether the object is to be updated or if it is a new object

getUnfilledRequiredFields

public java.lang.String getUnfilledRequiredFields()
Checks to see whether al required fields have been filled


getFieldIndices

public int[] getFieldIndices()
Returns all field indices