Commit 0aac3585 by Nilu Committed by Harsh Shah

Added Assessment Criteria and Culture Criteria Template BOs

parent 160bdaca
......@@ -11,9 +11,12 @@
<column name="name" type="String" nullable="false" length="200"/>
<column name="importance" type="String" nullable="false" length="200"/>
<column name="assessment_type" type="String" nullable="false" length="200"/>
<column name="job_id" type="Long" length="11" nullable="false"/>
<column name="job_id" type="Long" length="11" nullable="true"/>
<column name="template_id" type="Long" length="11" nullable="true"/>
</NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_assessment_criteria" indexName="idx_tl_assessment_criteria_job_id" isUnique="false"><column name="job_id"/></NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_assessment_criteria" indexName="idx_tl_assessment_criteria_template_id" isUnique="false"><column name="template_id"/></NODE>
</NODE></OBJECTS>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!-- @AutoRun -->
<OBJECTS name="" xmlns:oneit="http://www.1iT.com.au"><NODE name="Script" factory="Vector">
<NODE name="DDL" factory="Participant" class="oneit.sql.transfer.DefineTableOperation">
<tableName factory="String">tl_assessment_template</tableName>
<column name="object_id" type="Long" nullable="false" length="11"/>
<column name="object_last_updated_date" type="Date" nullable="false" length="22"/>
<column name="object_created_date" type="Date" nullable="false" length="22"/>
<column name="template_name" type="String" nullable="false" length="100"/>
<column name="user_id" type="Long" length="11" nullable="true"/>
</NODE>
</NODE></OBJECTS>
\ No newline at end of file
......@@ -11,9 +11,12 @@
<column name="importance" type="String" nullable="false" length="200"/>
<column name="culture_element_id" type="Long" length="11" nullable="false"/>
<column name="culture_element_rating_id" type="Long" length="11" nullable="false"/>
<column name="job_id" type="Long" length="11" nullable="false"/>
<column name="job_id" type="Long" length="11" nullable="true"/>
<column name="template_id" type="Long" length="11" nullable="true"/>
</NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_culture_criteria" indexName="idx_tl_culture_criteria_job_id" isUnique="false"><column name="job_id"/></NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_culture_criteria" indexName="idx_tl_culture_criteria_template_id" isUnique="false"><column name="template_id"/></NODE>
</NODE></OBJECTS>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!-- @AutoRun -->
<OBJECTS name="" xmlns:oneit="http://www.1iT.com.au"><NODE name="Script" factory="Vector">
<NODE name="DDL" factory="Participant" class="oneit.sql.transfer.DefineTableOperation">
<tableName factory="String">tl_culture_template</tableName>
<column name="object_id" type="Long" nullable="false" length="11"/>
<column name="object_last_updated_date" type="Date" nullable="false" length="22"/>
<column name="object_created_date" type="Date" nullable="false" length="22"/>
<column name="template_name" type="String" nullable="false" length="100"/>
<column name="user_id" type="Long" length="11" nullable="true"/>
</NODE>
</NODE></OBJECTS>
\ No newline at end of file
......@@ -11,7 +11,8 @@ CREATE TABLE tl_assessment_criteria (
name varchar(200) NOT NULL,
importance varchar(200) NOT NULL,
assessment_type varchar(200) NOT NULL,
job_id numeric(12) NOT NULL
job_id numeric(12) NULL,
template_id numeric(12) NULL
);
......@@ -26,3 +27,6 @@ ALTER TABLE tl_assessment_criteria ADD
CREATE INDEX idx_tl_assessment_criteria_job_id
ON tl_assessment_criteria (job_id);
CREATE INDEX idx_tl_assessment_criteria_template_id
ON tl_assessment_criteria (template_id);
-- DROP TABLE tl_assessment_template;
CREATE TABLE tl_assessment_template (
object_id int NOT NULL ,
object_last_updated_date datetime DEFAULT getdate() NOT NULL ,
object_created_date datetime DEFAULT getdate() NOT NULL
,
template_name varchar(100) NOT NULL,
user_id numeric(12) NULL
);
ALTER TABLE tl_assessment_template ADD
CONSTRAINT PK_tl_assessment_template PRIMARY KEY
(
object_id
) ;
\ No newline at end of file
......@@ -11,7 +11,8 @@ CREATE TABLE tl_culture_criteria (
importance varchar(200) NOT NULL,
culture_element_id numeric(12) NOT NULL,
culture_element_rating_id numeric(12) NOT NULL,
job_id numeric(12) NOT NULL
job_id numeric(12) NULL,
template_id numeric(12) NULL
);
......@@ -26,3 +27,6 @@ ALTER TABLE tl_culture_criteria ADD
CREATE INDEX idx_tl_culture_criteria_job_id
ON tl_culture_criteria (job_id);
CREATE INDEX idx_tl_culture_criteria_template_id
ON tl_culture_criteria (template_id);
-- DROP TABLE tl_culture_template;
CREATE TABLE tl_culture_template (
object_id int NOT NULL ,
object_last_updated_date datetime DEFAULT getdate() NOT NULL ,
object_created_date datetime DEFAULT getdate() NOT NULL
,
template_name varchar(100) NOT NULL,
user_id numeric(12) NULL
);
ALTER TABLE tl_culture_template ADD
CONSTRAINT PK_tl_culture_template PRIMARY KEY
(
object_id
) ;
\ No newline at end of file
......@@ -12,7 +12,8 @@ CREATE TABLE tl_assessment_criteria (
name varchar2(200) NOT NULL,
importance varchar2(200) NOT NULL,
assessment_type varchar2(200) NOT NULL,
job_id number(12) NOT NULL
job_id number(12) NULL,
template_id number(12) NULL
);
......@@ -27,3 +28,6 @@ ALTER TABLE tl_assessment_criteria ADD
CREATE INDEX idx_tl_assessment_criteria_job_id
ON tl_assessment_criteria (job_id);
CREATE INDEX idx_tl_assessment_criteria_template_id
ON tl_assessment_criteria (template_id);
-- DROP TABLE tl_assessment_template;
CREATE TABLE tl_assessment_template (
object_id number(12) NOT NULL ,
object_last_updated_date date DEFAULT SYSDATE NOT NULL ,
object_created_date date DEFAULT SYSDATE NOT NULL
,
template_name varchar2(100) NOT NULL,
user_id number(12) NULL
);
ALTER TABLE tl_assessment_template ADD
CONSTRAINT PK_tl_assessment_template PRIMARY KEY
(
object_id
) ;
\ No newline at end of file
......@@ -12,7 +12,8 @@ CREATE TABLE tl_culture_criteria (
importance varchar2(200) NOT NULL,
culture_element_id number(12) NOT NULL,
culture_element_rating_id number(12) NOT NULL,
job_id number(12) NOT NULL
job_id number(12) NULL,
template_id number(12) NULL
);
......@@ -27,3 +28,6 @@ ALTER TABLE tl_culture_criteria ADD
CREATE INDEX idx_tl_culture_criteria_job_id
ON tl_culture_criteria (job_id);
CREATE INDEX idx_tl_culture_criteria_template_id
ON tl_culture_criteria (template_id);
-- DROP TABLE tl_culture_template;
CREATE TABLE tl_culture_template (
object_id number(12) NOT NULL ,
object_last_updated_date date DEFAULT SYSDATE NOT NULL ,
object_created_date date DEFAULT SYSDATE NOT NULL
,
template_name varchar2(100) NOT NULL,
user_id number(12) NULL
);
ALTER TABLE tl_culture_template ADD
CONSTRAINT PK_tl_culture_template PRIMARY KEY
(
object_id
) ;
\ No newline at end of file
......@@ -12,7 +12,8 @@ CREATE TABLE tl_assessment_criteria (
name varchar(200) NOT NULL,
importance varchar(200) NOT NULL,
assessment_type varchar(200) NOT NULL,
job_id numeric(12) NOT NULL
job_id numeric(12) NULL,
template_id numeric(12) NULL
);
......@@ -27,3 +28,6 @@ ALTER TABLE tl_assessment_criteria ADD
CREATE INDEX idx_tl_assessment_criteria_job_id
ON tl_assessment_criteria (job_id);
CREATE INDEX idx_tl_assessment_criteria_template_id
ON tl_assessment_criteria (template_id);
-- @AutoRun
-- drop table tl_assessment_template;
CREATE TABLE tl_assessment_template (
object_id numeric(12) NOT NULL ,
object_last_updated_date timestamp DEFAULT NOW() NOT NULL ,
object_created_date timestamp DEFAULT NOW() NOT NULL
,
template_name varchar(100) NOT NULL,
user_id numeric(12) NULL
);
ALTER TABLE tl_assessment_template ADD
CONSTRAINT pk_tl_assessment_template PRIMARY KEY
(
object_id
) ;
\ No newline at end of file
......@@ -12,7 +12,8 @@ CREATE TABLE tl_culture_criteria (
importance varchar(200) NOT NULL,
culture_element_id numeric(12) NOT NULL,
culture_element_rating_id numeric(12) NOT NULL,
job_id numeric(12) NOT NULL
job_id numeric(12) NULL,
template_id numeric(12) NULL
);
......@@ -27,3 +28,6 @@ ALTER TABLE tl_culture_criteria ADD
CREATE INDEX idx_tl_culture_criteria_job_id
ON tl_culture_criteria (job_id);
CREATE INDEX idx_tl_culture_criteria_template_id
ON tl_culture_criteria (template_id);
-- @AutoRun
-- drop table tl_culture_template;
CREATE TABLE tl_culture_template (
object_id numeric(12) NOT NULL ,
object_last_updated_date timestamp DEFAULT NOW() NOT NULL ,
object_created_date timestamp DEFAULT NOW() NOT NULL
,
template_name varchar(100) NOT NULL,
user_id numeric(12) NULL
);
ALTER TABLE tl_culture_template ADD
CONSTRAINT pk_tl_culture_template PRIMARY KEY
(
object_id
) ;
\ No newline at end of file
......@@ -13,7 +13,8 @@
<ATTRIB name="Importance" type="Importance" dbcol="importance" attribHelper="EnumeratedAttributeHelper" mandatory="true" defaultValue="Importance.ESSENTIAL"/>
<ATTRIB name="CriteriaType" type="CriteriaType" dbcol="assessment_type" attribHelper="EnumeratedAttributeHelper" mandatory="true"/>
<SINGLEREFERENCE name="Job" type="Job" dbcol="job_id" mandatory="true" backreferenceName="AssessmentCriterias"/>
<SINGLEREFERENCE name="Job" type="Job" dbcol="job_id" backreferenceName="AssessmentCriterias"/>
<SINGLEREFERENCE name="Template" type="AssessmentCriteriaTemplate" dbcol="template_id" backreferenceName="AssessmentCriterias"/>
</TABLE>
......
......@@ -48,7 +48,7 @@ public class AssessmentCriteriaPersistenceMgr extends ObjectPersistenceMgr
}
private String SELECT_COLUMNS = "{PREFIX}tl_assessment_criteria.object_id as id, {PREFIX}tl_assessment_criteria.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_assessment_criteria.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_assessment_criteria.name, {PREFIX}tl_assessment_criteria.importance, {PREFIX}tl_assessment_criteria.assessment_type, {PREFIX}tl_assessment_criteria.job_id, 1 AS commasafe ";
private String SELECT_COLUMNS = "{PREFIX}tl_assessment_criteria.object_id as id, {PREFIX}tl_assessment_criteria.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_assessment_criteria.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_assessment_criteria.name, {PREFIX}tl_assessment_criteria.importance, {PREFIX}tl_assessment_criteria.assessment_type, {PREFIX}tl_assessment_criteria.job_id, {PREFIX}tl_assessment_criteria.template_id, 1 AS commasafe ";
private String SELECT_JOINS = "";
public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
......@@ -102,7 +102,8 @@ public class AssessmentCriteriaPersistenceMgr extends ObjectPersistenceMgr
!tl_assessment_criteriaPSet.containsAttrib(AssessmentCriteria.FIELD_Name)||
!tl_assessment_criteriaPSet.containsAttrib(AssessmentCriteria.FIELD_Importance)||
!tl_assessment_criteriaPSet.containsAttrib(AssessmentCriteria.FIELD_CriteriaType)||
!tl_assessment_criteriaPSet.containsAttrib(AssessmentCriteria.SINGLEREFERENCE_Job))
!tl_assessment_criteriaPSet.containsAttrib(AssessmentCriteria.SINGLEREFERENCE_Job)||
!tl_assessment_criteriaPSet.containsAttrib(AssessmentCriteria.SINGLEREFERENCE_Template))
{
// We will need to retrieve it
idsToFetch.add (id.longValue());
......@@ -158,6 +159,16 @@ public class AssessmentCriteriaPersistenceMgr extends ObjectPersistenceMgr
return results;
}
else if (refName.equals (AssessmentCriteria.SINGLEREFERENCE_Template))
{
String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_assessment_criteria " +
"WHERE " + SELECT_JOINS + "template_id = ?";
BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, new Object[] { _objectID.longID () }, null, false);
return results;
}
else
{
throw new IllegalArgumentException ("Illegal reference type:" + refName);
......@@ -182,10 +193,10 @@ public class AssessmentCriteriaPersistenceMgr extends ObjectPersistenceMgr
{
int rowsUpdated = executeStatement (sqlMgr,
"UPDATE {PREFIX}tl_assessment_criteria " +
"SET name = ?, importance = ?, assessment_type = ?, job_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"SET name = ?, importance = ?, assessment_type = ?, job_id = ? , template_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"WHERE tl_assessment_criteria.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ",
CollectionUtils.listEntry (HELPER_Name.getForSQL(dummyName, tl_assessment_criteriaPSet.getAttrib (AssessmentCriteria.FIELD_Name))).listEntry (HELPER_Importance.getForSQL(dummyImportance, tl_assessment_criteriaPSet.getAttrib (AssessmentCriteria.FIELD_Importance))).listEntry (HELPER_CriteriaType.getForSQL(dummyCriteriaType, tl_assessment_criteriaPSet.getAttrib (AssessmentCriteria.FIELD_CriteriaType))).listEntry (SQLManager.CheckNull((Long)(tl_assessment_criteriaPSet.getAttrib (AssessmentCriteria.SINGLEREFERENCE_Job)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
CollectionUtils.listEntry (HELPER_Name.getForSQL(dummyName, tl_assessment_criteriaPSet.getAttrib (AssessmentCriteria.FIELD_Name))).listEntry (HELPER_Importance.getForSQL(dummyImportance, tl_assessment_criteriaPSet.getAttrib (AssessmentCriteria.FIELD_Importance))).listEntry (HELPER_CriteriaType.getForSQL(dummyCriteriaType, tl_assessment_criteriaPSet.getAttrib (AssessmentCriteria.FIELD_CriteriaType))).listEntry (SQLManager.CheckNull((Long)(tl_assessment_criteriaPSet.getAttrib (AssessmentCriteria.SINGLEREFERENCE_Job)))).listEntry (SQLManager.CheckNull((Long)(tl_assessment_criteriaPSet.getAttrib (AssessmentCriteria.SINGLEREFERENCE_Template)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
if (rowsUpdated != 1)
{
......@@ -446,6 +457,7 @@ public class AssessmentCriteriaPersistenceMgr extends ObjectPersistenceMgr
tl_assessment_criteriaPSet.setAttrib(AssessmentCriteria.FIELD_CriteriaType, HELPER_CriteriaType.getFromRS(dummyCriteriaType, r, "assessment_type"));
tl_assessment_criteriaPSet.setAttrib(AssessmentCriteria.SINGLEREFERENCE_Job, r.getObject ("job_id"));
tl_assessment_criteriaPSet.setAttrib(AssessmentCriteria.SINGLEREFERENCE_Template, r.getObject ("template_id"));
}
......@@ -462,10 +474,10 @@ public class AssessmentCriteriaPersistenceMgr extends ObjectPersistenceMgr
{
executeStatement (sqlMgr,
"INSERT INTO {PREFIX}tl_assessment_criteria " +
" (name, importance, assessment_type, job_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " +
" (name, importance, assessment_type, job_id, template_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " +
"VALUES " +
" (?, ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")",
CollectionUtils.listEntry (HELPER_Name.getForSQL(dummyName, tl_assessment_criteriaPSet.getAttrib (AssessmentCriteria.FIELD_Name))).listEntry (HELPER_Importance.getForSQL(dummyImportance, tl_assessment_criteriaPSet.getAttrib (AssessmentCriteria.FIELD_Importance))).listEntry (HELPER_CriteriaType.getForSQL(dummyCriteriaType, tl_assessment_criteriaPSet.getAttrib (AssessmentCriteria.FIELD_CriteriaType))) .listEntry (SQLManager.CheckNull((Long)(tl_assessment_criteriaPSet.getAttrib (AssessmentCriteria.SINGLEREFERENCE_Job)))) .listEntry (objectID.longID ()).toList().toArray());
" (?, ?, ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")",
CollectionUtils.listEntry (HELPER_Name.getForSQL(dummyName, tl_assessment_criteriaPSet.getAttrib (AssessmentCriteria.FIELD_Name))).listEntry (HELPER_Importance.getForSQL(dummyImportance, tl_assessment_criteriaPSet.getAttrib (AssessmentCriteria.FIELD_Importance))).listEntry (HELPER_CriteriaType.getForSQL(dummyCriteriaType, tl_assessment_criteriaPSet.getAttrib (AssessmentCriteria.FIELD_CriteriaType))) .listEntry (SQLManager.CheckNull((Long)(tl_assessment_criteriaPSet.getAttrib (AssessmentCriteria.SINGLEREFERENCE_Job)))).listEntry (SQLManager.CheckNull((Long)(tl_assessment_criteriaPSet.getAttrib (AssessmentCriteria.SINGLEREFERENCE_Template)))) .listEntry (objectID.longID ()).toList().toArray());
tl_assessment_criteriaPSet.setStatus (PersistentSetStatus.PROCESSED);
}
......
package performa.orm;
import java.io.*;
import java.util.*;
import oneit.appservices.config.*;
import oneit.logging.*;
import oneit.objstore.*;
import oneit.utils.*;
import oneit.security.*;
public class AssessmentCriteriaTemplate extends BaseAssessmentCriteriaTemplate
{
private static final long serialVersionUID = 0L;
// This constructor should not be called
public AssessmentCriteriaTemplate ()
{
// Do not add any code to this, always put it in initialiseNewObject
}
}
<?xml version="1.0" encoding="UTF-8"?>
<ROOT xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='http://www.oneit.com.au/schemas/5.2/BusinessObject.xsd'>
<BUSINESSCLASS name="AssessmentCriteriaTemplate" package="performa.orm">
<IMPORT value="oneit.security.*"/>
<MULTIPLEREFERENCE name="AssessmentCriterias" type="AssessmentCriteria" backreferenceName="Template" />
<TABLE name="tl_assessment_template" tablePrefix="object" polymorphic="FALSE">
<ATTRIB name="TemplateName" type="String" dbcol="template_name" length="100" mandatory="true"/>
<SINGLEREFERENCE name="User" type="SecUser" dbcol="user_id" />
</TABLE>
<SEARCH type="All" paramFilter="tl_assessment_template.object_id is not null" orderBy="tl_assessment_template.object_id" />
</BUSINESSCLASS>
</ROOT>
\ No newline at end of file
package performa.orm;
import java.io.*;
import java.util.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import oneit.logging.*;
import oneit.objstore.*;
import oneit.objstore.assocs.*;
import oneit.objstore.rdbms.*;
import oneit.objstore.utils.*;
import oneit.sql.*;
import oneit.utils.resource.*;
import oneit.utils.*;
import oneit.utils.threading.*;
import oneit.security.*;
/**
* IMPORTANT!!!! Autogenerated class, DO NOT EDIT!!!!!
* Template: Infrastructure8.2[oneit.objstore.PersistenceMgrTemplate.xsl]
*/
public class AssessmentCriteriaTemplatePersistenceMgr extends ObjectPersistenceMgr
{
private static final LoggingArea AssessmentCriteriaTemplatePersistence = LoggingArea.createLoggingArea(ObjectPersistenceMgr.OBJECT_PERSISTENCE, "AssessmentCriteriaTemplate");
// Private attributes corresponding to business object data
private String dummyTemplateName;
// Static constants corresponding to attribute helpers
private static final DefaultAttributeHelper HELPER_TemplateName = DefaultAttributeHelper.INSTANCE;
public AssessmentCriteriaTemplatePersistenceMgr ()
{
dummyTemplateName = (String)(HELPER_TemplateName.initialise (dummyTemplateName));
}
private String SELECT_COLUMNS = "{PREFIX}tl_assessment_template.object_id as id, {PREFIX}tl_assessment_template.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_assessment_template.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_assessment_template.template_name, {PREFIX}tl_assessment_template.user_id, 1 AS commasafe ";
private String SELECT_JOINS = "";
public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
{
Set<BaseBusinessClass> resultByIDs = fetchByIDs(Collections.singleton (id), allPSets, context, sqlMgr);
if (resultByIDs.isEmpty ())
{
return null;
}
else if (resultByIDs.size () > 1)
{
throw new StorageException ("Multiple results for id:" + id);
}
else
{
return resultByIDs.iterator ().next ();
}
}
public Set<BaseBusinessClass> fetchByIDs(Set<ObjectID> ids, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
{
Set<BaseBusinessClass> results = new HashSet ();
Set<Long> idsToFetch = new HashSet ();
for (ObjectID id : ids)
{
if (context.containsObject(id)) // Check for cached version
{
BaseBusinessClass objectToReturn = context.getObjectToReplace(id, AssessmentCriteriaTemplate.REFERENCE_AssessmentCriteriaTemplate);
if (objectToReturn instanceof AssessmentCriteriaTemplate)
{
LogMgr.log (AssessmentCriteriaTemplatePersistence, LogLevel.TRACE, "Cache hit for id:", id);
results.add (objectToReturn);
}
else
{
throw new StorageException ("Cache collision for id:" + id + " with object " + objectToReturn + "while fetching a AssessmentCriteriaTemplate");
}
}
PersistentSet tl_assessment_templatePSet = allPSets.getPersistentSet(id, "tl_assessment_template", PersistentSetStatus.FETCHED);
// Check for persistent sets already prefetched
if (false || !tl_assessment_templatePSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) ||
!tl_assessment_templatePSet.containsAttrib(AssessmentCriteriaTemplate.FIELD_TemplateName)||
!tl_assessment_templatePSet.containsAttrib(AssessmentCriteriaTemplate.SINGLEREFERENCE_User))
{
// We will need to retrieve it
idsToFetch.add (id.longValue());
}
else
{
LogMgr.log (AssessmentCriteriaTemplatePersistence, LogLevel.DEBUG2, "Persistent set preloaded id:", id);
/* Non Polymorphic */
AssessmentCriteriaTemplate result = new AssessmentCriteriaTemplate ();
result.setFromPersistentSets(id, allPSets);
context.addRetrievedObject(result);
results.add (result);
}
}
if (idsToFetch.size () > 0)
{
String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_assessment_template " +
"WHERE " + SELECT_JOINS + "{PREFIX}tl_assessment_template.object_id IN ?";
BaseBusinessClass[] resultsFetched = loadQuery (allPSets, sqlMgr, context, query, new Object[] { idsToFetch }, null, false);
for (BaseBusinessClass objFetched : resultsFetched)
{
results.add (objFetched);
}
}
return results;
}
public BaseBusinessClass[] getReferencedObjects(ObjectID _objectID, String refName, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
{
if (false)
{
throw new RuntimeException ();
}
else
{
throw new IllegalArgumentException ("Illegal reference type:" + refName);
}
}
public void update(BaseBusinessClass obj, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, ConcurrentUpdateConflictException, StorageException
{
EqualityResult test = EqualityResult.compare (obj, obj.getBackup ());
ObjectID objectID = obj.getID ();
if (!test.areAttributesEqual () || !test.areSingleAssocsEqual () || obj.getForcedSave())
{
PersistentSet tl_assessment_templatePSet = allPSets.getPersistentSet(objectID, "tl_assessment_template");
if (tl_assessment_templatePSet.getStatus () != PersistentSetStatus.PROCESSED &&
tl_assessment_templatePSet.getStatus () != PersistentSetStatus.DEFERRED)
{
int rowsUpdated = executeStatement (sqlMgr,
"UPDATE {PREFIX}tl_assessment_template " +
"SET template_name = ?, user_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"WHERE tl_assessment_template.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ",
CollectionUtils.listEntry (HELPER_TemplateName.getForSQL(dummyTemplateName, tl_assessment_templatePSet.getAttrib (AssessmentCriteriaTemplate.FIELD_TemplateName))).listEntry (SQLManager.CheckNull((Long)(tl_assessment_templatePSet.getAttrib (AssessmentCriteriaTemplate.SINGLEREFERENCE_User)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
if (rowsUpdated != 1)
{
// Error, either a concurrency error or a not-exists error
ResultSet r = executeQuery (sqlMgr,
"SELECT object_id, object_LAST_UPDATED_DATE FROM {PREFIX}tl_assessment_template WHERE object_id = ?",
new Object[] { objectID.longID () });
if (r.next ())
{
Date d = new java.util.Date (r.getTimestamp (2).getTime());
String errorMsg = QueryBuilder.buildQueryString ("Concurrent update error:[?] for row:[?] objDate:[?] dbDate:[?]",
new Object[] { "tl_assessment_template", objectID.longID (), obj.getObjectLastModified (), d },
sqlMgr.getPortabilityServices ());
LogMgr.log (AssessmentCriteriaTemplatePersistence, LogLevel.BUSINESS1, errorMsg);
throw new ConcurrentUpdateConflictException (obj, "tl_assessment_template");
}
else
{
String errorMsg = "Attempt to update nonexistent row in table:tl_assessment_template for row:" + objectID + " objDate:" + obj.getObjectLastModified ();
LogMgr.log (AssessmentCriteriaTemplatePersistence, LogLevel.BUSINESS1, errorMsg);
throw new RuntimeException (errorMsg);
}
}
tl_assessment_templatePSet.setStatus (PersistentSetStatus.PROCESSED);
}
}
else
{
LogMgr.log (AssessmentCriteriaTemplatePersistence, LogLevel.DEBUG1, "Skipping update since no attribs or simple assocs changed on ", objectID);
}
}
public void delete(BaseBusinessClass obj, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, ConcurrentUpdateConflictException, StorageException
{
ObjectID objectID = obj.getID ();
PersistentSet tl_assessment_templatePSet = allPSets.getPersistentSet(objectID, "tl_assessment_template");
LogMgr.log (AssessmentCriteriaTemplatePersistence, LogLevel.DEBUG2, "Deleting:", objectID);
if (tl_assessment_templatePSet.getStatus () != PersistentSetStatus.PROCESSED &&
tl_assessment_templatePSet.getStatus () != PersistentSetStatus.DEFERRED)
{
int rowsDeleted = executeStatement (sqlMgr,
"DELETE " +
"FROM {PREFIX}tl_assessment_template " +
"WHERE tl_assessment_template.object_id = ? AND " + sqlMgr.getPortabilityServices ().getTruncatedTimestampColumn ("object_LAST_UPDATED_DATE") + " = " + sqlMgr.getPortabilityServices ().getTruncatedTimestampParam("?") + " ",
new Object[] { objectID.longID(), obj.getObjectLastModified () });
if (rowsDeleted != 1)
{
// Error, either a concurrency error or a not-exists error
ResultSet r = executeQuery (sqlMgr,
"SELECT object_id FROM {PREFIX}tl_assessment_template WHERE object_id = ?",
new Object[] { objectID.longID() });
if (r.next ())
{
throw new ConcurrentUpdateConflictException (obj, "tl_assessment_template");
}
else
{
String errorMsg = "Attempt to delete nonexistent row in table:tl_assessment_template for row:" + objectID;
LogMgr.log (AssessmentCriteriaTemplatePersistence, LogLevel.SYSTEMERROR1, errorMsg);
throw new RuntimeException (errorMsg);
}
}
tl_assessment_templatePSet.setStatus (PersistentSetStatus.PROCESSED);
}
}
public ResultSet executeSearchQueryAll (SQLManager sqlMgr) throws SQLException
{
throw new RuntimeException ("NOT implemented: executeSearchQueryAll");
}
public BaseBusinessClass[] loadQuery (PersistentSetCollection allPSets, SQLManager sqlMgr, RDBMSPersistenceContext context, String query, Object[] params, Integer maxRows, boolean truncateExtra) throws SQLException, StorageException
{
LinkedHashMap<ObjectID, AssessmentCriteriaTemplate> results = new LinkedHashMap ();
ResultSet r = executeQuery (sqlMgr, query, params);
while (r.next())
{
ThreadUtils.checkInterrupted ();
ObjectID objectID = new ObjectID (AssessmentCriteriaTemplate.REFERENCE_AssessmentCriteriaTemplate.getObjectIDSpace (), r.getLong ("id"));
AssessmentCriteriaTemplate resultElement;
if (maxRows != null && !results.containsKey (objectID) && results.size () >= maxRows)
{
if (truncateExtra)
{
break;
}
else
{
throw new SearchRowsExceededException ("Maximum rows exceeded:" + maxRows);
}
}
if (context.containsObject(objectID))
{
BaseBusinessClass cachedElement = context.getObjectToReplace(objectID, AssessmentCriteriaTemplate.REFERENCE_AssessmentCriteriaTemplate);
if (cachedElement instanceof AssessmentCriteriaTemplate)
{
LogMgr.log (AssessmentCriteriaTemplatePersistence, LogLevel.TRACE, "Cache hit for id:", objectID);
resultElement = (AssessmentCriteriaTemplate)cachedElement;
}
else
{
throw new StorageException ("Cache collision for id:" + objectID + " with object " + cachedElement + "while fetching a AssessmentCriteriaTemplate");
}
}
else
{
PersistentSet tl_assessment_templatePSet = allPSets.getPersistentSet(objectID, "tl_assessment_template", PersistentSetStatus.FETCHED);
createPersistentSetFromRS(allPSets, r, objectID);
resultElement = new AssessmentCriteriaTemplate ();
resultElement.setFromPersistentSets(objectID, allPSets);
context.addRetrievedObject(resultElement);
}
results.put (objectID, resultElement);
}
BaseBusinessClass[] resultsArr = new BaseBusinessClass[results.size ()];
return results.values ().toArray (resultsArr);
}
public BaseBusinessClass[] find(String searchType, PersistentSetCollection allPSets, Hashtable criteria, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
{
LogMgr.log (AssessmentCriteriaTemplatePersistence, LogLevel.DEBUG2, "Search executing:", searchType, " criteria:", criteria);
String customParamFilter = (String)criteria.get (SEARCH_CustomFilter);
String customOrderBy = (String)criteria.get (SEARCH_OrderBy);
String customTables = (String)criteria.get (SEARCH_CustomExtraTables);
Boolean noCommaBeforeCustomExtraTables = (Boolean)criteria.get (SEARCH_CustomExtraTablesNoComma);
if (searchType.equals (SEARCH_CustomSQL))
{
Set<ObjectID> processedIDs = new HashSet();
SearchParamTransform tx = new SearchParamTransform (criteria);
Object[] searchParams;
customParamFilter = StringUtils.replaceParams (customParamFilter, tx);
searchParams = tx.getParamsArray();
if (customOrderBy != null)
{
customOrderBy = " ORDER BY " + customOrderBy;
}
else
{
customOrderBy = "";
}
ResultSet r;
String concatCustomTableWith = CollectionUtils.equals(noCommaBeforeCustomExtraTables, true) ? " " : ", ";
String tables = StringUtils.subBlanks(customTables) == null ? " " : concatCustomTableWith + customTables + " ";
String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_assessment_template " + tables +
"WHERE " + SELECT_JOINS + " " + customParamFilter + customOrderBy;
BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, searchParams, null, false);
return results;
}
else if (searchType.equals (AssessmentCriteriaTemplate.SEARCH_All))
{
// Local scope for transformed variables
{
}
String orderBy = " ORDER BY tl_assessment_template.object_id";
String tables = " ";
Set<String> joinTableSet = new HashSet<String>();
String filter;
Object[] searchParams; // paramFilter: tl_assessment_template.object_id is not null
String preFilter = "(tl_assessment_template.object_id is not null)"
+ " ";
preFilter += context.getLoadingAttributes ().getCustomSQL() ;
SearchParamTransform tx = new SearchParamTransform (criteria);
filter = StringUtils.replaceParams (preFilter, tx);
searchParams = tx.getParamsArray();
Integer maxRows = context.getLoadingAttributes ().getMaxRows ();
boolean truncateExtra = !context.getLoadingAttributes ().isFailIfMaxExceeded();
String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_assessment_template " + tables + tableSetToSQL(joinTableSet) +
"WHERE " + SELECT_JOINS + " " + filter + orderBy;
BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, searchParams, maxRows, truncateExtra);
return results;
}
else
{
throw new IllegalArgumentException ("Illegal search type:" + searchType);
}
}
private void createPersistentSetFromRS(PersistentSetCollection allPSets, ResultSet r, ObjectID objectID) throws SQLException
{
PersistentSet tl_assessment_templatePSet = allPSets.getPersistentSet(objectID, "tl_assessment_template", PersistentSetStatus.FETCHED);
// Object Modified
tl_assessment_templatePSet.setAttrib(BaseBusinessClass.FIELD_ObjectLastModified, r.getTimestamp ("LAST_UPDATED_DATE"));
// Object Created
tl_assessment_templatePSet.setAttrib(BaseBusinessClass.FIELD_ObjectCreated, r.getTimestamp ("CREATED_DATE"));
tl_assessment_templatePSet.setAttrib(AssessmentCriteriaTemplate.FIELD_TemplateName, HELPER_TemplateName.getFromRS(dummyTemplateName, r, "template_name"));
tl_assessment_templatePSet.setAttrib(AssessmentCriteriaTemplate.SINGLEREFERENCE_User, r.getObject ("user_id"));
}
public void create(BaseBusinessClass obj, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
{
ObjectID objectID = obj.getID ();
PersistentSet tl_assessment_templatePSet = allPSets.getPersistentSet(objectID, "tl_assessment_template");
if (tl_assessment_templatePSet.getStatus () != PersistentSetStatus.PROCESSED &&
tl_assessment_templatePSet.getStatus () != PersistentSetStatus.DEFERRED)
{
executeStatement (sqlMgr,
"INSERT INTO {PREFIX}tl_assessment_template " +
" (template_name, user_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " +
"VALUES " +
" (?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")",
CollectionUtils.listEntry (HELPER_TemplateName.getForSQL(dummyTemplateName, tl_assessment_templatePSet.getAttrib (AssessmentCriteriaTemplate.FIELD_TemplateName))) .listEntry (SQLManager.CheckNull((Long)(tl_assessment_templatePSet.getAttrib (AssessmentCriteriaTemplate.SINGLEREFERENCE_User)))) .listEntry (objectID.longID ()).toList().toArray());
tl_assessment_templatePSet.setStatus (PersistentSetStatus.PROCESSED);
}
}
}
......@@ -45,6 +45,8 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
public static final String FIELD_CriteriaType = "CriteriaType";
public static final String SINGLEREFERENCE_Job = "Job";
public static final String BACKREF_Job = "";
public static final String SINGLEREFERENCE_Template = "Template";
public static final String BACKREF_Template = "";
public static final String MULTIPLEREFERENCE_Answers = "Answers";
public static final String BACKREF_Answers = "";
......@@ -66,6 +68,7 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
// Private attributes corresponding to single references
private SingleAssociation<AssessmentCriteria, Job> _Job;
private SingleAssociation<AssessmentCriteria, AssessmentCriteriaTemplate> _Template;
// Private attributes corresponding to multiple references
......@@ -91,11 +94,13 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
String tmp_Answers = AssessmentCriteriaAnswer.BACKREF_AssessmentCriteria;
String tmp_Job = Job.BACKREF_AssessmentCriterias;
String tmp_Template = AssessmentCriteriaTemplate.BACKREF_AssessmentCriterias;
Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping"));
setupAssocMetaData_Answers();
setupAssocMetaData_Job();
setupAssocMetaData_Template();
FIELD_Name_Validators = (AttributeValidator[])setupAttribMetaData_Name(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_Importance_Validators = (AttributeValidator[])setupAttribMetaData_Importance(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_CriteriaType_Validators = (AttributeValidator[])setupAttribMetaData_CriteriaType(validatorMapping).toArray (new AttributeValidator[0]);
......@@ -134,7 +139,6 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
metaInfo.put ("backreferenceName", "AssessmentCriterias");
metaInfo.put ("dbcol", "job_id");
metaInfo.put ("mandatory", "true");
metaInfo.put ("name", "Job");
metaInfo.put ("type", "Job");
......@@ -144,6 +148,21 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
// Meta Info setup
private static void setupAssocMetaData_Template()
{
Map metaInfo = new HashMap ();
metaInfo.put ("backreferenceName", "AssessmentCriterias");
metaInfo.put ("dbcol", "template_id");
metaInfo.put ("name", "Template");
metaInfo.put ("type", "AssessmentCriteriaTemplate");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for AssessmentCriteria.Template:", metaInfo);
ATTRIBUTES_METADATA_AssessmentCriteria.put (SINGLEREFERENCE_Template, Collections.unmodifiableMap (metaInfo));
}
// Meta Info setup
private static List setupAttribMetaData_Name(Map validatorMapping)
{
Map metaInfo = new HashMap ();
......@@ -243,6 +262,7 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
super._initialiseAssociations ();
_Job = new SingleAssociation<AssessmentCriteria, Job> (this, SINGLEREFERENCE_Job, Job.MULTIPLEREFERENCE_AssessmentCriterias, Job.REFERENCE_Job, "tl_assessment_criteria");
_Template = new SingleAssociation<AssessmentCriteria, AssessmentCriteriaTemplate> (this, SINGLEREFERENCE_Template, AssessmentCriteriaTemplate.MULTIPLEREFERENCE_AssessmentCriterias, AssessmentCriteriaTemplate.REFERENCE_AssessmentCriteriaTemplate, "tl_assessment_criteria");
_Answers = new MultipleAssociation<AssessmentCriteria, AssessmentCriteriaAnswer> (this, MULTIPLEREFERENCE_Answers, AssessmentCriteriaAnswer.SINGLEREFERENCE_AssessmentCriteria, AssessmentCriteriaAnswer.REFERENCE_AssessmentCriteriaAnswer);
}
......@@ -254,6 +274,7 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
super.initialiseReference ();
_Job = new SingleAssociation<AssessmentCriteria, Job> (this, SINGLEREFERENCE_Job, Job.MULTIPLEREFERENCE_AssessmentCriterias, Job.REFERENCE_Job, "tl_assessment_criteria");
_Template = new SingleAssociation<AssessmentCriteria, AssessmentCriteriaTemplate> (this, SINGLEREFERENCE_Template, AssessmentCriteriaTemplate.MULTIPLEREFERENCE_AssessmentCriterias, AssessmentCriteriaTemplate.REFERENCE_AssessmentCriteriaTemplate, "tl_assessment_criteria");
_Answers = new MultipleAssociation<AssessmentCriteria, AssessmentCriteriaAnswer> (this, MULTIPLEREFERENCE_Answers, AssessmentCriteriaAnswer.SINGLEREFERENCE_AssessmentCriteria, AssessmentCriteriaAnswer.REFERENCE_AssessmentCriteriaAnswer);
......@@ -571,6 +592,8 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
result.add("Job");
result.add("Template");
return result;
}
......@@ -585,6 +608,9 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
else if (assocName.equals (SINGLEREFERENCE_Job))
{
return _Job.getReferencedType ();
}else if (assocName.equals (SINGLEREFERENCE_Template))
{
return _Template.getReferencedType ();
}
else
{
......@@ -602,6 +628,9 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
else if (assocName.equals (SINGLEREFERENCE_Job))
{
return Job.MULTIPLEREFERENCE_AssessmentCriterias ;
}else if (assocName.equals (SINGLEREFERENCE_Template))
{
return AssessmentCriteriaTemplate.MULTIPLEREFERENCE_AssessmentCriterias ;
}
else
{
......@@ -619,6 +648,9 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
else if (assocName.equals (SINGLEREFERENCE_Job))
{
return getJob ();
}else if (assocName.equals (SINGLEREFERENCE_Template))
{
return getTemplate ();
}
else
{
......@@ -636,6 +668,9 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
else if (assocName.equals (SINGLEREFERENCE_Job))
{
return getJob (getType);
}else if (assocName.equals (SINGLEREFERENCE_Template))
{
return getTemplate (getType);
}
else
{
......@@ -653,6 +688,9 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
else if (assocName.equals (SINGLEREFERENCE_Job))
{
return getJobID ();
}else if (assocName.equals (SINGLEREFERENCE_Template))
{
return getTemplateID ();
}
else
{
......@@ -670,6 +708,9 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
else if (assocName.equals (SINGLEREFERENCE_Job))
{
setJob ((Job)(newValue));
}else if (assocName.equals (SINGLEREFERENCE_Template))
{
setTemplate ((AssessmentCriteriaTemplate)(newValue));
}
else
{
......@@ -759,7 +800,6 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
*/
public void setJob (Job newJob) throws StorageException, FieldException
{
BusinessObjectParser.assertFieldCondition (newJob != null, this, SINGLEREFERENCE_Job, "mandatory");
if (_Job.wouldReferencedChange (newJob))
......@@ -788,6 +828,113 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
}
/**
* Get the reference Template
*/
public AssessmentCriteriaTemplate getTemplate () throws StorageException
{
assertValid();
try
{
return (AssessmentCriteriaTemplate)(_Template.get ());
}
catch (ClassCastException e)
{
LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Cache collision in AssessmentCriteria:", this.getObjectID (), ", was trying to get AssessmentCriteriaTemplate:", getTemplateID ());
LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Instead I got:", _Template.get ().getClass ());
throw e;
}
}
/**
* Get the object id for the referenced object. Does not force a DB access.
*/
public AssessmentCriteriaTemplate getTemplate (Get getType) throws StorageException
{
assertValid();
return _Template.get(getType);
}
/**
* Get the object id for the referenced object. Does not force a DB access.
*/
public Long getTemplateID ()
{
assertValid();
if (_Template == null)
{
return null;
}
else
{
return _Template.getID ();
}
}
/**
* Called prior to the assoc changing. Subclasses need not call super. If a field exception
* is thrown, the attribute change will fail. The new value is different to the old value.
*/
protected void preTemplateChange (AssessmentCriteriaTemplate newTemplate) throws FieldException
{
}
/**
* Called after the assoc changes.
* If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back
*/
protected void postTemplateChange () throws FieldException
{
}
public FieldWriteability getWriteability_Template ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the reference Template. Checks to ensure a new value
* has been supplied. If so, marks the reference as altered and sets it.
*/
public void setTemplate (AssessmentCriteriaTemplate newTemplate) throws StorageException, FieldException
{
if (_Template.wouldReferencedChange (newTemplate))
{
assertValid();
Debug.assertion (getWriteability_Template () != FieldWriteability.FALSE, "Assoc Template is not writeable");
preTemplateChange (newTemplate);
AssessmentCriteriaTemplate oldTemplate = getTemplate ();
if (oldTemplate != null)
{
// This is to stop validation from triggering when we are removed
_Template.set (null);
oldTemplate.removeFromAssessmentCriterias ((AssessmentCriteria)(this));
}
_Template.set (newTemplate);
if (newTemplate != null)
{
newTemplate.addToAssessmentCriterias ((AssessmentCriteria)(this));
}
postTemplateChange ();
}
}
/**
* A list of multi assoc names e.g. list of strings.
*/
public List<String> getMultiAssocs()
......@@ -1015,6 +1162,20 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
}
}
// Ensure we are removed from any loaded multi-associations that aren't mandatory
if (_Template.isLoaded () || getTransaction ().isObjectLoaded (_Template.getReferencedType (), getTemplateID ()))
{
AssessmentCriteriaTemplate referenced = getTemplate ();
if (referenced != null)
{
// Stop the callback
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Setting backreference to null AssessmentCriterias from ", getObjectID (), " to ", referenced.getObjectID ());
_Template.set (null);
referenced.removeFromAssessmentCriterias ((AssessmentCriteria)this);
}
}
for(AssessmentCriteriaAnswer referenced : CollectionUtils.reverse(getAnswersSet()))
{
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Setting backreference to null AssessmentCriteria from ", getObjectID (), " to ", referenced.getObjectID ());
......@@ -1085,6 +1246,7 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
tl_assessment_criteriaPSet.setAttrib (FIELD_Importance, HELPER_Importance.toObject (_Importance)); //
tl_assessment_criteriaPSet.setAttrib (FIELD_CriteriaType, HELPER_CriteriaType.toObject (_CriteriaType)); //
_Job.getPersistentSets (allSets);
_Template.getPersistentSets (allSets);
}
......@@ -1103,6 +1265,7 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
_Importance = (Importance)(HELPER_Importance.fromObject (_Importance, tl_assessment_criteriaPSet.getAttrib (FIELD_Importance))); //
_CriteriaType = (CriteriaType)(HELPER_CriteriaType.fromObject (_CriteriaType, tl_assessment_criteriaPSet.getAttrib (FIELD_CriteriaType))); //
_Job.setFromPersistentSets (objectID, allSets);
_Template.setFromPersistentSets (objectID, allSets);
}
......@@ -1180,6 +1343,7 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
BaseAssessmentCriteria sourceAssessmentCriteria = (BaseAssessmentCriteria)(source);
_Job.copyFrom (sourceAssessmentCriteria._Job, linkToGhosts);
_Template.copyFrom (sourceAssessmentCriteria._Template, linkToGhosts);
}
}
......@@ -1207,8 +1371,6 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
super.validate (context);
context.check (getJobID() != null, this, SINGLEREFERENCE_Job, "mandatory");
}
......@@ -1223,6 +1385,7 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
_Importance = (Importance)(HELPER_Importance.readExternal (_Importance, vals.get(FIELD_Importance))); //
_CriteriaType = (CriteriaType)(HELPER_CriteriaType.readExternal (_CriteriaType, vals.get(FIELD_CriteriaType))); //
_Job.readExternalData(vals.get(SINGLEREFERENCE_Job));
_Template.readExternalData(vals.get(SINGLEREFERENCE_Template));
_Answers.readExternalData(vals.get(MULTIPLEREFERENCE_Answers));
}
......@@ -1239,6 +1402,7 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
vals.put (FIELD_Importance, HELPER_Importance.writeExternal (_Importance));
vals.put (FIELD_CriteriaType, HELPER_CriteriaType.writeExternal (_CriteriaType));
vals.put (SINGLEREFERENCE_Job, _Job.writeExternalData());
vals.put (SINGLEREFERENCE_Template, _Template.writeExternalData());
vals.put (MULTIPLEREFERENCE_Answers, _Answers.writeExternalData());
}
......@@ -1268,6 +1432,7 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
// Compare single assocs
_Job.compare (otherAssessmentCriteria._Job, listener);
_Template.compare (otherAssessmentCriteria._Template, listener);
// Compare multiple assocs
......@@ -1293,6 +1458,7 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
visitor.visitField(this, FIELD_Importance, HELPER_Importance.toObject(getImportance()));
visitor.visitField(this, FIELD_CriteriaType, HELPER_CriteriaType.toObject(getCriteriaType()));
visitor.visitAssociation (_Job);
visitor.visitAssociation (_Template);
visitor.visitAssociation (_Answers);
}
......@@ -1306,6 +1472,10 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
{
visitor.visit (_Job);
}
if (scope.includes (_Template))
{
visitor.visit (_Template);
}
if (scope.includes (_Answers))
{
visitor.visit (_Answers);
......@@ -1351,6 +1521,10 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
{
return filter.matches (getJob ());
}
else if (attribName.equals (SINGLEREFERENCE_Template))
{
return filter.matches (getTemplate ());
}
else
{
return super.testFilter (attribName, filter);
......@@ -1406,6 +1580,12 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
return this;
}
public SearchAll andTemplate (QueryFilter<AssessmentCriteriaTemplate> filter)
{
filter.addFilter (context, "tl_assessment_criteria.template_id", "Template");
return this;
}
public AssessmentCriteria[]
search (ObjectTransaction transaction) throws StorageException
{
......@@ -1543,6 +1723,10 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
{
return getWriteability_Job ();
}
else if (fieldName.equals (SINGLEREFERENCE_Template))
{
return getWriteability_Template ();
}
else
{
return super.getWriteable (fieldName);
......@@ -1756,6 +1940,10 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
{
return toJob ();
}
if (name.equals ("Template"))
{
return toTemplate ();
}
return super.to(name);
......@@ -1773,6 +1961,12 @@ public abstract class BaseAssessmentCriteria extends BaseBusinessClass
{
return Job.REFERENCE_Job.new JobPipeLineFactory<From, Job> (this, new ORMSingleAssocPipe<Me, Job>(SINGLEREFERENCE_Job, filter));
}
public AssessmentCriteriaTemplate.AssessmentCriteriaTemplatePipeLineFactory<From, AssessmentCriteriaTemplate> toTemplate () { return toTemplate (Filter.ALL); }
public AssessmentCriteriaTemplate.AssessmentCriteriaTemplatePipeLineFactory<From, AssessmentCriteriaTemplate> toTemplate (Filter<AssessmentCriteriaTemplate> filter)
{
return AssessmentCriteriaTemplate.REFERENCE_AssessmentCriteriaTemplate.new AssessmentCriteriaTemplatePipeLineFactory<From, AssessmentCriteriaTemplate> (this, new ORMSingleAssocPipe<Me, AssessmentCriteriaTemplate>(SINGLEREFERENCE_Template, filter));
}
public AssessmentCriteriaAnswer.AssessmentCriteriaAnswerPipeLineFactory<From, AssessmentCriteriaAnswer> toAnswers () { return toAnswers(Filter.ALL); }
public AssessmentCriteriaAnswer.AssessmentCriteriaAnswerPipeLineFactory<From, AssessmentCriteriaAnswer> toAnswers (Filter<AssessmentCriteriaAnswer> filter)
......@@ -1824,6 +2018,20 @@ class DummyAssessmentCriteria extends AssessmentCriteria
return Job.DUMMY_Job.getObjectID();
}
public AssessmentCriteriaTemplate getTemplate () throws StorageException
{
return (AssessmentCriteriaTemplate)(AssessmentCriteriaTemplate.DUMMY_AssessmentCriteriaTemplate);
}
/**
* Get the object id for the referenced object. Does not force a DB access.
*/
public Long getTemplateID ()
{
return AssessmentCriteriaTemplate.DUMMY_AssessmentCriteriaTemplate.getObjectID();
}
public int getAnswersCount () throws StorageException
{
return 0;
......
/*
* IMPORTANT!!!! XSL Autogenerated class, DO NOT EDIT!!!!!
* Template: Infrastructure8.2 rev3 [oneit.objstore.BusinessObjectTemplate.xsl]
*
* Version: 1.0
* Vendor: Apache Software Foundation (Xalan XSLTC)
* Vendor URL: http://xml.apache.org/xalan-j
*/
package performa.orm;
import java.io.*;
import java.util.*;
import oneit.appservices.config.*;
import oneit.logging.*;
import oneit.objstore.*;
import oneit.objstore.assocs.*;
import oneit.objstore.attributes.*;
import oneit.objstore.rdbms.filters.*;
import oneit.objstore.parser.*;
import oneit.objstore.validator.*;
import oneit.objstore.utils.*;
import oneit.utils.*;
import oneit.utils.filter.Filter;
import oneit.utils.transform.*;
import oneit.utils.parsers.FieldException;
import oneit.security.*;
public abstract class BaseAssessmentCriteriaTemplate extends BaseBusinessClass
{
// Reference instance for the object
public static final AssessmentCriteriaTemplate REFERENCE_AssessmentCriteriaTemplate = new AssessmentCriteriaTemplate ();
// Reference instance for the object
public static final AssessmentCriteriaTemplate DUMMY_AssessmentCriteriaTemplate = new DummyAssessmentCriteriaTemplate ();
// Static constants corresponding to field names
public static final String FIELD_TemplateName = "TemplateName";
public static final String SINGLEREFERENCE_User = "User";
public static final String MULTIPLEREFERENCE_AssessmentCriterias = "AssessmentCriterias";
public static final String BACKREF_AssessmentCriterias = "";
// Static constants corresponding to searches
public static final String SEARCH_All = "All";
// Static constants corresponding to attribute helpers
private static final DefaultAttributeHelper<AssessmentCriteriaTemplate> HELPER_TemplateName = DefaultAttributeHelper.INSTANCE;
// Private attributes corresponding to business object data
private String _TemplateName;
// Private attributes corresponding to single references
private SingleAssociation<AssessmentCriteriaTemplate, SecUser> _User;
// Private attributes corresponding to multiple references
private MultipleAssociation<AssessmentCriteriaTemplate, AssessmentCriteria> _AssessmentCriterias;
// Map of maps of metadata
private static final Map ATTRIBUTES_METADATA_AssessmentCriteriaTemplate = new HashMap ();
// Arrays of validators for each attribute
private static final AttributeValidator[] FIELD_TemplateName_Validators;
// Arrays of behaviour decorators
private static final AssessmentCriteriaTemplateBehaviourDecorator[] AssessmentCriteriaTemplate_BehaviourDecorators;
static
{
try
{
String tmp_AssessmentCriterias = AssessmentCriteria.BACKREF_Template;
Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping"));
setupAssocMetaData_AssessmentCriterias();
setupAssocMetaData_User();
FIELD_TemplateName_Validators = (AttributeValidator[])setupAttribMetaData_TemplateName(validatorMapping).toArray (new AttributeValidator[0]);
REFERENCE_AssessmentCriteriaTemplate.initialiseReference ();
DUMMY_AssessmentCriteriaTemplate.initialiseReference ();
AssessmentCriteriaTemplate_BehaviourDecorators = BaseBusinessClass.getBBCBehaviours(AssessmentCriteriaTemplate.class).toArray(new AssessmentCriteriaTemplateBehaviourDecorator[0]);
}
catch (RuntimeException e)
{
LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR1, e, "Error initialising");
throw e;
}
}
// Meta Info setup
private static void setupAssocMetaData_AssessmentCriterias()
{
Map metaInfo = new HashMap ();
metaInfo.put ("backreferenceName", "Template");
metaInfo.put ("name", "AssessmentCriterias");
metaInfo.put ("type", "AssessmentCriteria");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for AssessmentCriteriaTemplate.AssessmentCriterias:", metaInfo);
ATTRIBUTES_METADATA_AssessmentCriteriaTemplate.put (MULTIPLEREFERENCE_AssessmentCriterias, Collections.unmodifiableMap (metaInfo));
}
// Meta Info setup
private static void setupAssocMetaData_User()
{
Map metaInfo = new HashMap ();
metaInfo.put ("dbcol", "user_id");
metaInfo.put ("name", "User");
metaInfo.put ("type", "SecUser");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for AssessmentCriteriaTemplate.User:", metaInfo);
ATTRIBUTES_METADATA_AssessmentCriteriaTemplate.put (SINGLEREFERENCE_User, Collections.unmodifiableMap (metaInfo));
}
// Meta Info setup
private static List setupAttribMetaData_TemplateName(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("dbcol", "template_name");
metaInfo.put ("length", "100");
metaInfo.put ("mandatory", "true");
metaInfo.put ("name", "TemplateName");
metaInfo.put ("type", "String");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for AssessmentCriteriaTemplate.TemplateName:", metaInfo);
ATTRIBUTES_METADATA_AssessmentCriteriaTemplate.put (FIELD_TemplateName, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(AssessmentCriteriaTemplate.class, "TemplateName", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for AssessmentCriteriaTemplate.TemplateName:", validators);
return validators;
}
// END OF STATIC METADATA DEFINITION
// This constructor should not be called
protected BaseAssessmentCriteriaTemplate ()
{
}
protected BBCBehaviourDecorator[] getBehaviours()
{
return AssessmentCriteriaTemplate_BehaviourDecorators;
}
// Initialise the attributes
protected void _initialiseNewObjAttributes (ObjectTransaction transaction) throws StorageException
{
super._initialiseNewObjAttributes (transaction);
_TemplateName = (String)(HELPER_TemplateName.initialise (_TemplateName));
}
// Initialise the associations
protected void _initialiseAssociations ()
{
super._initialiseAssociations ();
_User = new SingleAssociation<AssessmentCriteriaTemplate, SecUser> (this, SINGLEREFERENCE_User, null, SecUser.REFERENCE_SecUser, "tl_assessment_template");
_AssessmentCriterias = new MultipleAssociation<AssessmentCriteriaTemplate, AssessmentCriteria> (this, MULTIPLEREFERENCE_AssessmentCriterias, AssessmentCriteria.SINGLEREFERENCE_Template, AssessmentCriteria.REFERENCE_AssessmentCriteria);
}
// Initialise the associations
protected BaseBusinessClass initialiseReference ()
{
super.initialiseReference ();
_User = new SingleAssociation<AssessmentCriteriaTemplate, SecUser> (this, SINGLEREFERENCE_User, null, SecUser.REFERENCE_SecUser, "tl_assessment_template");
_AssessmentCriterias = new MultipleAssociation<AssessmentCriteriaTemplate, AssessmentCriteria> (this, MULTIPLEREFERENCE_AssessmentCriterias, AssessmentCriteria.SINGLEREFERENCE_Template, AssessmentCriteria.REFERENCE_AssessmentCriteria);
return this;
}
/**
* Get the attribute TemplateName
*/
public String getTemplateName ()
{
assertValid();
String valToReturn = _TemplateName;
for (AssessmentCriteriaTemplateBehaviourDecorator bhd : AssessmentCriteriaTemplate_BehaviourDecorators)
{
valToReturn = bhd.getTemplateName ((AssessmentCriteriaTemplate)this, valToReturn);
}
return valToReturn;
}
/**
* Called prior to the attribute changing. Subclasses need not call super. If a field exception
* is thrown, the attribute change will fail. The new value is different to the old value.
*/
protected void preTemplateNameChange (String newTemplateName) throws FieldException
{
}
/**
* Called after the attribute changes.
* If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back
*/
protected void postTemplateNameChange () throws FieldException
{
}
public FieldWriteability getWriteability_TemplateName ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute TemplateName. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setTemplateName (String newTemplateName) throws FieldException
{
boolean oldAndNewIdentical = HELPER_TemplateName.compare (_TemplateName, newTemplateName);
try
{
for (AssessmentCriteriaTemplateBehaviourDecorator bhd : AssessmentCriteriaTemplate_BehaviourDecorators)
{
newTemplateName = bhd.setTemplateName ((AssessmentCriteriaTemplate)this, newTemplateName);
oldAndNewIdentical = HELPER_TemplateName.compare (_TemplateName, newTemplateName);
}
BusinessObjectParser.assertFieldCondition (newTemplateName != null, this, FIELD_TemplateName, "mandatory");
if (FIELD_TemplateName_Validators.length > 0)
{
Object newTemplateNameObj = HELPER_TemplateName.toObject (newTemplateName);
if (newTemplateNameObj != null)
{
int loopMax = FIELD_TemplateName_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_AssessmentCriteriaTemplate.get (FIELD_TemplateName);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_TemplateName_Validators[v].checkAttribute (this, FIELD_TemplateName, metadata, newTemplateNameObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_TemplateName () != FieldWriteability.FALSE, "Field TemplateName is not writeable");
preTemplateNameChange (newTemplateName);
markFieldChange (FIELD_TemplateName);
_TemplateName = newTemplateName;
postFieldChange (FIELD_TemplateName);
postTemplateNameChange ();
}
}
/**
* A list of multi assoc names e.g. list of strings.
*/
public List<String> getSingleAssocs()
{
List result = super.getSingleAssocs ();
result.add("User");
return result;
}
public BaseBusinessClass getSingleAssocReferenceInstance (String assocName)
{
if (assocName == null)
{
throw new RuntimeException ("Game over == null!");
}
else if (assocName.equals (SINGLEREFERENCE_User))
{
return _User.getReferencedType ();
}
else
{
return super.getSingleAssocReferenceInstance (assocName);
}
}
public String getSingleAssocBackReference(String assocName)
{
if (assocName == null)
{
throw new RuntimeException ("Game over == null!");
}
else if (assocName.equals (SINGLEREFERENCE_User))
{
return null ;
}
else
{
return super.getSingleAssocBackReference (assocName);
}
}
public BaseBusinessClass getSingleAssoc (String assocName) throws StorageException
{
if (assocName == null)
{
throw new RuntimeException ("Game over == null!");
}
else if (assocName.equals (SINGLEREFERENCE_User))
{
return getUser ();
}
else
{
return super.getSingleAssoc (assocName);
}
}
public BaseBusinessClass getSingleAssoc (String assocName, Get getType) throws StorageException
{
if (assocName == null)
{
throw new RuntimeException ("Game over == null!");
}
else if (assocName.equals (SINGLEREFERENCE_User))
{
return getUser (getType);
}
else
{
return super.getSingleAssoc (assocName, getType);
}
}
public Long getSingleAssocID (String assocName) throws StorageException
{
if (assocName == null)
{
throw new RuntimeException ("Game over == null!");
}
else if (assocName.equals (SINGLEREFERENCE_User))
{
return getUserID ();
}
else
{
return super.getSingleAssocID (assocName);
}
}
public void setSingleAssoc (String assocName, BaseBusinessClass newValue) throws StorageException, FieldException
{
if (assocName == null)
{
throw new RuntimeException ("Game over == null!");
}
else if (assocName.equals (SINGLEREFERENCE_User))
{
setUser ((SecUser)(newValue));
}
else
{
super.setSingleAssoc (assocName, newValue);
}
}
/**
* Get the reference User
*/
public SecUser getUser () throws StorageException
{
assertValid();
try
{
return (SecUser)(_User.get ());
}
catch (ClassCastException e)
{
LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Cache collision in AssessmentCriteriaTemplate:", this.getObjectID (), ", was trying to get SecUser:", getUserID ());
LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Instead I got:", _User.get ().getClass ());
throw e;
}
}
/**
* Get the object id for the referenced object. Does not force a DB access.
*/
public SecUser getUser (Get getType) throws StorageException
{
assertValid();
return _User.get(getType);
}
/**
* Get the object id for the referenced object. Does not force a DB access.
*/
public Long getUserID ()
{
assertValid();
if (_User == null)
{
return null;
}
else
{
return _User.getID ();
}
}
/**
* Called prior to the assoc changing. Subclasses need not call super. If a field exception
* is thrown, the attribute change will fail. The new value is different to the old value.
*/
protected void preUserChange (SecUser newUser) throws FieldException
{
}
/**
* Called after the assoc changes.
* If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back
*/
protected void postUserChange () throws FieldException
{
}
public FieldWriteability getWriteability_User ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the reference User. Checks to ensure a new value
* has been supplied. If so, marks the reference as altered and sets it.
*/
public void setUser (SecUser newUser) throws StorageException, FieldException
{
if (_User.wouldReferencedChange (newUser))
{
assertValid();
Debug.assertion (getWriteability_User () != FieldWriteability.FALSE, "Assoc User is not writeable");
preUserChange (newUser);
_User.set (newUser);
postUserChange ();
}
}
/**
* A list of multi assoc names e.g. list of strings.
*/
public List<String> getMultiAssocs()
{
List result = super.getMultiAssocs ();
result.add("AssessmentCriterias");
return result;
}
/**
* Get the reference instance for the multi assoc name.
*/
public BaseBusinessClass getMultiAssocReferenceInstance(String attribName)
{
if (MULTIPLEREFERENCE_AssessmentCriterias.equals(attribName))
{
return AssessmentCriteria.REFERENCE_AssessmentCriteria ;
}
return super.getMultiAssocReferenceInstance(attribName);
}
public String getMultiAssocBackReference(String attribName)
{
if (MULTIPLEREFERENCE_AssessmentCriterias.equals(attribName))
{
return AssessmentCriteria.SINGLEREFERENCE_Template ;
}
return super.getMultiAssocBackReference(attribName);
}
/**
* Get the assoc count for the multi assoc name.
*/
public int getMultiAssocCount(String attribName) throws StorageException
{
if (MULTIPLEREFERENCE_AssessmentCriterias.equals(attribName))
{
return this.getAssessmentCriteriasCount();
}
return super.getMultiAssocCount(attribName);
}
/**
* Get the assoc at a particular index
*/
public BaseBusinessClass getMultiAssocAt(String attribName, int index) throws StorageException
{
if (MULTIPLEREFERENCE_AssessmentCriterias.equals(attribName))
{
return this.getAssessmentCriteriasAt(index);
}
return super.getMultiAssocAt(attribName, index);
}
/**
* Add to a multi assoc by attribute name
*/
public void addToMultiAssoc(String attribName, BaseBusinessClass newElement) throws StorageException
{
if (MULTIPLEREFERENCE_AssessmentCriterias.equals(attribName))
{
addToAssessmentCriterias((AssessmentCriteria)newElement);
return;
}
super.addToMultiAssoc(attribName, newElement);
}
/**
* Remove from a multi assoc by attribute name
*/
public void removeFromMultiAssoc(String attribName, BaseBusinessClass oldElement) throws StorageException
{
if (MULTIPLEREFERENCE_AssessmentCriterias.equals(attribName))
{
removeFromAssessmentCriterias((AssessmentCriteria)oldElement);
return;
}
super.removeFromMultiAssoc(attribName, oldElement);
}
protected void __loadMultiAssoc (String attribName, BaseBusinessClass[] elements)
{
if (MULTIPLEREFERENCE_AssessmentCriterias.equals(attribName))
{
_AssessmentCriterias.__loadAssociation (elements);
return;
}
super.__loadMultiAssoc(attribName, elements);
}
protected boolean __isMultiAssocLoaded (String attribName)
{
if (MULTIPLEREFERENCE_AssessmentCriterias.equals(attribName))
{
return _AssessmentCriterias.isLoaded ();
}
return super.__isMultiAssocLoaded(attribName);
}
public FieldWriteability getWriteability_AssessmentCriterias ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
public int getAssessmentCriteriasCount () throws StorageException
{
assertValid();
return _AssessmentCriterias.getReferencedObjectsCount ();
}
public void addToAssessmentCriterias (AssessmentCriteria newElement) throws StorageException
{
if (_AssessmentCriterias.wouldAddChange (newElement))
{
assertValid();
Debug.assertion (getWriteability_AssessmentCriterias () != FieldWriteability.FALSE, "MultiAssoc AssessmentCriterias is not writeable (add)");
_AssessmentCriterias.appendElement (newElement);
try
{
if (newElement.getTemplate () != this)
{
newElement.setTemplate ((AssessmentCriteriaTemplate)(this));
}
}
catch (Exception e)
{
throw NestedException.wrap(e);
}
}
}
public void removeFromAssessmentCriterias (AssessmentCriteria elementToRemove) throws StorageException
{
if (_AssessmentCriterias.wouldRemoveChange (elementToRemove))
{
assertValid();
Debug.assertion (getWriteability_AssessmentCriterias () != FieldWriteability.FALSE, "MultiAssoc AssessmentCriterias is not writeable (remove)");
_AssessmentCriterias.removeElement (elementToRemove);
try
{
if (elementToRemove.getTemplate () != null)
{
elementToRemove.setTemplate (null);
}
}
catch (Exception e)
{
throw NestedException.wrap(e);
}
}
}
public AssessmentCriteria getAssessmentCriteriasAt (int index) throws StorageException
{
return (AssessmentCriteria)(_AssessmentCriterias.getElementAt (index));
}
public SortedSet<AssessmentCriteria> getAssessmentCriteriasSet () throws StorageException
{
return _AssessmentCriterias.getSet ();
}
public void onDelete ()
{
try
{
for(AssessmentCriteria referenced : CollectionUtils.reverse(getAssessmentCriteriasSet()))
{
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Setting backreference to null Template from ", getObjectID (), " to ", referenced.getObjectID ());
referenced.setTemplate(null);
}
}
catch (Exception e)
{
throw NestedException.wrap(e);
}
super.onDelete ();
}
public AssessmentCriteriaTemplate newInstance ()
{
return new AssessmentCriteriaTemplate ();
}
public AssessmentCriteriaTemplate referenceInstance ()
{
return REFERENCE_AssessmentCriteriaTemplate;
}
public AssessmentCriteriaTemplate getInTransaction (ObjectTransaction t) throws StorageException
{
return getAssessmentCriteriaTemplateByID (t, getObjectID());
}
public BaseBusinessClass dummyInstance ()
{
return DUMMY_AssessmentCriteriaTemplate;
}
public String getBaseSetName ()
{
return "tl_assessment_template";
}
/**
* This is where an object returns the Persistent sets that will
* store it into the database.
* The should be entered into allSets
*/
public void getPersistentSets (PersistentSetCollection allSets)
{
ObjectStatus myStatus = getStatus ();
PersistentSetStatus myPSetStatus = myStatus.getPSetStatus();
ObjectID myID = getID();
super.getPersistentSets (allSets);
PersistentSet tl_assessment_templatePSet = allSets.getPersistentSet (myID, "tl_assessment_template", myPSetStatus);
tl_assessment_templatePSet.setAttrib (FIELD_ObjectID, myID);
tl_assessment_templatePSet.setAttrib (FIELD_TemplateName, HELPER_TemplateName.toObject (_TemplateName)); //
_User.getPersistentSets (allSets);
}
/**
* Sets the objects state based on Persistent sets.
*/
public void setFromPersistentSets (ObjectID objectID, PersistentSetCollection allSets)
{
super.setFromPersistentSets (objectID, allSets);
PersistentSet tl_assessment_templatePSet = allSets.getPersistentSet (objectID, "tl_assessment_template");
_TemplateName = (String)(HELPER_TemplateName.fromObject (_TemplateName, tl_assessment_templatePSet.getAttrib (FIELD_TemplateName))); //
_User.setFromPersistentSets (objectID, allSets);
}
public void setAttributesFrom (BaseBusinessClass other, MultiException e)
{
super.setAttributesFrom (other, e);
if (other instanceof AssessmentCriteriaTemplate)
{
AssessmentCriteriaTemplate otherAssessmentCriteriaTemplate = (AssessmentCriteriaTemplate)other;
try
{
setTemplateName (otherAssessmentCriteriaTemplate.getTemplateName ());
}
catch (FieldException ex)
{
e.addException (ex);
}
}
}
/**
* Set the attributes in this to copies of the attributes in source.
*/
public void copyAttributesFrom (BaseBusinessClass source)
{
super.copyAttributesFrom (source);
if (source instanceof BaseAssessmentCriteriaTemplate)
{
BaseAssessmentCriteriaTemplate sourceAssessmentCriteriaTemplate = (BaseAssessmentCriteriaTemplate)(source);
_TemplateName = sourceAssessmentCriteriaTemplate._TemplateName;
}
}
/**
* Set the associations in this to copies of the attributes in source.
*/
public void copySingleAssociationsFrom (BaseBusinessClass source, boolean linkToGhosts)
{
super.copySingleAssociationsFrom (source, linkToGhosts);
if (source instanceof BaseAssessmentCriteriaTemplate)
{
BaseAssessmentCriteriaTemplate sourceAssessmentCriteriaTemplate = (BaseAssessmentCriteriaTemplate)(source);
_User.copyFrom (sourceAssessmentCriteriaTemplate._User, linkToGhosts);
}
}
/**
* Set the associations in this to copies of the attributes in source.
*/
public void copyAssociationsFrom (BaseBusinessClass source, boolean linkToGhosts)
{
super.copyAssociationsFrom (source, linkToGhosts);
if (source instanceof BaseAssessmentCriteriaTemplate)
{
BaseAssessmentCriteriaTemplate sourceAssessmentCriteriaTemplate = (BaseAssessmentCriteriaTemplate)(source);
_AssessmentCriterias.copyFrom (sourceAssessmentCriteriaTemplate._AssessmentCriterias, linkToGhosts);
}
}
public void validate (ValidationContext context)
{
super.validate (context);
}
/**
* Subclasses must override this to read in their attributes
*/
protected void readExternalData(Map<String, Object> vals) throws IOException, ClassNotFoundException
{
super.readExternalData(vals);
_TemplateName = (String)(HELPER_TemplateName.readExternal (_TemplateName, vals.get(FIELD_TemplateName))); //
_User.readExternalData(vals.get(SINGLEREFERENCE_User));
_AssessmentCriterias.readExternalData(vals.get(MULTIPLEREFERENCE_AssessmentCriterias));
}
/**
* Subclasses must override this to write out their attributes
*/
protected void writeExternalData(Map<String, Object> vals) throws IOException
{
super.writeExternalData(vals);
vals.put (FIELD_TemplateName, HELPER_TemplateName.writeExternal (_TemplateName));
vals.put (SINGLEREFERENCE_User, _User.writeExternalData());
vals.put (MULTIPLEREFERENCE_AssessmentCriterias, _AssessmentCriterias.writeExternalData());
}
public void compare (BaseBusinessClass other, AttributeChangeListener listener) throws StorageException
{
super.compare (other, listener);
if (other instanceof BaseAssessmentCriteriaTemplate)
{
BaseAssessmentCriteriaTemplate otherAssessmentCriteriaTemplate = (BaseAssessmentCriteriaTemplate)(other);
if (!HELPER_TemplateName.compare(this._TemplateName, otherAssessmentCriteriaTemplate._TemplateName))
{
listener.notifyFieldChange(this, other, FIELD_TemplateName, HELPER_TemplateName.toObject(this._TemplateName), HELPER_TemplateName.toObject(otherAssessmentCriteriaTemplate._TemplateName));
}
// Compare single assocs
_User.compare (otherAssessmentCriteriaTemplate._User, listener);
// Compare multiple assocs
_AssessmentCriterias.compare (otherAssessmentCriteriaTemplate._AssessmentCriterias, listener);
}
}
public void visitTransients (AttributeVisitor visitor) throws StorageException
{
super.visitAttributes (visitor);
}
public void visitAttributes (AttributeVisitor visitor) throws StorageException
{
super.visitAttributes (visitor);
visitor.visitField(this, FIELD_TemplateName, HELPER_TemplateName.toObject(getTemplateName()));
visitor.visitAssociation (_User);
visitor.visitAssociation (_AssessmentCriterias);
}
public void visitAssociations (AssociationVisitor visitor, AssociatedScope scope) throws StorageException
{
super.visitAssociations (visitor, scope);
if (scope.includes (_User))
{
visitor.visit (_User);
}
if (scope.includes (_AssessmentCriterias))
{
visitor.visit (_AssessmentCriterias);
}
}
public static AssessmentCriteriaTemplate createAssessmentCriteriaTemplate (ObjectTransaction transaction) throws StorageException
{
AssessmentCriteriaTemplate result = new AssessmentCriteriaTemplate ();
result.initialiseNewObject (transaction);
return result;
}
public static AssessmentCriteriaTemplate getAssessmentCriteriaTemplateByID (ObjectTransaction transaction, Long objectID) throws StorageException
{
return (AssessmentCriteriaTemplate)(transaction.getObjectByID (REFERENCE_AssessmentCriteriaTemplate, objectID));
}
public boolean testFilter (String attribName, QueryFilter filter) throws StorageException
{
if (false)
{
throw new RuntimeException ("Game over man!!");
}
else if (attribName.equals (FIELD_TemplateName))
{
return filter.matches (getTemplateName ());
}
else if (attribName.equals (SINGLEREFERENCE_User))
{
return filter.matches (getUser ());
}
else
{
return super.testFilter (attribName, filter);
}
}
public static SearchAll SearchByAll () { return new SearchAll (); }
public static class SearchAll extends SearchObject<AssessmentCriteriaTemplate>
{
public SearchAll andObjectID (QueryFilter<Long> filter)
{
filter.addFilter (context, "tl_assessment_template.object_id", FIELD_ObjectID);
return this;
}
public SearchAll andObjectCreated (QueryFilter<Date> filter)
{
filter.addFilter (context, "tl_assessment_template.object_created_date", FIELD_ObjectCreated);
return this;
}
public SearchAll andObjectLastModified (QueryFilter<Date> filter)
{
filter.addFilter (context, "tl_assessment_template.object_last_updated_date", FIELD_ObjectLastModified);
return this;
}
public SearchAll andTemplateName (QueryFilter<String> filter)
{
filter.addFilter (context, "tl_assessment_template.template_name", "TemplateName");
return this;
}
public SearchAll andUser (QueryFilter<SecUser> filter)
{
filter.addFilter (context, "tl_assessment_template.user_id", "User");
return this;
}
public AssessmentCriteriaTemplate[]
search (ObjectTransaction transaction) throws StorageException
{
BaseBusinessClass[] results = super.search (transaction, REFERENCE_AssessmentCriteriaTemplate, SEARCH_All, criteria);
Set<AssessmentCriteriaTemplate> typedResults = new LinkedHashSet <AssessmentCriteriaTemplate> ();
for (BaseBusinessClass bbcResult : results)
{
AssessmentCriteriaTemplate aResult = (AssessmentCriteriaTemplate)bbcResult;
typedResults.add (aResult);
}
return ObjstoreUtils.removeDeleted(transaction, typedResults).toArray (new AssessmentCriteriaTemplate[0]);
}
}
public static AssessmentCriteriaTemplate[]
searchAll (ObjectTransaction transaction) throws StorageException
{
return SearchByAll ()
.search (transaction);
}
public Object getAttribute (String attribName)
{
if (false)
{
throw new RuntimeException ("Game over man!!");
}
else if (attribName.equals (FIELD_TemplateName))
{
return HELPER_TemplateName.toObject (getTemplateName ());
}
else
{
return super.getAttribute (attribName);
}
}
public AttributeHelper getAttributeHelper (String attribName)
{
if (false)
{
throw new RuntimeException ("Game over man!!");
}
else if (attribName.equals (FIELD_TemplateName))
{
return HELPER_TemplateName;
}
else
{
return super.getAttributeHelper (attribName);
}
}
public void setAttribute (String attribName, Object attribValue) throws FieldException
{
if (false)
{
throw new RuntimeException ("Game over man!!");
}
else if (attribName.equals (FIELD_TemplateName))
{
setTemplateName ((String)(HELPER_TemplateName.fromObject (_TemplateName, attribValue)));
}
else
{
super.setAttribute (attribName, attribValue);
}
}
public boolean isWriteable (String fieldName)
{
return getWriteable (fieldName) == FieldWriteability.TRUE;
}
public FieldWriteability getWriteable (String fieldName)
{
if (false)
{
throw new RuntimeException ("Game over man!!");
}
else if (fieldName.equals (FIELD_TemplateName))
{
return getWriteability_TemplateName ();
}
else if (fieldName.equals (MULTIPLEREFERENCE_AssessmentCriterias))
{
return getWriteability_AssessmentCriterias ();
}
else if (fieldName.equals (SINGLEREFERENCE_User))
{
return getWriteability_User ();
}
else
{
return super.getWriteable (fieldName);
}
}
public void putUnwriteable (Set<String> fields)
{
if (getWriteability_TemplateName () != FieldWriteability.TRUE)
{
fields.add (FIELD_TemplateName);
}
super.putUnwriteable (fields);
}
public List<AbstractAttribute> getAttributes ()
{
List result = super.getAttributes ();
result.add(HELPER_TemplateName.getAttribObject (getClass (), _TemplateName, true, FIELD_TemplateName));
return result;
}
public Map getAttributeMetadata (String attribute)
{
if (ATTRIBUTES_METADATA_AssessmentCriteriaTemplate.containsKey (attribute))
{
return (Map)ATTRIBUTES_METADATA_AssessmentCriteriaTemplate.get (attribute);
}
else
{
return super.getAttributeMetadata (attribute);
}
}
public Object getAttributeMetadata (String attribute, String metadata)
{
if (ATTRIBUTES_METADATA_AssessmentCriteriaTemplate.containsKey (attribute))
{
return ((Map)ATTRIBUTES_METADATA_AssessmentCriteriaTemplate.get (attribute)).get(metadata);
}
else
{
return super.getAttributeMetadata (attribute, metadata);
}
}
public void preCommit (boolean willBeStored) throws Exception
{
super.preCommit(willBeStored);
if(willBeStored)
{
}
}
public oneit.servlets.objstore.binary.BinaryContentHandler getBinaryContentHandler(String attribName)
{
return super.getBinaryContentHandler(attribName);
}
public static class AssessmentCriteriaTemplateBehaviourDecorator extends BaseBusinessClass.BBCBehaviourDecorator<AssessmentCriteriaTemplate>
{
/**
* Get the attribute TemplateName
*/
public String getTemplateName (AssessmentCriteriaTemplate obj, String original)
{
return original;
}
/**
* Change the value set for attribute TemplateName.
* May modify the field beforehand
* Occurs before validation.
*/
public String setTemplateName (AssessmentCriteriaTemplate obj, String newTemplateName) throws FieldException
{
return newTemplateName;
}
}
public ORMPipeLine pipes()
{
return new AssessmentCriteriaTemplatePipeLineFactory<AssessmentCriteriaTemplate, AssessmentCriteriaTemplate> ((AssessmentCriteriaTemplate)this);
}
/**
* Use this instead of pipes() to get rid of type casting.
*/
public AssessmentCriteriaTemplatePipeLineFactory<AssessmentCriteriaTemplate, AssessmentCriteriaTemplate> pipelineAssessmentCriteriaTemplate()
{
return (AssessmentCriteriaTemplatePipeLineFactory<AssessmentCriteriaTemplate, AssessmentCriteriaTemplate>) pipes();
}
public static AssessmentCriteriaTemplatePipeLineFactory<AssessmentCriteriaTemplate, AssessmentCriteriaTemplate> pipesAssessmentCriteriaTemplate(Collection<AssessmentCriteriaTemplate> items)
{
return REFERENCE_AssessmentCriteriaTemplate.new AssessmentCriteriaTemplatePipeLineFactory<AssessmentCriteriaTemplate, AssessmentCriteriaTemplate> (items);
}
public static AssessmentCriteriaTemplatePipeLineFactory<AssessmentCriteriaTemplate, AssessmentCriteriaTemplate> pipesAssessmentCriteriaTemplate(AssessmentCriteriaTemplate[] _items)
{
return pipesAssessmentCriteriaTemplate(Arrays.asList (_items));
}
public static AssessmentCriteriaTemplatePipeLineFactory<AssessmentCriteriaTemplate, AssessmentCriteriaTemplate> pipesAssessmentCriteriaTemplate()
{
return pipesAssessmentCriteriaTemplate((Collection)null);
}
public class AssessmentCriteriaTemplatePipeLineFactory<From extends BaseBusinessClass, Me extends AssessmentCriteriaTemplate> extends BaseBusinessClass.ORMPipeLine<From, Me>
{
public <Prev> AssessmentCriteriaTemplatePipeLineFactory (PipeLine<From, Prev> pipeLine, Pipe<Prev, Me> nextPipe)
{
super (pipeLine, nextPipe);
}
public AssessmentCriteriaTemplatePipeLineFactory (From seed)
{
super(seed);
}
public AssessmentCriteriaTemplatePipeLineFactory (Collection<From> seed)
{
super(seed);
}
public PipeLine<From, ? extends Object> to(String name)
{
if (name.equals ("AssessmentCriterias"))
{
return toAssessmentCriterias ();
}
if (name.equals ("TemplateName"))
{
return toTemplateName ();
}
if (name.equals ("User"))
{
return toUser ();
}
return super.to(name);
}
public PipeLine<From, String> toTemplateName () { return pipe(new ORMAttributePipe<Me, String>(FIELD_TemplateName)); }
public SecUser.SecUserPipeLineFactory<From, SecUser> toUser () { return toUser (Filter.ALL); }
public SecUser.SecUserPipeLineFactory<From, SecUser> toUser (Filter<SecUser> filter)
{
return SecUser.REFERENCE_SecUser.new SecUserPipeLineFactory<From, SecUser> (this, new ORMSingleAssocPipe<Me, SecUser>(SINGLEREFERENCE_User, filter));
}
public AssessmentCriteria.AssessmentCriteriaPipeLineFactory<From, AssessmentCriteria> toAssessmentCriterias () { return toAssessmentCriterias(Filter.ALL); }
public AssessmentCriteria.AssessmentCriteriaPipeLineFactory<From, AssessmentCriteria> toAssessmentCriterias (Filter<AssessmentCriteria> filter)
{
return AssessmentCriteria.REFERENCE_AssessmentCriteria.new AssessmentCriteriaPipeLineFactory<From, AssessmentCriteria> (this, new ORMMultiAssocPipe<Me, AssessmentCriteria>(MULTIPLEREFERENCE_AssessmentCriterias, filter));
}
}
public boolean isTransientAttrib(String attribName)
{
return super.isTransientAttrib(attribName);
}
public boolean isTransientSingleReference(String assocName)
{
return super.isTransientSingleReference(assocName);
}
}
class DummyAssessmentCriteriaTemplate extends AssessmentCriteriaTemplate
{
// Default constructor primarily to support Externalisable
public DummyAssessmentCriteriaTemplate()
{
super();
}
public void assertValid ()
{
}
public SecUser getUser () throws StorageException
{
return (SecUser)(SecUser.DUMMY_SecUser);
}
/**
* Get the object id for the referenced object. Does not force a DB access.
*/
public Long getUserID ()
{
return SecUser.DUMMY_SecUser.getObjectID();
}
public int getAssessmentCriteriasCount () throws StorageException
{
return 0;
}
public AssessmentCriteria getAssessmentCriteriasAt (int index) throws StorageException
{
throw new RuntimeException ("No elements in a dummy object in association AssessmentCriterias");
}
public SortedSet getAssessmentCriteriasSet () throws StorageException
{
return new TreeSet();
}
}
......@@ -45,6 +45,8 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
public static final String SINGLEREFERENCE_CultureElementRating = "CultureElementRating";
public static final String SINGLEREFERENCE_Job = "Job";
public static final String BACKREF_Job = "";
public static final String SINGLEREFERENCE_Template = "Template";
public static final String BACKREF_Template = "";
public static final String MULTIPLEREFERENCE_Answers = "Answers";
public static final String BACKREF_Answers = "";
......@@ -64,6 +66,7 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
private SingleAssociation<CultureCriteria, CultureElement> _CultureElement;
private SingleAssociation<CultureCriteria, CultureElementRating> _CultureElementRating;
private SingleAssociation<CultureCriteria, Job> _Job;
private SingleAssociation<CultureCriteria, CultureCriteriaTemplate> _Template;
// Private attributes corresponding to multiple references
......@@ -87,6 +90,7 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
String tmp_Answers = CultureCriteriaAnswer.BACKREF_CultureCriteria;
String tmp_Job = Job.BACKREF_CultureCriterias;
String tmp_Template = CultureCriteriaTemplate.BACKREF_CultureCriterias;
Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping"));
......@@ -94,6 +98,7 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
setupAssocMetaData_CultureElement();
setupAssocMetaData_CultureElementRating();
setupAssocMetaData_Job();
setupAssocMetaData_Template();
FIELD_Importance_Validators = (AttributeValidator[])setupAttribMetaData_Importance(validatorMapping).toArray (new AttributeValidator[0]);
......@@ -160,7 +165,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
metaInfo.put ("backreferenceName", "CultureCriterias");
metaInfo.put ("dbcol", "job_id");
metaInfo.put ("mandatory", "true");
metaInfo.put ("name", "Job");
metaInfo.put ("type", "Job");
......@@ -170,6 +174,21 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
// Meta Info setup
private static void setupAssocMetaData_Template()
{
Map metaInfo = new HashMap ();
metaInfo.put ("backreferenceName", "CultureCriterias");
metaInfo.put ("dbcol", "template_id");
metaInfo.put ("name", "Template");
metaInfo.put ("type", "CultureCriteriaTemplate");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for CultureCriteria.Template:", metaInfo);
ATTRIBUTES_METADATA_CultureCriteria.put (SINGLEREFERENCE_Template, Collections.unmodifiableMap (metaInfo));
}
// Meta Info setup
private static List setupAttribMetaData_Importance(Map validatorMapping)
{
Map metaInfo = new HashMap ();
......@@ -229,6 +248,7 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
_CultureElement = new SingleAssociation<CultureCriteria, CultureElement> (this, SINGLEREFERENCE_CultureElement, null, CultureElement.REFERENCE_CultureElement, "tl_culture_criteria");
_CultureElementRating = new SingleAssociation<CultureCriteria, CultureElementRating> (this, SINGLEREFERENCE_CultureElementRating, null, CultureElementRating.REFERENCE_CultureElementRating, "tl_culture_criteria");
_Job = new SingleAssociation<CultureCriteria, Job> (this, SINGLEREFERENCE_Job, Job.MULTIPLEREFERENCE_CultureCriterias, Job.REFERENCE_Job, "tl_culture_criteria");
_Template = new SingleAssociation<CultureCriteria, CultureCriteriaTemplate> (this, SINGLEREFERENCE_Template, CultureCriteriaTemplate.MULTIPLEREFERENCE_CultureCriterias, CultureCriteriaTemplate.REFERENCE_CultureCriteriaTemplate, "tl_culture_criteria");
_Answers = new MultipleAssociation<CultureCriteria, CultureCriteriaAnswer> (this, MULTIPLEREFERENCE_Answers, CultureCriteriaAnswer.SINGLEREFERENCE_CultureCriteria, CultureCriteriaAnswer.REFERENCE_CultureCriteriaAnswer);
}
......@@ -242,6 +262,7 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
_CultureElement = new SingleAssociation<CultureCriteria, CultureElement> (this, SINGLEREFERENCE_CultureElement, null, CultureElement.REFERENCE_CultureElement, "tl_culture_criteria");
_CultureElementRating = new SingleAssociation<CultureCriteria, CultureElementRating> (this, SINGLEREFERENCE_CultureElementRating, null, CultureElementRating.REFERENCE_CultureElementRating, "tl_culture_criteria");
_Job = new SingleAssociation<CultureCriteria, Job> (this, SINGLEREFERENCE_Job, Job.MULTIPLEREFERENCE_CultureCriterias, Job.REFERENCE_Job, "tl_culture_criteria");
_Template = new SingleAssociation<CultureCriteria, CultureCriteriaTemplate> (this, SINGLEREFERENCE_Template, CultureCriteriaTemplate.MULTIPLEREFERENCE_CultureCriterias, CultureCriteriaTemplate.REFERENCE_CultureCriteriaTemplate, "tl_culture_criteria");
_Answers = new MultipleAssociation<CultureCriteria, CultureCriteriaAnswer> (this, MULTIPLEREFERENCE_Answers, CultureCriteriaAnswer.SINGLEREFERENCE_CultureCriteria, CultureCriteriaAnswer.REFERENCE_CultureCriteriaAnswer);
......@@ -365,6 +386,8 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
result.add("Job");
result.add("Template");
return result;
}
......@@ -385,6 +408,9 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
}else if (assocName.equals (SINGLEREFERENCE_Job))
{
return _Job.getReferencedType ();
}else if (assocName.equals (SINGLEREFERENCE_Template))
{
return _Template.getReferencedType ();
}
else
{
......@@ -408,6 +434,9 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
}else if (assocName.equals (SINGLEREFERENCE_Job))
{
return Job.MULTIPLEREFERENCE_CultureCriterias ;
}else if (assocName.equals (SINGLEREFERENCE_Template))
{
return CultureCriteriaTemplate.MULTIPLEREFERENCE_CultureCriterias ;
}
else
{
......@@ -431,6 +460,9 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
}else if (assocName.equals (SINGLEREFERENCE_Job))
{
return getJob ();
}else if (assocName.equals (SINGLEREFERENCE_Template))
{
return getTemplate ();
}
else
{
......@@ -454,6 +486,9 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
}else if (assocName.equals (SINGLEREFERENCE_Job))
{
return getJob (getType);
}else if (assocName.equals (SINGLEREFERENCE_Template))
{
return getTemplate (getType);
}
else
{
......@@ -477,6 +512,9 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
}else if (assocName.equals (SINGLEREFERENCE_Job))
{
return getJobID ();
}else if (assocName.equals (SINGLEREFERENCE_Template))
{
return getTemplateID ();
}
else
{
......@@ -500,6 +538,9 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
}else if (assocName.equals (SINGLEREFERENCE_Job))
{
setJob ((Job)(newValue));
}else if (assocName.equals (SINGLEREFERENCE_Template))
{
setTemplate ((CultureCriteriaTemplate)(newValue));
}
else
{
......@@ -779,7 +820,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
*/
public void setJob (Job newJob) throws StorageException, FieldException
{
BusinessObjectParser.assertFieldCondition (newJob != null, this, SINGLEREFERENCE_Job, "mandatory");
if (_Job.wouldReferencedChange (newJob))
......@@ -808,6 +848,113 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
}
/**
* Get the reference Template
*/
public CultureCriteriaTemplate getTemplate () throws StorageException
{
assertValid();
try
{
return (CultureCriteriaTemplate)(_Template.get ());
}
catch (ClassCastException e)
{
LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Cache collision in CultureCriteria:", this.getObjectID (), ", was trying to get CultureCriteriaTemplate:", getTemplateID ());
LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Instead I got:", _Template.get ().getClass ());
throw e;
}
}
/**
* Get the object id for the referenced object. Does not force a DB access.
*/
public CultureCriteriaTemplate getTemplate (Get getType) throws StorageException
{
assertValid();
return _Template.get(getType);
}
/**
* Get the object id for the referenced object. Does not force a DB access.
*/
public Long getTemplateID ()
{
assertValid();
if (_Template == null)
{
return null;
}
else
{
return _Template.getID ();
}
}
/**
* Called prior to the assoc changing. Subclasses need not call super. If a field exception
* is thrown, the attribute change will fail. The new value is different to the old value.
*/
protected void preTemplateChange (CultureCriteriaTemplate newTemplate) throws FieldException
{
}
/**
* Called after the assoc changes.
* If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back
*/
protected void postTemplateChange () throws FieldException
{
}
public FieldWriteability getWriteability_Template ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the reference Template. Checks to ensure a new value
* has been supplied. If so, marks the reference as altered and sets it.
*/
public void setTemplate (CultureCriteriaTemplate newTemplate) throws StorageException, FieldException
{
if (_Template.wouldReferencedChange (newTemplate))
{
assertValid();
Debug.assertion (getWriteability_Template () != FieldWriteability.FALSE, "Assoc Template is not writeable");
preTemplateChange (newTemplate);
CultureCriteriaTemplate oldTemplate = getTemplate ();
if (oldTemplate != null)
{
// This is to stop validation from triggering when we are removed
_Template.set (null);
oldTemplate.removeFromCultureCriterias ((CultureCriteria)(this));
}
_Template.set (newTemplate);
if (newTemplate != null)
{
newTemplate.addToCultureCriterias ((CultureCriteria)(this));
}
postTemplateChange ();
}
}
/**
* A list of multi assoc names e.g. list of strings.
*/
public List<String> getMultiAssocs()
......@@ -1035,6 +1182,20 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
}
}
// Ensure we are removed from any loaded multi-associations that aren't mandatory
if (_Template.isLoaded () || getTransaction ().isObjectLoaded (_Template.getReferencedType (), getTemplateID ()))
{
CultureCriteriaTemplate referenced = getTemplate ();
if (referenced != null)
{
// Stop the callback
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Setting backreference to null CultureCriterias from ", getObjectID (), " to ", referenced.getObjectID ());
_Template.set (null);
referenced.removeFromCultureCriterias ((CultureCriteria)this);
}
}
for(CultureCriteriaAnswer referenced : CollectionUtils.reverse(getAnswersSet()))
{
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Setting backreference to null CultureCriteria from ", getObjectID (), " to ", referenced.getObjectID ());
......@@ -1105,6 +1266,7 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
_CultureElement.getPersistentSets (allSets);
_CultureElementRating.getPersistentSets (allSets);
_Job.getPersistentSets (allSets);
_Template.getPersistentSets (allSets);
}
......@@ -1123,6 +1285,7 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
_CultureElement.setFromPersistentSets (objectID, allSets);
_CultureElementRating.setFromPersistentSets (objectID, allSets);
_Job.setFromPersistentSets (objectID, allSets);
_Template.setFromPersistentSets (objectID, allSets);
}
......@@ -1182,6 +1345,7 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
_CultureElement.copyFrom (sourceCultureCriteria._CultureElement, linkToGhosts);
_CultureElementRating.copyFrom (sourceCultureCriteria._CultureElementRating, linkToGhosts);
_Job.copyFrom (sourceCultureCriteria._Job, linkToGhosts);
_Template.copyFrom (sourceCultureCriteria._Template, linkToGhosts);
}
}
......@@ -1213,8 +1377,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
context.check (getCultureElementRatingID() != null, this, SINGLEREFERENCE_CultureElementRating, "mandatory");
context.check (getJobID() != null, this, SINGLEREFERENCE_Job, "mandatory");
}
......@@ -1229,6 +1391,7 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
_CultureElement.readExternalData(vals.get(SINGLEREFERENCE_CultureElement));
_CultureElementRating.readExternalData(vals.get(SINGLEREFERENCE_CultureElementRating));
_Job.readExternalData(vals.get(SINGLEREFERENCE_Job));
_Template.readExternalData(vals.get(SINGLEREFERENCE_Template));
_Answers.readExternalData(vals.get(MULTIPLEREFERENCE_Answers));
}
......@@ -1245,6 +1408,7 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
vals.put (SINGLEREFERENCE_CultureElement, _CultureElement.writeExternalData());
vals.put (SINGLEREFERENCE_CultureElementRating, _CultureElementRating.writeExternalData());
vals.put (SINGLEREFERENCE_Job, _Job.writeExternalData());
vals.put (SINGLEREFERENCE_Template, _Template.writeExternalData());
vals.put (MULTIPLEREFERENCE_Answers, _Answers.writeExternalData());
}
......@@ -1268,6 +1432,7 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
_CultureElement.compare (otherCultureCriteria._CultureElement, listener);
_CultureElementRating.compare (otherCultureCriteria._CultureElementRating, listener);
_Job.compare (otherCultureCriteria._Job, listener);
_Template.compare (otherCultureCriteria._Template, listener);
// Compare multiple assocs
......@@ -1293,6 +1458,7 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
visitor.visitAssociation (_CultureElement);
visitor.visitAssociation (_CultureElementRating);
visitor.visitAssociation (_Job);
visitor.visitAssociation (_Template);
visitor.visitAssociation (_Answers);
}
......@@ -1314,6 +1480,10 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
{
visitor.visit (_Job);
}
if (scope.includes (_Template))
{
visitor.visit (_Template);
}
if (scope.includes (_Answers))
{
visitor.visit (_Answers);
......@@ -1359,6 +1529,10 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
{
return filter.matches (getJob ());
}
else if (attribName.equals (SINGLEREFERENCE_Template))
{
return filter.matches (getTemplate ());
}
else
{
return super.testFilter (attribName, filter);
......@@ -1414,6 +1588,12 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
return this;
}
public SearchAll andTemplate (QueryFilter<CultureCriteriaTemplate> filter)
{
filter.addFilter (context, "tl_culture_criteria.template_id", "Template");
return this;
}
public CultureCriteria[]
search (ObjectTransaction transaction) throws StorageException
{
......@@ -1527,6 +1707,10 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
{
return getWriteability_Job ();
}
else if (fieldName.equals (SINGLEREFERENCE_Template))
{
return getWriteability_Template ();
}
else
{
return super.getWriteable (fieldName);
......@@ -1692,6 +1876,10 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
{
return toJob ();
}
if (name.equals ("Template"))
{
return toTemplate ();
}
return super.to(name);
......@@ -1717,6 +1905,12 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
{
return Job.REFERENCE_Job.new JobPipeLineFactory<From, Job> (this, new ORMSingleAssocPipe<Me, Job>(SINGLEREFERENCE_Job, filter));
}
public CultureCriteriaTemplate.CultureCriteriaTemplatePipeLineFactory<From, CultureCriteriaTemplate> toTemplate () { return toTemplate (Filter.ALL); }
public CultureCriteriaTemplate.CultureCriteriaTemplatePipeLineFactory<From, CultureCriteriaTemplate> toTemplate (Filter<CultureCriteriaTemplate> filter)
{
return CultureCriteriaTemplate.REFERENCE_CultureCriteriaTemplate.new CultureCriteriaTemplatePipeLineFactory<From, CultureCriteriaTemplate> (this, new ORMSingleAssocPipe<Me, CultureCriteriaTemplate>(SINGLEREFERENCE_Template, filter));
}
public CultureCriteriaAnswer.CultureCriteriaAnswerPipeLineFactory<From, CultureCriteriaAnswer> toAnswers () { return toAnswers(Filter.ALL); }
public CultureCriteriaAnswer.CultureCriteriaAnswerPipeLineFactory<From, CultureCriteriaAnswer> toAnswers (Filter<CultureCriteriaAnswer> filter)
......@@ -1796,6 +1990,20 @@ class DummyCultureCriteria extends CultureCriteria
return Job.DUMMY_Job.getObjectID();
}
public CultureCriteriaTemplate getTemplate () throws StorageException
{
return (CultureCriteriaTemplate)(CultureCriteriaTemplate.DUMMY_CultureCriteriaTemplate);
}
/**
* Get the object id for the referenced object. Does not force a DB access.
*/
public Long getTemplateID ()
{
return CultureCriteriaTemplate.DUMMY_CultureCriteriaTemplate.getObjectID();
}
public int getAnswersCount () throws StorageException
{
return 0;
......
/*
* IMPORTANT!!!! XSL Autogenerated class, DO NOT EDIT!!!!!
* Template: Infrastructure8.2 rev3 [oneit.objstore.BusinessObjectTemplate.xsl]
*
* Version: 1.0
* Vendor: Apache Software Foundation (Xalan XSLTC)
* Vendor URL: http://xml.apache.org/xalan-j
*/
package performa.orm;
import java.io.*;
import java.util.*;
import oneit.appservices.config.*;
import oneit.logging.*;
import oneit.objstore.*;
import oneit.objstore.assocs.*;
import oneit.objstore.attributes.*;
import oneit.objstore.rdbms.filters.*;
import oneit.objstore.parser.*;
import oneit.objstore.validator.*;
import oneit.objstore.utils.*;
import oneit.utils.*;
import oneit.utils.filter.Filter;
import oneit.utils.transform.*;
import oneit.utils.parsers.FieldException;
import oneit.security.*;
public abstract class BaseCultureCriteriaTemplate extends BaseBusinessClass
{
// Reference instance for the object
public static final CultureCriteriaTemplate REFERENCE_CultureCriteriaTemplate = new CultureCriteriaTemplate ();
// Reference instance for the object
public static final CultureCriteriaTemplate DUMMY_CultureCriteriaTemplate = new DummyCultureCriteriaTemplate ();
// Static constants corresponding to field names
public static final String FIELD_TemplateName = "TemplateName";
public static final String SINGLEREFERENCE_User = "User";
public static final String MULTIPLEREFERENCE_CultureCriterias = "CultureCriterias";
public static final String BACKREF_CultureCriterias = "";
// Static constants corresponding to searches
public static final String SEARCH_All = "All";
// Static constants corresponding to attribute helpers
private static final DefaultAttributeHelper<CultureCriteriaTemplate> HELPER_TemplateName = DefaultAttributeHelper.INSTANCE;
// Private attributes corresponding to business object data
private String _TemplateName;
// Private attributes corresponding to single references
private SingleAssociation<CultureCriteriaTemplate, SecUser> _User;
// Private attributes corresponding to multiple references
private MultipleAssociation<CultureCriteriaTemplate, CultureCriteria> _CultureCriterias;
// Map of maps of metadata
private static final Map ATTRIBUTES_METADATA_CultureCriteriaTemplate = new HashMap ();
// Arrays of validators for each attribute
private static final AttributeValidator[] FIELD_TemplateName_Validators;
// Arrays of behaviour decorators
private static final CultureCriteriaTemplateBehaviourDecorator[] CultureCriteriaTemplate_BehaviourDecorators;
static
{
try
{
String tmp_CultureCriterias = CultureCriteria.BACKREF_Template;
Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping"));
setupAssocMetaData_CultureCriterias();
setupAssocMetaData_User();
FIELD_TemplateName_Validators = (AttributeValidator[])setupAttribMetaData_TemplateName(validatorMapping).toArray (new AttributeValidator[0]);
REFERENCE_CultureCriteriaTemplate.initialiseReference ();
DUMMY_CultureCriteriaTemplate.initialiseReference ();
CultureCriteriaTemplate_BehaviourDecorators = BaseBusinessClass.getBBCBehaviours(CultureCriteriaTemplate.class).toArray(new CultureCriteriaTemplateBehaviourDecorator[0]);
}
catch (RuntimeException e)
{
LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR1, e, "Error initialising");
throw e;
}
}
// Meta Info setup
private static void setupAssocMetaData_CultureCriterias()
{
Map metaInfo = new HashMap ();
metaInfo.put ("backreferenceName", "Template");
metaInfo.put ("name", "CultureCriterias");
metaInfo.put ("type", "CultureCriteria");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for CultureCriteriaTemplate.CultureCriterias:", metaInfo);
ATTRIBUTES_METADATA_CultureCriteriaTemplate.put (MULTIPLEREFERENCE_CultureCriterias, Collections.unmodifiableMap (metaInfo));
}
// Meta Info setup
private static void setupAssocMetaData_User()
{
Map metaInfo = new HashMap ();
metaInfo.put ("dbcol", "user_id");
metaInfo.put ("name", "User");
metaInfo.put ("type", "SecUser");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for CultureCriteriaTemplate.User:", metaInfo);
ATTRIBUTES_METADATA_CultureCriteriaTemplate.put (SINGLEREFERENCE_User, Collections.unmodifiableMap (metaInfo));
}
// Meta Info setup
private static List setupAttribMetaData_TemplateName(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("dbcol", "template_name");
metaInfo.put ("length", "100");
metaInfo.put ("mandatory", "true");
metaInfo.put ("name", "TemplateName");
metaInfo.put ("type", "String");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for CultureCriteriaTemplate.TemplateName:", metaInfo);
ATTRIBUTES_METADATA_CultureCriteriaTemplate.put (FIELD_TemplateName, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(CultureCriteriaTemplate.class, "TemplateName", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for CultureCriteriaTemplate.TemplateName:", validators);
return validators;
}
// END OF STATIC METADATA DEFINITION
// This constructor should not be called
protected BaseCultureCriteriaTemplate ()
{
}
protected BBCBehaviourDecorator[] getBehaviours()
{
return CultureCriteriaTemplate_BehaviourDecorators;
}
// Initialise the attributes
protected void _initialiseNewObjAttributes (ObjectTransaction transaction) throws StorageException
{
super._initialiseNewObjAttributes (transaction);
_TemplateName = (String)(HELPER_TemplateName.initialise (_TemplateName));
}
// Initialise the associations
protected void _initialiseAssociations ()
{
super._initialiseAssociations ();
_User = new SingleAssociation<CultureCriteriaTemplate, SecUser> (this, SINGLEREFERENCE_User, null, SecUser.REFERENCE_SecUser, "tl_culture_template");
_CultureCriterias = new MultipleAssociation<CultureCriteriaTemplate, CultureCriteria> (this, MULTIPLEREFERENCE_CultureCriterias, CultureCriteria.SINGLEREFERENCE_Template, CultureCriteria.REFERENCE_CultureCriteria);
}
// Initialise the associations
protected BaseBusinessClass initialiseReference ()
{
super.initialiseReference ();
_User = new SingleAssociation<CultureCriteriaTemplate, SecUser> (this, SINGLEREFERENCE_User, null, SecUser.REFERENCE_SecUser, "tl_culture_template");
_CultureCriterias = new MultipleAssociation<CultureCriteriaTemplate, CultureCriteria> (this, MULTIPLEREFERENCE_CultureCriterias, CultureCriteria.SINGLEREFERENCE_Template, CultureCriteria.REFERENCE_CultureCriteria);
return this;
}
/**
* Get the attribute TemplateName
*/
public String getTemplateName ()
{
assertValid();
String valToReturn = _TemplateName;
for (CultureCriteriaTemplateBehaviourDecorator bhd : CultureCriteriaTemplate_BehaviourDecorators)
{
valToReturn = bhd.getTemplateName ((CultureCriteriaTemplate)this, valToReturn);
}
return valToReturn;
}
/**
* Called prior to the attribute changing. Subclasses need not call super. If a field exception
* is thrown, the attribute change will fail. The new value is different to the old value.
*/
protected void preTemplateNameChange (String newTemplateName) throws FieldException
{
}
/**
* Called after the attribute changes.
* If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back
*/
protected void postTemplateNameChange () throws FieldException
{
}
public FieldWriteability getWriteability_TemplateName ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute TemplateName. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setTemplateName (String newTemplateName) throws FieldException
{
boolean oldAndNewIdentical = HELPER_TemplateName.compare (_TemplateName, newTemplateName);
try
{
for (CultureCriteriaTemplateBehaviourDecorator bhd : CultureCriteriaTemplate_BehaviourDecorators)
{
newTemplateName = bhd.setTemplateName ((CultureCriteriaTemplate)this, newTemplateName);
oldAndNewIdentical = HELPER_TemplateName.compare (_TemplateName, newTemplateName);
}
BusinessObjectParser.assertFieldCondition (newTemplateName != null, this, FIELD_TemplateName, "mandatory");
if (FIELD_TemplateName_Validators.length > 0)
{
Object newTemplateNameObj = HELPER_TemplateName.toObject (newTemplateName);
if (newTemplateNameObj != null)
{
int loopMax = FIELD_TemplateName_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_CultureCriteriaTemplate.get (FIELD_TemplateName);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_TemplateName_Validators[v].checkAttribute (this, FIELD_TemplateName, metadata, newTemplateNameObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_TemplateName () != FieldWriteability.FALSE, "Field TemplateName is not writeable");
preTemplateNameChange (newTemplateName);
markFieldChange (FIELD_TemplateName);
_TemplateName = newTemplateName;
postFieldChange (FIELD_TemplateName);
postTemplateNameChange ();
}
}
/**
* A list of multi assoc names e.g. list of strings.
*/
public List<String> getSingleAssocs()
{
List result = super.getSingleAssocs ();
result.add("User");
return result;
}
public BaseBusinessClass getSingleAssocReferenceInstance (String assocName)
{
if (assocName == null)
{
throw new RuntimeException ("Game over == null!");
}
else if (assocName.equals (SINGLEREFERENCE_User))
{
return _User.getReferencedType ();
}
else
{
return super.getSingleAssocReferenceInstance (assocName);
}
}
public String getSingleAssocBackReference(String assocName)
{
if (assocName == null)
{
throw new RuntimeException ("Game over == null!");
}
else if (assocName.equals (SINGLEREFERENCE_User))
{
return null ;
}
else
{
return super.getSingleAssocBackReference (assocName);
}
}
public BaseBusinessClass getSingleAssoc (String assocName) throws StorageException
{
if (assocName == null)
{
throw new RuntimeException ("Game over == null!");
}
else if (assocName.equals (SINGLEREFERENCE_User))
{
return getUser ();
}
else
{
return super.getSingleAssoc (assocName);
}
}
public BaseBusinessClass getSingleAssoc (String assocName, Get getType) throws StorageException
{
if (assocName == null)
{
throw new RuntimeException ("Game over == null!");
}
else if (assocName.equals (SINGLEREFERENCE_User))
{
return getUser (getType);
}
else
{
return super.getSingleAssoc (assocName, getType);
}
}
public Long getSingleAssocID (String assocName) throws StorageException
{
if (assocName == null)
{
throw new RuntimeException ("Game over == null!");
}
else if (assocName.equals (SINGLEREFERENCE_User))
{
return getUserID ();
}
else
{
return super.getSingleAssocID (assocName);
}
}
public void setSingleAssoc (String assocName, BaseBusinessClass newValue) throws StorageException, FieldException
{
if (assocName == null)
{
throw new RuntimeException ("Game over == null!");
}
else if (assocName.equals (SINGLEREFERENCE_User))
{
setUser ((SecUser)(newValue));
}
else
{
super.setSingleAssoc (assocName, newValue);
}
}
/**
* Get the reference User
*/
public SecUser getUser () throws StorageException
{
assertValid();
try
{
return (SecUser)(_User.get ());
}
catch (ClassCastException e)
{
LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Cache collision in CultureCriteriaTemplate:", this.getObjectID (), ", was trying to get SecUser:", getUserID ());
LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Instead I got:", _User.get ().getClass ());
throw e;
}
}
/**
* Get the object id for the referenced object. Does not force a DB access.
*/
public SecUser getUser (Get getType) throws StorageException
{
assertValid();
return _User.get(getType);
}
/**
* Get the object id for the referenced object. Does not force a DB access.
*/
public Long getUserID ()
{
assertValid();
if (_User == null)
{
return null;
}
else
{
return _User.getID ();
}
}
/**
* Called prior to the assoc changing. Subclasses need not call super. If a field exception
* is thrown, the attribute change will fail. The new value is different to the old value.
*/
protected void preUserChange (SecUser newUser) throws FieldException
{
}
/**
* Called after the assoc changes.
* If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back
*/
protected void postUserChange () throws FieldException
{
}
public FieldWriteability getWriteability_User ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the reference User. Checks to ensure a new value
* has been supplied. If so, marks the reference as altered and sets it.
*/
public void setUser (SecUser newUser) throws StorageException, FieldException
{
if (_User.wouldReferencedChange (newUser))
{
assertValid();
Debug.assertion (getWriteability_User () != FieldWriteability.FALSE, "Assoc User is not writeable");
preUserChange (newUser);
_User.set (newUser);
postUserChange ();
}
}
/**
* A list of multi assoc names e.g. list of strings.
*/
public List<String> getMultiAssocs()
{
List result = super.getMultiAssocs ();
result.add("CultureCriterias");
return result;
}
/**
* Get the reference instance for the multi assoc name.
*/
public BaseBusinessClass getMultiAssocReferenceInstance(String attribName)
{
if (MULTIPLEREFERENCE_CultureCriterias.equals(attribName))
{
return CultureCriteria.REFERENCE_CultureCriteria ;
}
return super.getMultiAssocReferenceInstance(attribName);
}
public String getMultiAssocBackReference(String attribName)
{
if (MULTIPLEREFERENCE_CultureCriterias.equals(attribName))
{
return CultureCriteria.SINGLEREFERENCE_Template ;
}
return super.getMultiAssocBackReference(attribName);
}
/**
* Get the assoc count for the multi assoc name.
*/
public int getMultiAssocCount(String attribName) throws StorageException
{
if (MULTIPLEREFERENCE_CultureCriterias.equals(attribName))
{
return this.getCultureCriteriasCount();
}
return super.getMultiAssocCount(attribName);
}
/**
* Get the assoc at a particular index
*/
public BaseBusinessClass getMultiAssocAt(String attribName, int index) throws StorageException
{
if (MULTIPLEREFERENCE_CultureCriterias.equals(attribName))
{
return this.getCultureCriteriasAt(index);
}
return super.getMultiAssocAt(attribName, index);
}
/**
* Add to a multi assoc by attribute name
*/
public void addToMultiAssoc(String attribName, BaseBusinessClass newElement) throws StorageException
{
if (MULTIPLEREFERENCE_CultureCriterias.equals(attribName))
{
addToCultureCriterias((CultureCriteria)newElement);
return;
}
super.addToMultiAssoc(attribName, newElement);
}
/**
* Remove from a multi assoc by attribute name
*/
public void removeFromMultiAssoc(String attribName, BaseBusinessClass oldElement) throws StorageException
{
if (MULTIPLEREFERENCE_CultureCriterias.equals(attribName))
{
removeFromCultureCriterias((CultureCriteria)oldElement);
return;
}
super.removeFromMultiAssoc(attribName, oldElement);
}
protected void __loadMultiAssoc (String attribName, BaseBusinessClass[] elements)
{
if (MULTIPLEREFERENCE_CultureCriterias.equals(attribName))
{
_CultureCriterias.__loadAssociation (elements);
return;
}
super.__loadMultiAssoc(attribName, elements);
}
protected boolean __isMultiAssocLoaded (String attribName)
{
if (MULTIPLEREFERENCE_CultureCriterias.equals(attribName))
{
return _CultureCriterias.isLoaded ();
}
return super.__isMultiAssocLoaded(attribName);
}
public FieldWriteability getWriteability_CultureCriterias ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
public int getCultureCriteriasCount () throws StorageException
{
assertValid();
return _CultureCriterias.getReferencedObjectsCount ();
}
public void addToCultureCriterias (CultureCriteria newElement) throws StorageException
{
if (_CultureCriterias.wouldAddChange (newElement))
{
assertValid();
Debug.assertion (getWriteability_CultureCriterias () != FieldWriteability.FALSE, "MultiAssoc CultureCriterias is not writeable (add)");
_CultureCriterias.appendElement (newElement);
try
{
if (newElement.getTemplate () != this)
{
newElement.setTemplate ((CultureCriteriaTemplate)(this));
}
}
catch (Exception e)
{
throw NestedException.wrap(e);
}
}
}
public void removeFromCultureCriterias (CultureCriteria elementToRemove) throws StorageException
{
if (_CultureCriterias.wouldRemoveChange (elementToRemove))
{
assertValid();
Debug.assertion (getWriteability_CultureCriterias () != FieldWriteability.FALSE, "MultiAssoc CultureCriterias is not writeable (remove)");
_CultureCriterias.removeElement (elementToRemove);
try
{
if (elementToRemove.getTemplate () != null)
{
elementToRemove.setTemplate (null);
}
}
catch (Exception e)
{
throw NestedException.wrap(e);
}
}
}
public CultureCriteria getCultureCriteriasAt (int index) throws StorageException
{
return (CultureCriteria)(_CultureCriterias.getElementAt (index));
}
public SortedSet<CultureCriteria> getCultureCriteriasSet () throws StorageException
{
return _CultureCriterias.getSet ();
}
public void onDelete ()
{
try
{
for(CultureCriteria referenced : CollectionUtils.reverse(getCultureCriteriasSet()))
{
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Setting backreference to null Template from ", getObjectID (), " to ", referenced.getObjectID ());
referenced.setTemplate(null);
}
}
catch (Exception e)
{
throw NestedException.wrap(e);
}
super.onDelete ();
}
public CultureCriteriaTemplate newInstance ()
{
return new CultureCriteriaTemplate ();
}
public CultureCriteriaTemplate referenceInstance ()
{
return REFERENCE_CultureCriteriaTemplate;
}
public CultureCriteriaTemplate getInTransaction (ObjectTransaction t) throws StorageException
{
return getCultureCriteriaTemplateByID (t, getObjectID());
}
public BaseBusinessClass dummyInstance ()
{
return DUMMY_CultureCriteriaTemplate;
}
public String getBaseSetName ()
{
return "tl_culture_template";
}
/**
* This is where an object returns the Persistent sets that will
* store it into the database.
* The should be entered into allSets
*/
public void getPersistentSets (PersistentSetCollection allSets)
{
ObjectStatus myStatus = getStatus ();
PersistentSetStatus myPSetStatus = myStatus.getPSetStatus();
ObjectID myID = getID();
super.getPersistentSets (allSets);
PersistentSet tl_culture_templatePSet = allSets.getPersistentSet (myID, "tl_culture_template", myPSetStatus);
tl_culture_templatePSet.setAttrib (FIELD_ObjectID, myID);
tl_culture_templatePSet.setAttrib (FIELD_TemplateName, HELPER_TemplateName.toObject (_TemplateName)); //
_User.getPersistentSets (allSets);
}
/**
* Sets the objects state based on Persistent sets.
*/
public void setFromPersistentSets (ObjectID objectID, PersistentSetCollection allSets)
{
super.setFromPersistentSets (objectID, allSets);
PersistentSet tl_culture_templatePSet = allSets.getPersistentSet (objectID, "tl_culture_template");
_TemplateName = (String)(HELPER_TemplateName.fromObject (_TemplateName, tl_culture_templatePSet.getAttrib (FIELD_TemplateName))); //
_User.setFromPersistentSets (objectID, allSets);
}
public void setAttributesFrom (BaseBusinessClass other, MultiException e)
{
super.setAttributesFrom (other, e);
if (other instanceof CultureCriteriaTemplate)
{
CultureCriteriaTemplate otherCultureCriteriaTemplate = (CultureCriteriaTemplate)other;
try
{
setTemplateName (otherCultureCriteriaTemplate.getTemplateName ());
}
catch (FieldException ex)
{
e.addException (ex);
}
}
}
/**
* Set the attributes in this to copies of the attributes in source.
*/
public void copyAttributesFrom (BaseBusinessClass source)
{
super.copyAttributesFrom (source);
if (source instanceof BaseCultureCriteriaTemplate)
{
BaseCultureCriteriaTemplate sourceCultureCriteriaTemplate = (BaseCultureCriteriaTemplate)(source);
_TemplateName = sourceCultureCriteriaTemplate._TemplateName;
}
}
/**
* Set the associations in this to copies of the attributes in source.
*/
public void copySingleAssociationsFrom (BaseBusinessClass source, boolean linkToGhosts)
{
super.copySingleAssociationsFrom (source, linkToGhosts);
if (source instanceof BaseCultureCriteriaTemplate)
{
BaseCultureCriteriaTemplate sourceCultureCriteriaTemplate = (BaseCultureCriteriaTemplate)(source);
_User.copyFrom (sourceCultureCriteriaTemplate._User, linkToGhosts);
}
}
/**
* Set the associations in this to copies of the attributes in source.
*/
public void copyAssociationsFrom (BaseBusinessClass source, boolean linkToGhosts)
{
super.copyAssociationsFrom (source, linkToGhosts);
if (source instanceof BaseCultureCriteriaTemplate)
{
BaseCultureCriteriaTemplate sourceCultureCriteriaTemplate = (BaseCultureCriteriaTemplate)(source);
_CultureCriterias.copyFrom (sourceCultureCriteriaTemplate._CultureCriterias, linkToGhosts);
}
}
public void validate (ValidationContext context)
{
super.validate (context);
}
/**
* Subclasses must override this to read in their attributes
*/
protected void readExternalData(Map<String, Object> vals) throws IOException, ClassNotFoundException
{
super.readExternalData(vals);
_TemplateName = (String)(HELPER_TemplateName.readExternal (_TemplateName, vals.get(FIELD_TemplateName))); //
_User.readExternalData(vals.get(SINGLEREFERENCE_User));
_CultureCriterias.readExternalData(vals.get(MULTIPLEREFERENCE_CultureCriterias));
}
/**
* Subclasses must override this to write out their attributes
*/
protected void writeExternalData(Map<String, Object> vals) throws IOException
{
super.writeExternalData(vals);
vals.put (FIELD_TemplateName, HELPER_TemplateName.writeExternal (_TemplateName));
vals.put (SINGLEREFERENCE_User, _User.writeExternalData());
vals.put (MULTIPLEREFERENCE_CultureCriterias, _CultureCriterias.writeExternalData());
}
public void compare (BaseBusinessClass other, AttributeChangeListener listener) throws StorageException
{
super.compare (other, listener);
if (other instanceof BaseCultureCriteriaTemplate)
{
BaseCultureCriteriaTemplate otherCultureCriteriaTemplate = (BaseCultureCriteriaTemplate)(other);
if (!HELPER_TemplateName.compare(this._TemplateName, otherCultureCriteriaTemplate._TemplateName))
{
listener.notifyFieldChange(this, other, FIELD_TemplateName, HELPER_TemplateName.toObject(this._TemplateName), HELPER_TemplateName.toObject(otherCultureCriteriaTemplate._TemplateName));
}
// Compare single assocs
_User.compare (otherCultureCriteriaTemplate._User, listener);
// Compare multiple assocs
_CultureCriterias.compare (otherCultureCriteriaTemplate._CultureCriterias, listener);
}
}
public void visitTransients (AttributeVisitor visitor) throws StorageException
{
super.visitAttributes (visitor);
}
public void visitAttributes (AttributeVisitor visitor) throws StorageException
{
super.visitAttributes (visitor);
visitor.visitField(this, FIELD_TemplateName, HELPER_TemplateName.toObject(getTemplateName()));
visitor.visitAssociation (_User);
visitor.visitAssociation (_CultureCriterias);
}
public void visitAssociations (AssociationVisitor visitor, AssociatedScope scope) throws StorageException
{
super.visitAssociations (visitor, scope);
if (scope.includes (_User))
{
visitor.visit (_User);
}
if (scope.includes (_CultureCriterias))
{
visitor.visit (_CultureCriterias);
}
}
public static CultureCriteriaTemplate createCultureCriteriaTemplate (ObjectTransaction transaction) throws StorageException
{
CultureCriteriaTemplate result = new CultureCriteriaTemplate ();
result.initialiseNewObject (transaction);
return result;
}
public static CultureCriteriaTemplate getCultureCriteriaTemplateByID (ObjectTransaction transaction, Long objectID) throws StorageException
{
return (CultureCriteriaTemplate)(transaction.getObjectByID (REFERENCE_CultureCriteriaTemplate, objectID));
}
public boolean testFilter (String attribName, QueryFilter filter) throws StorageException
{
if (false)
{
throw new RuntimeException ("Game over man!!");
}
else if (attribName.equals (FIELD_TemplateName))
{
return filter.matches (getTemplateName ());
}
else if (attribName.equals (SINGLEREFERENCE_User))
{
return filter.matches (getUser ());
}
else
{
return super.testFilter (attribName, filter);
}
}
public static SearchAll SearchByAll () { return new SearchAll (); }
public static class SearchAll extends SearchObject<CultureCriteriaTemplate>
{
public SearchAll andObjectID (QueryFilter<Long> filter)
{
filter.addFilter (context, "tl_culture_template.object_id", FIELD_ObjectID);
return this;
}
public SearchAll andObjectCreated (QueryFilter<Date> filter)
{
filter.addFilter (context, "tl_culture_template.object_created_date", FIELD_ObjectCreated);
return this;
}
public SearchAll andObjectLastModified (QueryFilter<Date> filter)
{
filter.addFilter (context, "tl_culture_template.object_last_updated_date", FIELD_ObjectLastModified);
return this;
}
public SearchAll andTemplateName (QueryFilter<String> filter)
{
filter.addFilter (context, "tl_culture_template.template_name", "TemplateName");
return this;
}
public SearchAll andUser (QueryFilter<SecUser> filter)
{
filter.addFilter (context, "tl_culture_template.user_id", "User");
return this;
}
public CultureCriteriaTemplate[]
search (ObjectTransaction transaction) throws StorageException
{
BaseBusinessClass[] results = super.search (transaction, REFERENCE_CultureCriteriaTemplate, SEARCH_All, criteria);
Set<CultureCriteriaTemplate> typedResults = new LinkedHashSet <CultureCriteriaTemplate> ();
for (BaseBusinessClass bbcResult : results)
{
CultureCriteriaTemplate aResult = (CultureCriteriaTemplate)bbcResult;
typedResults.add (aResult);
}
return ObjstoreUtils.removeDeleted(transaction, typedResults).toArray (new CultureCriteriaTemplate[0]);
}
}
public static CultureCriteriaTemplate[]
searchAll (ObjectTransaction transaction) throws StorageException
{
return SearchByAll ()
.search (transaction);
}
public Object getAttribute (String attribName)
{
if (false)
{
throw new RuntimeException ("Game over man!!");
}
else if (attribName.equals (FIELD_TemplateName))
{
return HELPER_TemplateName.toObject (getTemplateName ());
}
else
{
return super.getAttribute (attribName);
}
}
public AttributeHelper getAttributeHelper (String attribName)
{
if (false)
{
throw new RuntimeException ("Game over man!!");
}
else if (attribName.equals (FIELD_TemplateName))
{
return HELPER_TemplateName;
}
else
{
return super.getAttributeHelper (attribName);
}
}
public void setAttribute (String attribName, Object attribValue) throws FieldException
{
if (false)
{
throw new RuntimeException ("Game over man!!");
}
else if (attribName.equals (FIELD_TemplateName))
{
setTemplateName ((String)(HELPER_TemplateName.fromObject (_TemplateName, attribValue)));
}
else
{
super.setAttribute (attribName, attribValue);
}
}
public boolean isWriteable (String fieldName)
{
return getWriteable (fieldName) == FieldWriteability.TRUE;
}
public FieldWriteability getWriteable (String fieldName)
{
if (false)
{
throw new RuntimeException ("Game over man!!");
}
else if (fieldName.equals (FIELD_TemplateName))
{
return getWriteability_TemplateName ();
}
else if (fieldName.equals (MULTIPLEREFERENCE_CultureCriterias))
{
return getWriteability_CultureCriterias ();
}
else if (fieldName.equals (SINGLEREFERENCE_User))
{
return getWriteability_User ();
}
else
{
return super.getWriteable (fieldName);
}
}
public void putUnwriteable (Set<String> fields)
{
if (getWriteability_TemplateName () != FieldWriteability.TRUE)
{
fields.add (FIELD_TemplateName);
}
super.putUnwriteable (fields);
}
public List<AbstractAttribute> getAttributes ()
{
List result = super.getAttributes ();
result.add(HELPER_TemplateName.getAttribObject (getClass (), _TemplateName, true, FIELD_TemplateName));
return result;
}
public Map getAttributeMetadata (String attribute)
{
if (ATTRIBUTES_METADATA_CultureCriteriaTemplate.containsKey (attribute))
{
return (Map)ATTRIBUTES_METADATA_CultureCriteriaTemplate.get (attribute);
}
else
{
return super.getAttributeMetadata (attribute);
}
}
public Object getAttributeMetadata (String attribute, String metadata)
{
if (ATTRIBUTES_METADATA_CultureCriteriaTemplate.containsKey (attribute))
{
return ((Map)ATTRIBUTES_METADATA_CultureCriteriaTemplate.get (attribute)).get(metadata);
}
else
{
return super.getAttributeMetadata (attribute, metadata);
}
}
public void preCommit (boolean willBeStored) throws Exception
{
super.preCommit(willBeStored);
if(willBeStored)
{
}
}
public oneit.servlets.objstore.binary.BinaryContentHandler getBinaryContentHandler(String attribName)
{
return super.getBinaryContentHandler(attribName);
}
public static class CultureCriteriaTemplateBehaviourDecorator extends BaseBusinessClass.BBCBehaviourDecorator<CultureCriteriaTemplate>
{
/**
* Get the attribute TemplateName
*/
public String getTemplateName (CultureCriteriaTemplate obj, String original)
{
return original;
}
/**
* Change the value set for attribute TemplateName.
* May modify the field beforehand
* Occurs before validation.
*/
public String setTemplateName (CultureCriteriaTemplate obj, String newTemplateName) throws FieldException
{
return newTemplateName;
}
}
public ORMPipeLine pipes()
{
return new CultureCriteriaTemplatePipeLineFactory<CultureCriteriaTemplate, CultureCriteriaTemplate> ((CultureCriteriaTemplate)this);
}
/**
* Use this instead of pipes() to get rid of type casting.
*/
public CultureCriteriaTemplatePipeLineFactory<CultureCriteriaTemplate, CultureCriteriaTemplate> pipelineCultureCriteriaTemplate()
{
return (CultureCriteriaTemplatePipeLineFactory<CultureCriteriaTemplate, CultureCriteriaTemplate>) pipes();
}
public static CultureCriteriaTemplatePipeLineFactory<CultureCriteriaTemplate, CultureCriteriaTemplate> pipesCultureCriteriaTemplate(Collection<CultureCriteriaTemplate> items)
{
return REFERENCE_CultureCriteriaTemplate.new CultureCriteriaTemplatePipeLineFactory<CultureCriteriaTemplate, CultureCriteriaTemplate> (items);
}
public static CultureCriteriaTemplatePipeLineFactory<CultureCriteriaTemplate, CultureCriteriaTemplate> pipesCultureCriteriaTemplate(CultureCriteriaTemplate[] _items)
{
return pipesCultureCriteriaTemplate(Arrays.asList (_items));
}
public static CultureCriteriaTemplatePipeLineFactory<CultureCriteriaTemplate, CultureCriteriaTemplate> pipesCultureCriteriaTemplate()
{
return pipesCultureCriteriaTemplate((Collection)null);
}
public class CultureCriteriaTemplatePipeLineFactory<From extends BaseBusinessClass, Me extends CultureCriteriaTemplate> extends BaseBusinessClass.ORMPipeLine<From, Me>
{
public <Prev> CultureCriteriaTemplatePipeLineFactory (PipeLine<From, Prev> pipeLine, Pipe<Prev, Me> nextPipe)
{
super (pipeLine, nextPipe);
}
public CultureCriteriaTemplatePipeLineFactory (From seed)
{
super(seed);
}
public CultureCriteriaTemplatePipeLineFactory (Collection<From> seed)
{
super(seed);
}
public PipeLine<From, ? extends Object> to(String name)
{
if (name.equals ("CultureCriterias"))
{
return toCultureCriterias ();
}
if (name.equals ("TemplateName"))
{
return toTemplateName ();
}
if (name.equals ("User"))
{
return toUser ();
}
return super.to(name);
}
public PipeLine<From, String> toTemplateName () { return pipe(new ORMAttributePipe<Me, String>(FIELD_TemplateName)); }
public SecUser.SecUserPipeLineFactory<From, SecUser> toUser () { return toUser (Filter.ALL); }
public SecUser.SecUserPipeLineFactory<From, SecUser> toUser (Filter<SecUser> filter)
{
return SecUser.REFERENCE_SecUser.new SecUserPipeLineFactory<From, SecUser> (this, new ORMSingleAssocPipe<Me, SecUser>(SINGLEREFERENCE_User, filter));
}
public CultureCriteria.CultureCriteriaPipeLineFactory<From, CultureCriteria> toCultureCriterias () { return toCultureCriterias(Filter.ALL); }
public CultureCriteria.CultureCriteriaPipeLineFactory<From, CultureCriteria> toCultureCriterias (Filter<CultureCriteria> filter)
{
return CultureCriteria.REFERENCE_CultureCriteria.new CultureCriteriaPipeLineFactory<From, CultureCriteria> (this, new ORMMultiAssocPipe<Me, CultureCriteria>(MULTIPLEREFERENCE_CultureCriterias, filter));
}
}
public boolean isTransientAttrib(String attribName)
{
return super.isTransientAttrib(attribName);
}
public boolean isTransientSingleReference(String assocName)
{
return super.isTransientSingleReference(assocName);
}
}
class DummyCultureCriteriaTemplate extends CultureCriteriaTemplate
{
// Default constructor primarily to support Externalisable
public DummyCultureCriteriaTemplate()
{
super();
}
public void assertValid ()
{
}
public SecUser getUser () throws StorageException
{
return (SecUser)(SecUser.DUMMY_SecUser);
}
/**
* Get the object id for the referenced object. Does not force a DB access.
*/
public Long getUserID ()
{
return SecUser.DUMMY_SecUser.getObjectID();
}
public int getCultureCriteriasCount () throws StorageException
{
return 0;
}
public CultureCriteria getCultureCriteriasAt (int index) throws StorageException
{
throw new RuntimeException ("No elements in a dummy object in association CultureCriterias");
}
public SortedSet getCultureCriteriasSet () throws StorageException
{
return new TreeSet();
}
}
......@@ -11,9 +11,10 @@
<ATTRIB name="Importance" type="Importance" dbcol="importance" attribHelper="EnumeratedAttributeHelper" mandatory="true" defaultValue="Importance.NOT_APPLICABLE"/>
<SINGLEREFERENCE name="CultureElement" type="CultureElement" dbcol="culture_element_id" mandatory="true" />
<SINGLEREFERENCE name="CultureElementRating" type="CultureElementRating" dbcol="culture_element_rating_id" mandatory="true" />
<SINGLEREFERENCE name="Job" type="Job" dbcol="job_id" mandatory="true" backreferenceName="CultureCriterias"/>
<SINGLEREFERENCE name="CultureElement" type="CultureElement" dbcol="culture_element_id" mandatory="true" />
<SINGLEREFERENCE name="CultureElementRating" type="CultureElementRating" dbcol="culture_element_rating_id" mandatory="true" />
<SINGLEREFERENCE name="Job" type="Job" dbcol="job_id" backreferenceName="CultureCriterias"/>
<SINGLEREFERENCE name="Template" type="CultureCriteriaTemplate" dbcol="template_id" backreferenceName="CultureCriterias"/>
</TABLE>
......
......@@ -42,7 +42,7 @@ public class CultureCriteriaPersistenceMgr extends ObjectPersistenceMgr
}
private String SELECT_COLUMNS = "{PREFIX}tl_culture_criteria.object_id as id, {PREFIX}tl_culture_criteria.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_culture_criteria.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_culture_criteria.importance, {PREFIX}tl_culture_criteria.culture_element_id, {PREFIX}tl_culture_criteria.culture_element_rating_id, {PREFIX}tl_culture_criteria.job_id, 1 AS commasafe ";
private String SELECT_COLUMNS = "{PREFIX}tl_culture_criteria.object_id as id, {PREFIX}tl_culture_criteria.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_culture_criteria.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_culture_criteria.importance, {PREFIX}tl_culture_criteria.culture_element_id, {PREFIX}tl_culture_criteria.culture_element_rating_id, {PREFIX}tl_culture_criteria.job_id, {PREFIX}tl_culture_criteria.template_id, 1 AS commasafe ";
private String SELECT_JOINS = "";
public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
......@@ -96,7 +96,8 @@ public class CultureCriteriaPersistenceMgr extends ObjectPersistenceMgr
!tl_culture_criteriaPSet.containsAttrib(CultureCriteria.FIELD_Importance)||
!tl_culture_criteriaPSet.containsAttrib(CultureCriteria.SINGLEREFERENCE_CultureElement)||
!tl_culture_criteriaPSet.containsAttrib(CultureCriteria.SINGLEREFERENCE_CultureElementRating)||
!tl_culture_criteriaPSet.containsAttrib(CultureCriteria.SINGLEREFERENCE_Job))
!tl_culture_criteriaPSet.containsAttrib(CultureCriteria.SINGLEREFERENCE_Job)||
!tl_culture_criteriaPSet.containsAttrib(CultureCriteria.SINGLEREFERENCE_Template))
{
// We will need to retrieve it
idsToFetch.add (id.longValue());
......@@ -152,6 +153,16 @@ public class CultureCriteriaPersistenceMgr extends ObjectPersistenceMgr
return results;
}
else if (refName.equals (CultureCriteria.SINGLEREFERENCE_Template))
{
String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_culture_criteria " +
"WHERE " + SELECT_JOINS + "template_id = ?";
BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, new Object[] { _objectID.longID () }, null, false);
return results;
}
else
{
throw new IllegalArgumentException ("Illegal reference type:" + refName);
......@@ -176,10 +187,10 @@ public class CultureCriteriaPersistenceMgr extends ObjectPersistenceMgr
{
int rowsUpdated = executeStatement (sqlMgr,
"UPDATE {PREFIX}tl_culture_criteria " +
"SET importance = ?, culture_element_id = ? , culture_element_rating_id = ? , job_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"SET importance = ?, culture_element_id = ? , culture_element_rating_id = ? , job_id = ? , template_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"WHERE tl_culture_criteria.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ",
CollectionUtils.listEntry (HELPER_Importance.getForSQL(dummyImportance, tl_culture_criteriaPSet.getAttrib (CultureCriteria.FIELD_Importance))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteriaPSet.getAttrib (CultureCriteria.SINGLEREFERENCE_CultureElement)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteriaPSet.getAttrib (CultureCriteria.SINGLEREFERENCE_CultureElementRating)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteriaPSet.getAttrib (CultureCriteria.SINGLEREFERENCE_Job)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
CollectionUtils.listEntry (HELPER_Importance.getForSQL(dummyImportance, tl_culture_criteriaPSet.getAttrib (CultureCriteria.FIELD_Importance))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteriaPSet.getAttrib (CultureCriteria.SINGLEREFERENCE_CultureElement)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteriaPSet.getAttrib (CultureCriteria.SINGLEREFERENCE_CultureElementRating)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteriaPSet.getAttrib (CultureCriteria.SINGLEREFERENCE_Job)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteriaPSet.getAttrib (CultureCriteria.SINGLEREFERENCE_Template)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
if (rowsUpdated != 1)
{
......@@ -440,6 +451,7 @@ public class CultureCriteriaPersistenceMgr extends ObjectPersistenceMgr
tl_culture_criteriaPSet.setAttrib(CultureCriteria.SINGLEREFERENCE_CultureElement, r.getObject ("culture_element_id"));
tl_culture_criteriaPSet.setAttrib(CultureCriteria.SINGLEREFERENCE_CultureElementRating, r.getObject ("culture_element_rating_id"));
tl_culture_criteriaPSet.setAttrib(CultureCriteria.SINGLEREFERENCE_Job, r.getObject ("job_id"));
tl_culture_criteriaPSet.setAttrib(CultureCriteria.SINGLEREFERENCE_Template, r.getObject ("template_id"));
}
......@@ -456,10 +468,10 @@ public class CultureCriteriaPersistenceMgr extends ObjectPersistenceMgr
{
executeStatement (sqlMgr,
"INSERT INTO {PREFIX}tl_culture_criteria " +
" (importance, culture_element_id, culture_element_rating_id, job_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " +
" (importance, culture_element_id, culture_element_rating_id, job_id, template_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " +
"VALUES " +
" (?, ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")",
CollectionUtils.listEntry (HELPER_Importance.getForSQL(dummyImportance, tl_culture_criteriaPSet.getAttrib (CultureCriteria.FIELD_Importance))) .listEntry (SQLManager.CheckNull((Long)(tl_culture_criteriaPSet.getAttrib (CultureCriteria.SINGLEREFERENCE_CultureElement)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteriaPSet.getAttrib (CultureCriteria.SINGLEREFERENCE_CultureElementRating)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteriaPSet.getAttrib (CultureCriteria.SINGLEREFERENCE_Job)))) .listEntry (objectID.longID ()).toList().toArray());
" (?, ?, ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")",
CollectionUtils.listEntry (HELPER_Importance.getForSQL(dummyImportance, tl_culture_criteriaPSet.getAttrib (CultureCriteria.FIELD_Importance))) .listEntry (SQLManager.CheckNull((Long)(tl_culture_criteriaPSet.getAttrib (CultureCriteria.SINGLEREFERENCE_CultureElement)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteriaPSet.getAttrib (CultureCriteria.SINGLEREFERENCE_CultureElementRating)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteriaPSet.getAttrib (CultureCriteria.SINGLEREFERENCE_Job)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteriaPSet.getAttrib (CultureCriteria.SINGLEREFERENCE_Template)))) .listEntry (objectID.longID ()).toList().toArray());
tl_culture_criteriaPSet.setStatus (PersistentSetStatus.PROCESSED);
}
......
package performa.orm;
import java.io.*;
import java.util.*;
import oneit.appservices.config.*;
import oneit.logging.*;
import oneit.objstore.*;
import oneit.utils.*;
import oneit.security.*;
public class CultureCriteriaTemplate extends BaseCultureCriteriaTemplate
{
private static final long serialVersionUID = 0L;
// This constructor should not be called
public CultureCriteriaTemplate ()
{
// Do not add any code to this, always put it in initialiseNewObject
}
}
<?xml version="1.0" encoding="UTF-8"?>
<ROOT xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='http://www.oneit.com.au/schemas/5.2/BusinessObject.xsd'>
<BUSINESSCLASS name="CultureCriteriaTemplate" package="performa.orm">
<IMPORT value="oneit.security.*"/>
<MULTIPLEREFERENCE name="CultureCriterias" type="CultureCriteria" backreferenceName="Template" />
<TABLE name="tl_culture_template" tablePrefix="object" polymorphic="FALSE">
<ATTRIB name="TemplateName" type="String" dbcol="template_name" length="100" mandatory="true"/>
<SINGLEREFERENCE name="User" type="SecUser" dbcol="user_id" />
</TABLE>
<SEARCH type="All" paramFilter="tl_culture_template.object_id is not null" orderBy="tl_culture_template.object_id" />
</BUSINESSCLASS>
</ROOT>
\ No newline at end of file
package performa.orm;
import java.io.*;
import java.util.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import oneit.logging.*;
import oneit.objstore.*;
import oneit.objstore.assocs.*;
import oneit.objstore.rdbms.*;
import oneit.objstore.utils.*;
import oneit.sql.*;
import oneit.utils.resource.*;
import oneit.utils.*;
import oneit.utils.threading.*;
import oneit.security.*;
/**
* IMPORTANT!!!! Autogenerated class, DO NOT EDIT!!!!!
* Template: Infrastructure8.2[oneit.objstore.PersistenceMgrTemplate.xsl]
*/
public class CultureCriteriaTemplatePersistenceMgr extends ObjectPersistenceMgr
{
private static final LoggingArea CultureCriteriaTemplatePersistence = LoggingArea.createLoggingArea(ObjectPersistenceMgr.OBJECT_PERSISTENCE, "CultureCriteriaTemplate");
// Private attributes corresponding to business object data
private String dummyTemplateName;
// Static constants corresponding to attribute helpers
private static final DefaultAttributeHelper HELPER_TemplateName = DefaultAttributeHelper.INSTANCE;
public CultureCriteriaTemplatePersistenceMgr ()
{
dummyTemplateName = (String)(HELPER_TemplateName.initialise (dummyTemplateName));
}
private String SELECT_COLUMNS = "{PREFIX}tl_culture_template.object_id as id, {PREFIX}tl_culture_template.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_culture_template.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_culture_template.template_name, {PREFIX}tl_culture_template.user_id, 1 AS commasafe ";
private String SELECT_JOINS = "";
public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
{
Set<BaseBusinessClass> resultByIDs = fetchByIDs(Collections.singleton (id), allPSets, context, sqlMgr);
if (resultByIDs.isEmpty ())
{
return null;
}
else if (resultByIDs.size () > 1)
{
throw new StorageException ("Multiple results for id:" + id);
}
else
{
return resultByIDs.iterator ().next ();
}
}
public Set<BaseBusinessClass> fetchByIDs(Set<ObjectID> ids, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
{
Set<BaseBusinessClass> results = new HashSet ();
Set<Long> idsToFetch = new HashSet ();
for (ObjectID id : ids)
{
if (context.containsObject(id)) // Check for cached version
{
BaseBusinessClass objectToReturn = context.getObjectToReplace(id, CultureCriteriaTemplate.REFERENCE_CultureCriteriaTemplate);
if (objectToReturn instanceof CultureCriteriaTemplate)
{
LogMgr.log (CultureCriteriaTemplatePersistence, LogLevel.TRACE, "Cache hit for id:", id);
results.add (objectToReturn);
}
else
{
throw new StorageException ("Cache collision for id:" + id + " with object " + objectToReturn + "while fetching a CultureCriteriaTemplate");
}
}
PersistentSet tl_culture_templatePSet = allPSets.getPersistentSet(id, "tl_culture_template", PersistentSetStatus.FETCHED);
// Check for persistent sets already prefetched
if (false || !tl_culture_templatePSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) ||
!tl_culture_templatePSet.containsAttrib(CultureCriteriaTemplate.FIELD_TemplateName)||
!tl_culture_templatePSet.containsAttrib(CultureCriteriaTemplate.SINGLEREFERENCE_User))
{
// We will need to retrieve it
idsToFetch.add (id.longValue());
}
else
{
LogMgr.log (CultureCriteriaTemplatePersistence, LogLevel.DEBUG2, "Persistent set preloaded id:", id);
/* Non Polymorphic */
CultureCriteriaTemplate result = new CultureCriteriaTemplate ();
result.setFromPersistentSets(id, allPSets);
context.addRetrievedObject(result);
results.add (result);
}
}
if (idsToFetch.size () > 0)
{
String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_culture_template " +
"WHERE " + SELECT_JOINS + "{PREFIX}tl_culture_template.object_id IN ?";
BaseBusinessClass[] resultsFetched = loadQuery (allPSets, sqlMgr, context, query, new Object[] { idsToFetch }, null, false);
for (BaseBusinessClass objFetched : resultsFetched)
{
results.add (objFetched);
}
}
return results;
}
public BaseBusinessClass[] getReferencedObjects(ObjectID _objectID, String refName, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
{
if (false)
{
throw new RuntimeException ();
}
else
{
throw new IllegalArgumentException ("Illegal reference type:" + refName);
}
}
public void update(BaseBusinessClass obj, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, ConcurrentUpdateConflictException, StorageException
{
EqualityResult test = EqualityResult.compare (obj, obj.getBackup ());
ObjectID objectID = obj.getID ();
if (!test.areAttributesEqual () || !test.areSingleAssocsEqual () || obj.getForcedSave())
{
PersistentSet tl_culture_templatePSet = allPSets.getPersistentSet(objectID, "tl_culture_template");
if (tl_culture_templatePSet.getStatus () != PersistentSetStatus.PROCESSED &&
tl_culture_templatePSet.getStatus () != PersistentSetStatus.DEFERRED)
{
int rowsUpdated = executeStatement (sqlMgr,
"UPDATE {PREFIX}tl_culture_template " +
"SET template_name = ?, user_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"WHERE tl_culture_template.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ",
CollectionUtils.listEntry (HELPER_TemplateName.getForSQL(dummyTemplateName, tl_culture_templatePSet.getAttrib (CultureCriteriaTemplate.FIELD_TemplateName))).listEntry (SQLManager.CheckNull((Long)(tl_culture_templatePSet.getAttrib (CultureCriteriaTemplate.SINGLEREFERENCE_User)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
if (rowsUpdated != 1)
{
// Error, either a concurrency error or a not-exists error
ResultSet r = executeQuery (sqlMgr,
"SELECT object_id, object_LAST_UPDATED_DATE FROM {PREFIX}tl_culture_template WHERE object_id = ?",
new Object[] { objectID.longID () });
if (r.next ())
{
Date d = new java.util.Date (r.getTimestamp (2).getTime());
String errorMsg = QueryBuilder.buildQueryString ("Concurrent update error:[?] for row:[?] objDate:[?] dbDate:[?]",
new Object[] { "tl_culture_template", objectID.longID (), obj.getObjectLastModified (), d },
sqlMgr.getPortabilityServices ());
LogMgr.log (CultureCriteriaTemplatePersistence, LogLevel.BUSINESS1, errorMsg);
throw new ConcurrentUpdateConflictException (obj, "tl_culture_template");
}
else
{
String errorMsg = "Attempt to update nonexistent row in table:tl_culture_template for row:" + objectID + " objDate:" + obj.getObjectLastModified ();
LogMgr.log (CultureCriteriaTemplatePersistence, LogLevel.BUSINESS1, errorMsg);
throw new RuntimeException (errorMsg);
}
}
tl_culture_templatePSet.setStatus (PersistentSetStatus.PROCESSED);
}
}
else
{
LogMgr.log (CultureCriteriaTemplatePersistence, LogLevel.DEBUG1, "Skipping update since no attribs or simple assocs changed on ", objectID);
}
}
public void delete(BaseBusinessClass obj, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, ConcurrentUpdateConflictException, StorageException
{
ObjectID objectID = obj.getID ();
PersistentSet tl_culture_templatePSet = allPSets.getPersistentSet(objectID, "tl_culture_template");
LogMgr.log (CultureCriteriaTemplatePersistence, LogLevel.DEBUG2, "Deleting:", objectID);
if (tl_culture_templatePSet.getStatus () != PersistentSetStatus.PROCESSED &&
tl_culture_templatePSet.getStatus () != PersistentSetStatus.DEFERRED)
{
int rowsDeleted = executeStatement (sqlMgr,
"DELETE " +
"FROM {PREFIX}tl_culture_template " +
"WHERE tl_culture_template.object_id = ? AND " + sqlMgr.getPortabilityServices ().getTruncatedTimestampColumn ("object_LAST_UPDATED_DATE") + " = " + sqlMgr.getPortabilityServices ().getTruncatedTimestampParam("?") + " ",
new Object[] { objectID.longID(), obj.getObjectLastModified () });
if (rowsDeleted != 1)
{
// Error, either a concurrency error or a not-exists error
ResultSet r = executeQuery (sqlMgr,
"SELECT object_id FROM {PREFIX}tl_culture_template WHERE object_id = ?",
new Object[] { objectID.longID() });
if (r.next ())
{
throw new ConcurrentUpdateConflictException (obj, "tl_culture_template");
}
else
{
String errorMsg = "Attempt to delete nonexistent row in table:tl_culture_template for row:" + objectID;
LogMgr.log (CultureCriteriaTemplatePersistence, LogLevel.SYSTEMERROR1, errorMsg);
throw new RuntimeException (errorMsg);
}
}
tl_culture_templatePSet.setStatus (PersistentSetStatus.PROCESSED);
}
}
public ResultSet executeSearchQueryAll (SQLManager sqlMgr) throws SQLException
{
throw new RuntimeException ("NOT implemented: executeSearchQueryAll");
}
public BaseBusinessClass[] loadQuery (PersistentSetCollection allPSets, SQLManager sqlMgr, RDBMSPersistenceContext context, String query, Object[] params, Integer maxRows, boolean truncateExtra) throws SQLException, StorageException
{
LinkedHashMap<ObjectID, CultureCriteriaTemplate> results = new LinkedHashMap ();
ResultSet r = executeQuery (sqlMgr, query, params);
while (r.next())
{
ThreadUtils.checkInterrupted ();
ObjectID objectID = new ObjectID (CultureCriteriaTemplate.REFERENCE_CultureCriteriaTemplate.getObjectIDSpace (), r.getLong ("id"));
CultureCriteriaTemplate resultElement;
if (maxRows != null && !results.containsKey (objectID) && results.size () >= maxRows)
{
if (truncateExtra)
{
break;
}
else
{
throw new SearchRowsExceededException ("Maximum rows exceeded:" + maxRows);
}
}
if (context.containsObject(objectID))
{
BaseBusinessClass cachedElement = context.getObjectToReplace(objectID, CultureCriteriaTemplate.REFERENCE_CultureCriteriaTemplate);
if (cachedElement instanceof CultureCriteriaTemplate)
{
LogMgr.log (CultureCriteriaTemplatePersistence, LogLevel.TRACE, "Cache hit for id:", objectID);
resultElement = (CultureCriteriaTemplate)cachedElement;
}
else
{
throw new StorageException ("Cache collision for id:" + objectID + " with object " + cachedElement + "while fetching a CultureCriteriaTemplate");
}
}
else
{
PersistentSet tl_culture_templatePSet = allPSets.getPersistentSet(objectID, "tl_culture_template", PersistentSetStatus.FETCHED);
createPersistentSetFromRS(allPSets, r, objectID);
resultElement = new CultureCriteriaTemplate ();
resultElement.setFromPersistentSets(objectID, allPSets);
context.addRetrievedObject(resultElement);
}
results.put (objectID, resultElement);
}
BaseBusinessClass[] resultsArr = new BaseBusinessClass[results.size ()];
return results.values ().toArray (resultsArr);
}
public BaseBusinessClass[] find(String searchType, PersistentSetCollection allPSets, Hashtable criteria, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
{
LogMgr.log (CultureCriteriaTemplatePersistence, LogLevel.DEBUG2, "Search executing:", searchType, " criteria:", criteria);
String customParamFilter = (String)criteria.get (SEARCH_CustomFilter);
String customOrderBy = (String)criteria.get (SEARCH_OrderBy);
String customTables = (String)criteria.get (SEARCH_CustomExtraTables);
Boolean noCommaBeforeCustomExtraTables = (Boolean)criteria.get (SEARCH_CustomExtraTablesNoComma);
if (searchType.equals (SEARCH_CustomSQL))
{
Set<ObjectID> processedIDs = new HashSet();
SearchParamTransform tx = new SearchParamTransform (criteria);
Object[] searchParams;
customParamFilter = StringUtils.replaceParams (customParamFilter, tx);
searchParams = tx.getParamsArray();
if (customOrderBy != null)
{
customOrderBy = " ORDER BY " + customOrderBy;
}
else
{
customOrderBy = "";
}
ResultSet r;
String concatCustomTableWith = CollectionUtils.equals(noCommaBeforeCustomExtraTables, true) ? " " : ", ";
String tables = StringUtils.subBlanks(customTables) == null ? " " : concatCustomTableWith + customTables + " ";
String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_culture_template " + tables +
"WHERE " + SELECT_JOINS + " " + customParamFilter + customOrderBy;
BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, searchParams, null, false);
return results;
}
else if (searchType.equals (CultureCriteriaTemplate.SEARCH_All))
{
// Local scope for transformed variables
{
}
String orderBy = " ORDER BY tl_culture_template.object_id";
String tables = " ";
Set<String> joinTableSet = new HashSet<String>();
String filter;
Object[] searchParams; // paramFilter: tl_culture_template.object_id is not null
String preFilter = "(tl_culture_template.object_id is not null)"
+ " ";
preFilter += context.getLoadingAttributes ().getCustomSQL() ;
SearchParamTransform tx = new SearchParamTransform (criteria);
filter = StringUtils.replaceParams (preFilter, tx);
searchParams = tx.getParamsArray();
Integer maxRows = context.getLoadingAttributes ().getMaxRows ();
boolean truncateExtra = !context.getLoadingAttributes ().isFailIfMaxExceeded();
String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_culture_template " + tables + tableSetToSQL(joinTableSet) +
"WHERE " + SELECT_JOINS + " " + filter + orderBy;
BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, searchParams, maxRows, truncateExtra);
return results;
}
else
{
throw new IllegalArgumentException ("Illegal search type:" + searchType);
}
}
private void createPersistentSetFromRS(PersistentSetCollection allPSets, ResultSet r, ObjectID objectID) throws SQLException
{
PersistentSet tl_culture_templatePSet = allPSets.getPersistentSet(objectID, "tl_culture_template", PersistentSetStatus.FETCHED);
// Object Modified
tl_culture_templatePSet.setAttrib(BaseBusinessClass.FIELD_ObjectLastModified, r.getTimestamp ("LAST_UPDATED_DATE"));
// Object Created
tl_culture_templatePSet.setAttrib(BaseBusinessClass.FIELD_ObjectCreated, r.getTimestamp ("CREATED_DATE"));
tl_culture_templatePSet.setAttrib(CultureCriteriaTemplate.FIELD_TemplateName, HELPER_TemplateName.getFromRS(dummyTemplateName, r, "template_name"));
tl_culture_templatePSet.setAttrib(CultureCriteriaTemplate.SINGLEREFERENCE_User, r.getObject ("user_id"));
}
public void create(BaseBusinessClass obj, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
{
ObjectID objectID = obj.getID ();
PersistentSet tl_culture_templatePSet = allPSets.getPersistentSet(objectID, "tl_culture_template");
if (tl_culture_templatePSet.getStatus () != PersistentSetStatus.PROCESSED &&
tl_culture_templatePSet.getStatus () != PersistentSetStatus.DEFERRED)
{
executeStatement (sqlMgr,
"INSERT INTO {PREFIX}tl_culture_template " +
" (template_name, user_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " +
"VALUES " +
" (?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")",
CollectionUtils.listEntry (HELPER_TemplateName.getForSQL(dummyTemplateName, tl_culture_templatePSet.getAttrib (CultureCriteriaTemplate.FIELD_TemplateName))) .listEntry (SQLManager.CheckNull((Long)(tl_culture_templatePSet.getAttrib (CultureCriteriaTemplate.SINGLEREFERENCE_User)))) .listEntry (objectID.longID ()).toList().toArray());
tl_culture_templatePSet.setStatus (PersistentSetStatus.PROCESSED);
}
}
}
......@@ -130,6 +130,7 @@ public class WebUtils
renderMode.equals(ASSESSMENT_CRITERIA) ||
renderMode.equals(WORKPLACE_CULTURE) ||
renderMode.equals(JOB_MATCH) ||
renderMode.equals(JOB_REVIEW) || renderMode.equals(CREATED_JOB);
renderMode.equals(JOB_REVIEW) ||
renderMode.equals(CREATED_JOB);
}
}
\ No newline at end of file
ALTER TABLE tl_assessment_criteria ALTER COLUMN job_id drop NOT NULL;
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!-- @AutoRun -->
<OBJECTS name="" xmlns:oneit="http://www.1iT.com.au">
<NODE name="Script" factory="Vector">
<NODE name="DDL" factory="Participant" class="oneit.sql.transfer.RedefineTableOperation">
<tableName factory="String">tl_assessment_criteria</tableName>
<column name="template_id" type="Long" length="11" nullable="true"/>
</NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_assessment_criteria" indexName="idx_tl_assessment_criteria_template_id" isUnique="false">
<column name="template_id"/>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
ALTER TABLE tl_culture_criteria ALTER COLUMN job_id drop NOT NULL;
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!-- @AutoRun -->
<OBJECTS name="" xmlns:oneit="http://www.1iT.com.au">
<NODE name="Script" factory="Vector">
<NODE name="DDL" factory="Participant" class="oneit.sql.transfer.RedefineTableOperation">
<tableName factory="String">tl_culture_criteria</tableName>
<column name="template_id" type="Long" length="11" nullable="true"/>
</NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_culture_criteria" indexName="idx_tl_culture_criteria_template_id" isUnique="false">
<column name="template_id"/>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!-- @AutoRun -->
<OBJECTS name="" xmlns:oneit="http://www.1iT.com.au">
<NODE name="Script" factory="Vector">
<NODE name="DDL" factory="Participant" class="oneit.sql.transfer.DefineTableOperation">
<tableName factory="String">tl_assessment_template</tableName>
<column name="object_id" type="Long" nullable="false" length="11"/>
<column name="object_last_updated_date" type="Date" nullable="false" length="22"/>
<column name="object_created_date" type="Date" nullable="false" length="22"/>
<column name="template_name" type="String" nullable="false" length="100"/>
<column name="user_id" type="Long" length="11" nullable="true"/>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!-- @AutoRun -->
<OBJECTS name="" xmlns:oneit="http://www.1iT.com.au">
<NODE name="Script" factory="Vector">
<NODE name="DDL" factory="Participant" class="oneit.sql.transfer.DefineTableOperation">
<tableName factory="String">tl_culture_template</tableName>
<column name="object_id" type="Long" nullable="false" length="11"/>
<column name="object_last_updated_date" type="Date" nullable="false" length="22"/>
<column name="object_created_date" type="Date" nullable="false" length="22"/>
<column name="template_name" type="String" nullable="false" length="100"/>
<column name="user_id" type="Long" length="11" nullable="true"/>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment