Commit c56556b9 by chenith Committed by Harsh Shah

Updated CultureCriteriaAnswer and Answer relationship with Candidate.

- CultureCriteriaAnswer/Answer --> Move to candidate level instead of JobApplication level.
- CultureCriteriaAnswer -- Replace CultureCriteria for each answer with CultureElement.
parent 1da6ceaf
...@@ -10,10 +10,10 @@ ...@@ -10,10 +10,10 @@
<column name="object_created_date" type="Date" nullable="false" length="22"/> <column name="object_created_date" type="Date" nullable="false" length="22"/>
<column name="answer_number" type="Long" nullable="false"/> <column name="answer_number" type="Long" nullable="false"/>
<column name="section_number" type="Long" length="11" nullable="true"/> <column name="section_number" type="Long" length="11" nullable="true"/>
<column name="job_application_id" type="Long" length="11" nullable="false"/> <column name="candidate_id" type="Long" length="11" nullable="false"/>
<column name="quest_number" type="Long" length="11" nullable="true"/> <column name="quest_number" type="Long" length="11" nullable="true"/>
</NODE> </NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_answer" indexName="idx_tl_answer_job_application_id" isUnique="false"><column name="job_application_id"/></NODE> <NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_answer" indexName="idx_tl_answer_candidate_id" isUnique="false"><column name="candidate_id"/></NODE>
</NODE></OBJECTS> </NODE></OBJECTS>
\ No newline at end of file
...@@ -8,13 +8,11 @@ ...@@ -8,13 +8,11 @@
<column name="object_id" type="Long" nullable="false" length="11"/> <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_last_updated_date" type="Date" nullable="false" length="22"/>
<column name="object_created_date" type="Date" nullable="false" length="22"/> <column name="object_created_date" type="Date" nullable="false" length="22"/>
<column name="culture_criteria_id" type="Long" length="11" nullable="false"/> <column name="culture_element_id" type="Long" length="11" nullable="false"/>
<column name="selected_question_id" type="Long" length="11" nullable="false"/> <column name="selected_question_id" type="Long" length="11" nullable="false"/>
<column name="job_application_id" type="Long" length="11" nullable="false"/> <column name="candidate_id" type="Long" length="11" nullable="false"/>
</NODE> </NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_culture_criteria_answer" indexName="idx_tl_culture_criteria_answer_culture_criteria_id" isUnique="false"><column name="culture_criteria_id"/></NODE> <NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_culture_criteria_answer" indexName="idx_tl_culture_criteria_answer_candidate_id" isUnique="false"><column name="candidate_id"/></NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_culture_criteria_answer" indexName="idx_tl_culture_criteria_answer_job_application_id" isUnique="false"><column name="job_application_id"/></NODE>
</NODE></OBJECTS> </NODE></OBJECTS>
\ No newline at end of file
...@@ -10,7 +10,7 @@ CREATE TABLE tl_answer ( ...@@ -10,7 +10,7 @@ CREATE TABLE tl_answer (
, ,
answer_number numeric(12) NOT NULL, answer_number numeric(12) NOT NULL,
section_number numeric(12) NULL, section_number numeric(12) NULL,
job_application_id numeric(12) NOT NULL, candidate_id numeric(12) NOT NULL,
quest_number numeric(12) NULL quest_number numeric(12) NULL
); );
...@@ -24,5 +24,5 @@ ALTER TABLE tl_answer ADD ...@@ -24,5 +24,5 @@ ALTER TABLE tl_answer ADD
CREATE INDEX idx_tl_answer_job_application_id CREATE INDEX idx_tl_answer_candidate_id
ON tl_answer (job_application_id); ON tl_answer (candidate_id);
...@@ -8,9 +8,9 @@ CREATE TABLE tl_culture_criteria_answer ( ...@@ -8,9 +8,9 @@ CREATE TABLE tl_culture_criteria_answer (
object_last_updated_date datetime DEFAULT getdate() NOT NULL , object_last_updated_date datetime DEFAULT getdate() NOT NULL ,
object_created_date datetime DEFAULT getdate() NOT NULL object_created_date datetime DEFAULT getdate() NOT NULL
, ,
culture_criteria_id numeric(12) NOT NULL, culture_element_id numeric(12) NOT NULL,
selected_question_id numeric(12) NOT NULL, selected_question_id numeric(12) NOT NULL,
job_application_id numeric(12) NOT NULL candidate_id numeric(12) NOT NULL
); );
...@@ -23,8 +23,5 @@ ALTER TABLE tl_culture_criteria_answer ADD ...@@ -23,8 +23,5 @@ ALTER TABLE tl_culture_criteria_answer ADD
CREATE INDEX idx_tl_culture_criteria_answer_culture_criteria_id CREATE INDEX idx_tl_culture_criteria_answer_candidate_id
ON tl_culture_criteria_answer (culture_criteria_id); ON tl_culture_criteria_answer (candidate_id);
CREATE INDEX idx_tl_culture_criteria_answer_job_application_id
ON tl_culture_criteria_answer (job_application_id);
...@@ -11,7 +11,7 @@ CREATE TABLE tl_answer ( ...@@ -11,7 +11,7 @@ CREATE TABLE tl_answer (
, ,
answer_number number(12) NOT NULL, answer_number number(12) NOT NULL,
section_number number(12) NULL, section_number number(12) NULL,
job_application_id number(12) NOT NULL, candidate_id number(12) NOT NULL,
quest_number number(12) NULL quest_number number(12) NULL
); );
...@@ -25,5 +25,5 @@ ALTER TABLE tl_answer ADD ...@@ -25,5 +25,5 @@ ALTER TABLE tl_answer ADD
CREATE INDEX idx_tl_answer_job_application_id CREATE INDEX idx_tl_answer_candidate_id
ON tl_answer (job_application_id); ON tl_answer (candidate_id);
...@@ -9,9 +9,9 @@ CREATE TABLE tl_culture_criteria_answer ( ...@@ -9,9 +9,9 @@ CREATE TABLE tl_culture_criteria_answer (
object_last_updated_date date DEFAULT SYSDATE NOT NULL , object_last_updated_date date DEFAULT SYSDATE NOT NULL ,
object_created_date date DEFAULT SYSDATE NOT NULL object_created_date date DEFAULT SYSDATE NOT NULL
, ,
culture_criteria_id number(12) NOT NULL, culture_element_id number(12) NOT NULL,
selected_question_id number(12) NOT NULL, selected_question_id number(12) NOT NULL,
job_application_id number(12) NOT NULL candidate_id number(12) NOT NULL
); );
...@@ -24,8 +24,5 @@ ALTER TABLE tl_culture_criteria_answer ADD ...@@ -24,8 +24,5 @@ ALTER TABLE tl_culture_criteria_answer ADD
CREATE INDEX idx_tl_culture_criteria_answer_culture_criteria_id CREATE INDEX idx_tl_culture_criteria_answer_candidate_id
ON tl_culture_criteria_answer (culture_criteria_id); ON tl_culture_criteria_answer (candidate_id);
CREATE INDEX idx_tl_culture_criteria_answer_job_application_id
ON tl_culture_criteria_answer (job_application_id);
...@@ -11,7 +11,7 @@ CREATE TABLE tl_answer ( ...@@ -11,7 +11,7 @@ CREATE TABLE tl_answer (
, ,
answer_number numeric(12) NOT NULL, answer_number numeric(12) NOT NULL,
section_number numeric(12) NULL, section_number numeric(12) NULL,
job_application_id numeric(12) NOT NULL, candidate_id numeric(12) NOT NULL,
quest_number numeric(12) NULL quest_number numeric(12) NULL
); );
...@@ -25,5 +25,5 @@ ALTER TABLE tl_answer ADD ...@@ -25,5 +25,5 @@ ALTER TABLE tl_answer ADD
CREATE INDEX idx_tl_answer_job_application_id CREATE INDEX idx_tl_answer_candidate_id
ON tl_answer (job_application_id); ON tl_answer (candidate_id);
...@@ -9,9 +9,9 @@ CREATE TABLE tl_culture_criteria_answer ( ...@@ -9,9 +9,9 @@ CREATE TABLE tl_culture_criteria_answer (
object_last_updated_date timestamp DEFAULT NOW() NOT NULL , object_last_updated_date timestamp DEFAULT NOW() NOT NULL ,
object_created_date timestamp DEFAULT NOW() NOT NULL object_created_date timestamp DEFAULT NOW() NOT NULL
, ,
culture_criteria_id numeric(12) NOT NULL, culture_element_id numeric(12) NOT NULL,
selected_question_id numeric(12) NOT NULL, selected_question_id numeric(12) NOT NULL,
job_application_id numeric(12) NOT NULL candidate_id numeric(12) NOT NULL
); );
...@@ -24,8 +24,5 @@ ALTER TABLE tl_culture_criteria_answer ADD ...@@ -24,8 +24,5 @@ ALTER TABLE tl_culture_criteria_answer ADD
CREATE INDEX idx_tl_culture_criteria_answer_culture_criteria_id CREATE INDEX idx_tl_culture_criteria_answer_candidate_id
ON tl_culture_criteria_answer (culture_criteria_id); ON tl_culture_criteria_answer (candidate_id);
CREATE INDEX idx_tl_culture_criteria_answer_job_application_id
ON tl_culture_criteria_answer (job_application_id);
...@@ -45,9 +45,9 @@ public class CompleteApplicationFP extends SaveFP ...@@ -45,9 +45,9 @@ public class CompleteApplicationFP extends SaveFP
HttpServletRequest request = submission.getRequest(); HttpServletRequest request = submission.getRequest();
JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication"); JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication");
if(jobApplication.getAlreadyCompletedApplicationForCulture()==null) if(!jobApplication.cultureCompleted())
{ {
BusinessObjectParser.assertFieldCondition(jobApplication.getCultureCriteriaAnswersCount()>0, jobApplication, jobApplication.FIELD_ObjectID, "completeCulture", exceptions, true, request); BusinessObjectParser.assertFieldCondition(jobApplication.getCandidate().getCultureCriteriaAnswersCount()>0, jobApplication, jobApplication.FIELD_ObjectID, "completeCulture", exceptions, true, request);
} }
super.validate(process, submission, exceptions, params); super.validate(process, submission, exceptions, params);
......
...@@ -24,7 +24,7 @@ public class SaveAndExitCultureFP extends SaveFP ...@@ -24,7 +24,7 @@ public class SaveAndExitCultureFP extends SaveFP
LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1,"In SaveAndExitCultureFP saving job application: ", jobApplication ); LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1,"In SaveAndExitCultureFP saving job application: ", jobApplication );
for (CultureCriteriaAnswer answer : jobApplication.getCultureCriteriaAnswersSet()) for (CultureCriteriaAnswer answer : jobApplication.getCandidate().getCultureCriteriaAnswersSet())
{ {
if(answer.getSelectedQuestion() == null) if(answer.getSelectedQuestion() == null)
{ {
......
...@@ -24,7 +24,7 @@ public class SaveAndExitWorkStypeFP extends SaveFP ...@@ -24,7 +24,7 @@ public class SaveAndExitWorkStypeFP extends SaveFP
LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1,"In SaveAndExitWorkStypeFP saving job application: ", jobApplication ); LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1,"In SaveAndExitWorkStypeFP saving job application: ", jobApplication );
for (Answer answer : jobApplication.getProfileAssessmentAnswersSet()) for (Answer answer : jobApplication.getCandidate().getProfileAssessmentAnswersSet())
{ {
if(answer.getAnswerNo() == null) if(answer.getAnswerNo() == null)
{ {
......
package performa.form; package performa.form;
import java.util.Date;
import java.util.Map; import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import oneit.business.content.Article;
import oneit.components.ParticipantInitialisationContext; import oneit.components.ParticipantInitialisationContext;
import oneit.email.ConfigurableArticleTemplateEmailer; import oneit.email.ConfigurableArticleTemplateEmailer;
import oneit.email.ConfigurableEmailerException; import oneit.email.ConfigurableEmailerException;
import oneit.logging.*; import oneit.logging.*;
import oneit.net.LoopbackHTTP;
import oneit.objstore.StorageException; import oneit.objstore.StorageException;
import oneit.objstore.parser.BusinessObjectParser; import oneit.objstore.parser.BusinessObjectParser;
import oneit.security.SecUser; import oneit.security.SecUser;
...@@ -18,7 +15,6 @@ import oneit.servlets.security.SessionSecUserDecorator; ...@@ -18,7 +15,6 @@ import oneit.servlets.security.SessionSecUserDecorator;
import oneit.utils.*; import oneit.utils.*;
import performa.orm.*; import performa.orm.*;
import performa.utils.Utils; import performa.utils.Utils;
import performa.utils.WebUtils;
public class VerifyIdentityFP extends ORMProcessFormProcessor public class VerifyIdentityFP extends ORMProcessFormProcessor
......
...@@ -32,7 +32,7 @@ public class Answer extends BaseAnswer ...@@ -32,7 +32,7 @@ public class Answer extends BaseAnswer
{ {
Filter<Answer> filter = Answer.SearchByAll().andQuestion(new EqualsFilter<>(rightQuestion)); Filter<Answer> filter = Answer.SearchByAll().andQuestion(new EqualsFilter<>(rightQuestion));
Answer rightAnswer = CollectionFilter.getFirstMatch(getJobApplication().getProfileAssessmentAnswersSet(), filter); Answer rightAnswer = CollectionFilter.getFirstMatch(getCandidate().getProfileAssessmentAnswersSet(), filter);
if(rightAnswer!=null) if(rightAnswer!=null)
{ {
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<ATTRIB name="AnswerNo" type="Integer" dbcol="answer_number" mandatory="true"/> <ATTRIB name="AnswerNo" type="Integer" dbcol="answer_number" mandatory="true"/>
<SINGLEREFERENCE name="Section" type="Section" dbcol="section_number" /> <SINGLEREFERENCE name="Section" type="Section" dbcol="section_number" />
<SINGLEREFERENCE name="JobApplication" type="JobApplication" dbcol="job_application_id" backreferenceName="ProfileAssessmentAnswers" mandatory="true"/> <SINGLEREFERENCE name="Candidate" type="Candidate" dbcol="candidate_id" backreferenceName="ProfileAssessmentAnswers" mandatory="true"/>
<SINGLEREFERENCE name="Question" type="Question" dbcol="quest_number" /> <SINGLEREFERENCE name="Question" type="Question" dbcol="quest_number" />
</TABLE> </TABLE>
......
...@@ -41,7 +41,7 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -41,7 +41,7 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr
} }
private String SELECT_COLUMNS = "{PREFIX}tl_answer.object_id as id, {PREFIX}tl_answer.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_answer.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_answer.answer_number, {PREFIX}tl_answer.section_number, {PREFIX}tl_answer.job_application_id, {PREFIX}tl_answer.quest_number, 1 AS commasafe "; private String SELECT_COLUMNS = "{PREFIX}tl_answer.object_id as id, {PREFIX}tl_answer.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_answer.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_answer.answer_number, {PREFIX}tl_answer.section_number, {PREFIX}tl_answer.candidate_id, {PREFIX}tl_answer.quest_number, 1 AS commasafe ";
private String SELECT_JOINS = ""; private String SELECT_JOINS = "";
public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
...@@ -94,7 +94,7 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -94,7 +94,7 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr
if (false || !tl_answerPSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) || if (false || !tl_answerPSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) ||
!tl_answerPSet.containsAttrib(Answer.FIELD_AnswerNo)|| !tl_answerPSet.containsAttrib(Answer.FIELD_AnswerNo)||
!tl_answerPSet.containsAttrib(Answer.SINGLEREFERENCE_Section)|| !tl_answerPSet.containsAttrib(Answer.SINGLEREFERENCE_Section)||
!tl_answerPSet.containsAttrib(Answer.SINGLEREFERENCE_JobApplication)|| !tl_answerPSet.containsAttrib(Answer.SINGLEREFERENCE_Candidate)||
!tl_answerPSet.containsAttrib(Answer.SINGLEREFERENCE_Question)) !tl_answerPSet.containsAttrib(Answer.SINGLEREFERENCE_Question))
{ {
// We will need to retrieve it // We will need to retrieve it
...@@ -141,11 +141,11 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -141,11 +141,11 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr
{ {
throw new RuntimeException (); throw new RuntimeException ();
} }
else if (refName.equals (Answer.SINGLEREFERENCE_JobApplication)) else if (refName.equals (Answer.SINGLEREFERENCE_Candidate))
{ {
String query = "SELECT " + SELECT_COLUMNS + String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_answer " + "FROM {PREFIX}tl_answer " +
"WHERE " + SELECT_JOINS + "job_application_id = ?"; "WHERE " + SELECT_JOINS + "candidate_id = ?";
BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, new Object[] { _objectID.longID () }, null, false); BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, new Object[] { _objectID.longID () }, null, false);
...@@ -175,10 +175,10 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -175,10 +175,10 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr
{ {
int rowsUpdated = executeStatement (sqlMgr, int rowsUpdated = executeStatement (sqlMgr,
"UPDATE {PREFIX}tl_answer " + "UPDATE {PREFIX}tl_answer " +
"SET answer_number = ?, section_number = ? , job_application_id = ? , quest_number = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " + "SET answer_number = ?, section_number = ? , candidate_id = ? , quest_number = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"WHERE tl_answer.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ", "WHERE tl_answer.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ",
CollectionUtils.listEntry (HELPER_AnswerNo.getForSQL(dummyAnswerNo, tl_answerPSet.getAttrib (Answer.FIELD_AnswerNo))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Section)))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_JobApplication)))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Question)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray()); CollectionUtils.listEntry (HELPER_AnswerNo.getForSQL(dummyAnswerNo, tl_answerPSet.getAttrib (Answer.FIELD_AnswerNo))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Section)))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Candidate)))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Question)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
if (rowsUpdated != 1) if (rowsUpdated != 1)
{ {
...@@ -437,7 +437,7 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -437,7 +437,7 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr
tl_answerPSet.setAttrib(Answer.FIELD_AnswerNo, HELPER_AnswerNo.getFromRS(dummyAnswerNo, r, "answer_number")); tl_answerPSet.setAttrib(Answer.FIELD_AnswerNo, HELPER_AnswerNo.getFromRS(dummyAnswerNo, r, "answer_number"));
tl_answerPSet.setAttrib(Answer.SINGLEREFERENCE_Section, r.getObject ("section_number")); tl_answerPSet.setAttrib(Answer.SINGLEREFERENCE_Section, r.getObject ("section_number"));
tl_answerPSet.setAttrib(Answer.SINGLEREFERENCE_JobApplication, r.getObject ("job_application_id")); tl_answerPSet.setAttrib(Answer.SINGLEREFERENCE_Candidate, r.getObject ("candidate_id"));
tl_answerPSet.setAttrib(Answer.SINGLEREFERENCE_Question, r.getObject ("quest_number")); tl_answerPSet.setAttrib(Answer.SINGLEREFERENCE_Question, r.getObject ("quest_number"));
} }
...@@ -455,10 +455,10 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -455,10 +455,10 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr
{ {
executeStatement (sqlMgr, executeStatement (sqlMgr,
"INSERT INTO {PREFIX}tl_answer " + "INSERT INTO {PREFIX}tl_answer " +
" (answer_number, section_number, job_application_id, quest_number, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " + " (answer_number, section_number, candidate_id, quest_number, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " +
"VALUES " + "VALUES " +
" (?, ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")", " (?, ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")",
CollectionUtils.listEntry (HELPER_AnswerNo.getForSQL(dummyAnswerNo, tl_answerPSet.getAttrib (Answer.FIELD_AnswerNo))) .listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Section)))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_JobApplication)))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Question)))) .listEntry (objectID.longID ()).toList().toArray()); CollectionUtils.listEntry (HELPER_AnswerNo.getForSQL(dummyAnswerNo, tl_answerPSet.getAttrib (Answer.FIELD_AnswerNo))) .listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Section)))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Candidate)))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Question)))) .listEntry (objectID.longID ()).toList().toArray());
tl_answerPSet.setStatus (PersistentSetStatus.PROCESSED); tl_answerPSet.setStatus (PersistentSetStatus.PROCESSED);
} }
......
...@@ -40,8 +40,8 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -40,8 +40,8 @@ public abstract class BaseAnswer extends BaseBusinessClass
public static final String FIELD_AnswerNo = "AnswerNo"; public static final String FIELD_AnswerNo = "AnswerNo";
public static final String SINGLEREFERENCE_Section = "Section"; public static final String SINGLEREFERENCE_Section = "Section";
public static final String SINGLEREFERENCE_JobApplication = "JobApplication"; public static final String SINGLEREFERENCE_Candidate = "Candidate";
public static final String BACKREF_JobApplication = ""; public static final String BACKREF_Candidate = "";
public static final String SINGLEREFERENCE_Question = "Question"; public static final String SINGLEREFERENCE_Question = "Question";
// Static constants corresponding to searches // Static constants corresponding to searches
...@@ -58,7 +58,7 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -58,7 +58,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
// Private attributes corresponding to single references // Private attributes corresponding to single references
private SingleAssociation<Answer, Section> _Section; private SingleAssociation<Answer, Section> _Section;
private SingleAssociation<Answer, JobApplication> _JobApplication; private SingleAssociation<Answer, Candidate> _Candidate;
private SingleAssociation<Answer, Question> _Question; private SingleAssociation<Answer, Question> _Question;
...@@ -80,12 +80,12 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -80,12 +80,12 @@ public abstract class BaseAnswer extends BaseBusinessClass
try try
{ {
String tmp_JobApplication = JobApplication.BACKREF_ProfileAssessmentAnswers; String tmp_Candidate = Candidate.BACKREF_ProfileAssessmentAnswers;
Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping")); Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping"));
setupAssocMetaData_Section(); setupAssocMetaData_Section();
setupAssocMetaData_JobApplication(); setupAssocMetaData_Candidate();
setupAssocMetaData_Question(); setupAssocMetaData_Question();
FIELD_AnswerNo_Validators = (AttributeValidator[])setupAttribMetaData_AnswerNo(validatorMapping).toArray (new AttributeValidator[0]); FIELD_AnswerNo_Validators = (AttributeValidator[])setupAttribMetaData_AnswerNo(validatorMapping).toArray (new AttributeValidator[0]);
...@@ -117,18 +117,18 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -117,18 +117,18 @@ public abstract class BaseAnswer extends BaseBusinessClass
// Meta Info setup // Meta Info setup
private static void setupAssocMetaData_JobApplication() private static void setupAssocMetaData_Candidate()
{ {
Map metaInfo = new HashMap (); Map metaInfo = new HashMap ();
metaInfo.put ("backreferenceName", "ProfileAssessmentAnswers"); metaInfo.put ("backreferenceName", "ProfileAssessmentAnswers");
metaInfo.put ("dbcol", "job_application_id"); metaInfo.put ("dbcol", "candidate_id");
metaInfo.put ("mandatory", "true"); metaInfo.put ("mandatory", "true");
metaInfo.put ("name", "JobApplication"); metaInfo.put ("name", "Candidate");
metaInfo.put ("type", "JobApplication"); metaInfo.put ("type", "Candidate");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for Answer.JobApplication:", metaInfo); LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for Answer.Candidate:", metaInfo);
ATTRIBUTES_METADATA_Answer.put (SINGLEREFERENCE_JobApplication, Collections.unmodifiableMap (metaInfo)); ATTRIBUTES_METADATA_Answer.put (SINGLEREFERENCE_Candidate, Collections.unmodifiableMap (metaInfo));
} }
...@@ -202,7 +202,7 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -202,7 +202,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
super._initialiseAssociations (); super._initialiseAssociations ();
_Section = new SingleAssociation<Answer, Section> (this, SINGLEREFERENCE_Section, null, Section.REFERENCE_Section, "tl_answer"); _Section = new SingleAssociation<Answer, Section> (this, SINGLEREFERENCE_Section, null, Section.REFERENCE_Section, "tl_answer");
_JobApplication = new SingleAssociation<Answer, JobApplication> (this, SINGLEREFERENCE_JobApplication, JobApplication.MULTIPLEREFERENCE_ProfileAssessmentAnswers, JobApplication.REFERENCE_JobApplication, "tl_answer"); _Candidate = new SingleAssociation<Answer, Candidate> (this, SINGLEREFERENCE_Candidate, Candidate.MULTIPLEREFERENCE_ProfileAssessmentAnswers, Candidate.REFERENCE_Candidate, "tl_answer");
_Question = new SingleAssociation<Answer, Question> (this, SINGLEREFERENCE_Question, null, Question.REFERENCE_Question, "tl_answer"); _Question = new SingleAssociation<Answer, Question> (this, SINGLEREFERENCE_Question, null, Question.REFERENCE_Question, "tl_answer");
} }
...@@ -214,7 +214,7 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -214,7 +214,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
super.initialiseReference (); super.initialiseReference ();
_Section = new SingleAssociation<Answer, Section> (this, SINGLEREFERENCE_Section, null, Section.REFERENCE_Section, "tl_answer"); _Section = new SingleAssociation<Answer, Section> (this, SINGLEREFERENCE_Section, null, Section.REFERENCE_Section, "tl_answer");
_JobApplication = new SingleAssociation<Answer, JobApplication> (this, SINGLEREFERENCE_JobApplication, JobApplication.MULTIPLEREFERENCE_ProfileAssessmentAnswers, JobApplication.REFERENCE_JobApplication, "tl_answer"); _Candidate = new SingleAssociation<Answer, Candidate> (this, SINGLEREFERENCE_Candidate, Candidate.MULTIPLEREFERENCE_ProfileAssessmentAnswers, Candidate.REFERENCE_Candidate, "tl_answer");
_Question = new SingleAssociation<Answer, Question> (this, SINGLEREFERENCE_Question, null, Question.REFERENCE_Question, "tl_answer"); _Question = new SingleAssociation<Answer, Question> (this, SINGLEREFERENCE_Question, null, Question.REFERENCE_Question, "tl_answer");
...@@ -334,7 +334,7 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -334,7 +334,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
result.add("Section"); result.add("Section");
result.add("JobApplication"); result.add("Candidate");
result.add("Question"); result.add("Question");
...@@ -352,9 +352,9 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -352,9 +352,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
else if (assocName.equals (SINGLEREFERENCE_Section)) else if (assocName.equals (SINGLEREFERENCE_Section))
{ {
return _Section.getReferencedType (); return _Section.getReferencedType ();
}else if (assocName.equals (SINGLEREFERENCE_JobApplication)) }else if (assocName.equals (SINGLEREFERENCE_Candidate))
{ {
return _JobApplication.getReferencedType (); return _Candidate.getReferencedType ();
}else if (assocName.equals (SINGLEREFERENCE_Question)) }else if (assocName.equals (SINGLEREFERENCE_Question))
{ {
return _Question.getReferencedType (); return _Question.getReferencedType ();
...@@ -375,9 +375,9 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -375,9 +375,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
else if (assocName.equals (SINGLEREFERENCE_Section)) else if (assocName.equals (SINGLEREFERENCE_Section))
{ {
return null ; return null ;
}else if (assocName.equals (SINGLEREFERENCE_JobApplication)) }else if (assocName.equals (SINGLEREFERENCE_Candidate))
{ {
return JobApplication.MULTIPLEREFERENCE_ProfileAssessmentAnswers ; return Candidate.MULTIPLEREFERENCE_ProfileAssessmentAnswers ;
}else if (assocName.equals (SINGLEREFERENCE_Question)) }else if (assocName.equals (SINGLEREFERENCE_Question))
{ {
return null ; return null ;
...@@ -398,9 +398,9 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -398,9 +398,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
else if (assocName.equals (SINGLEREFERENCE_Section)) else if (assocName.equals (SINGLEREFERENCE_Section))
{ {
return getSection (); return getSection ();
}else if (assocName.equals (SINGLEREFERENCE_JobApplication)) }else if (assocName.equals (SINGLEREFERENCE_Candidate))
{ {
return getJobApplication (); return getCandidate ();
}else if (assocName.equals (SINGLEREFERENCE_Question)) }else if (assocName.equals (SINGLEREFERENCE_Question))
{ {
return getQuestion (); return getQuestion ();
...@@ -421,9 +421,9 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -421,9 +421,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
else if (assocName.equals (SINGLEREFERENCE_Section)) else if (assocName.equals (SINGLEREFERENCE_Section))
{ {
return getSection (getType); return getSection (getType);
}else if (assocName.equals (SINGLEREFERENCE_JobApplication)) }else if (assocName.equals (SINGLEREFERENCE_Candidate))
{ {
return getJobApplication (getType); return getCandidate (getType);
}else if (assocName.equals (SINGLEREFERENCE_Question)) }else if (assocName.equals (SINGLEREFERENCE_Question))
{ {
return getQuestion (getType); return getQuestion (getType);
...@@ -444,9 +444,9 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -444,9 +444,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
else if (assocName.equals (SINGLEREFERENCE_Section)) else if (assocName.equals (SINGLEREFERENCE_Section))
{ {
return getSectionID (); return getSectionID ();
}else if (assocName.equals (SINGLEREFERENCE_JobApplication)) }else if (assocName.equals (SINGLEREFERENCE_Candidate))
{ {
return getJobApplicationID (); return getCandidateID ();
}else if (assocName.equals (SINGLEREFERENCE_Question)) }else if (assocName.equals (SINGLEREFERENCE_Question))
{ {
return getQuestionID (); return getQuestionID ();
...@@ -467,9 +467,9 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -467,9 +467,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
else if (assocName.equals (SINGLEREFERENCE_Section)) else if (assocName.equals (SINGLEREFERENCE_Section))
{ {
setSection ((Section)(newValue)); setSection ((Section)(newValue));
}else if (assocName.equals (SINGLEREFERENCE_JobApplication)) }else if (assocName.equals (SINGLEREFERENCE_Candidate))
{ {
setJobApplication ((JobApplication)(newValue)); setCandidate ((Candidate)(newValue));
}else if (assocName.equals (SINGLEREFERENCE_Question)) }else if (assocName.equals (SINGLEREFERENCE_Question))
{ {
setQuestion ((Question)(newValue)); setQuestion ((Question)(newValue));
...@@ -577,20 +577,20 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -577,20 +577,20 @@ public abstract class BaseAnswer extends BaseBusinessClass
} }
/** /**
* Get the reference JobApplication * Get the reference Candidate
*/ */
public JobApplication getJobApplication () throws StorageException public Candidate getCandidate () throws StorageException
{ {
assertValid(); assertValid();
try try
{ {
return (JobApplication)(_JobApplication.get ()); return (Candidate)(_Candidate.get ());
} }
catch (ClassCastException e) catch (ClassCastException e)
{ {
LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Cache collision in Answer:", this.getObjectID (), ", was trying to get JobApplication:", getJobApplicationID ()); LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Cache collision in Answer:", this.getObjectID (), ", was trying to get Candidate:", getCandidateID ());
LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Instead I got:", _JobApplication.get ().getClass ()); LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Instead I got:", _Candidate.get ().getClass ());
throw e; throw e;
} }
} }
...@@ -599,27 +599,27 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -599,27 +599,27 @@ public abstract class BaseAnswer extends BaseBusinessClass
/** /**
* Get the object id for the referenced object. Does not force a DB access. * Get the object id for the referenced object. Does not force a DB access.
*/ */
public JobApplication getJobApplication (Get getType) throws StorageException public Candidate getCandidate (Get getType) throws StorageException
{ {
assertValid(); assertValid();
return _JobApplication.get(getType); return _Candidate.get(getType);
} }
/** /**
* Get the object id for the referenced object. Does not force a DB access. * Get the object id for the referenced object. Does not force a DB access.
*/ */
public Long getJobApplicationID () public Long getCandidateID ()
{ {
assertValid(); assertValid();
if (_JobApplication == null) if (_Candidate == null)
{ {
return null; return null;
} }
else else
{ {
return _JobApplication.getID (); return _Candidate.getID ();
} }
} }
...@@ -627,7 +627,7 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -627,7 +627,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
* Called prior to the assoc changing. Subclasses need not call super. If a field exception * 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. * is thrown, the attribute change will fail. The new value is different to the old value.
*/ */
protected void preJobApplicationChange (JobApplication newJobApplication) throws FieldException protected void preCandidateChange (Candidate newCandidate) throws FieldException
{ {
} }
...@@ -637,50 +637,50 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -637,50 +637,50 @@ public abstract class BaseAnswer extends BaseBusinessClass
* If a field exception is thrown, the value is still changed, however it * If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back * may lead to the TX being rolled back
*/ */
protected void postJobApplicationChange () throws FieldException protected void postCandidateChange () throws FieldException
{ {
} }
public FieldWriteability getWriteability_JobApplication () public FieldWriteability getWriteability_Candidate ()
{ {
return getFieldWritabilityUtil (FieldWriteability.TRUE); return getFieldWritabilityUtil (FieldWriteability.TRUE);
} }
/** /**
* Set the reference JobApplication. Checks to ensure a new value * Set the reference Candidate. Checks to ensure a new value
* has been supplied. If so, marks the reference as altered and sets it. * has been supplied. If so, marks the reference as altered and sets it.
*/ */
public void setJobApplication (JobApplication newJobApplication) throws StorageException, FieldException public void setCandidate (Candidate newCandidate) throws StorageException, FieldException
{ {
BusinessObjectParser.assertFieldCondition (newJobApplication != null, this, SINGLEREFERENCE_JobApplication, "mandatory"); BusinessObjectParser.assertFieldCondition (newCandidate != null, this, SINGLEREFERENCE_Candidate, "mandatory");
if (_JobApplication.wouldReferencedChange (newJobApplication)) if (_Candidate.wouldReferencedChange (newCandidate))
{ {
assertValid(); assertValid();
Debug.assertion (getWriteability_JobApplication () != FieldWriteability.FALSE, "Assoc JobApplication is not writeable"); Debug.assertion (getWriteability_Candidate () != FieldWriteability.FALSE, "Assoc Candidate is not writeable");
preJobApplicationChange (newJobApplication); preCandidateChange (newCandidate);
JobApplication oldJobApplication = getJobApplication (); Candidate oldCandidate = getCandidate ();
if (oldJobApplication != null) if (oldCandidate != null)
{ {
// This is to stop validation from triggering when we are removed // This is to stop validation from triggering when we are removed
_JobApplication.set (null); _Candidate.set (null);
oldJobApplication.removeFromProfileAssessmentAnswers ((Answer)(this)); oldCandidate.removeFromProfileAssessmentAnswers ((Answer)(this));
} }
_JobApplication.set (newJobApplication); _Candidate.set (newCandidate);
if (newJobApplication != null) if (newCandidate != null)
{ {
newJobApplication.addToProfileAssessmentAnswers ((Answer)(this)); newCandidate.addToProfileAssessmentAnswers ((Answer)(this));
} }
postJobApplicationChange (); postCandidateChange ();
} }
} }
...@@ -877,15 +877,15 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -877,15 +877,15 @@ public abstract class BaseAnswer extends BaseBusinessClass
try try
{ {
// Ensure we are removed from any loaded multi-associations that aren't mandatory // Ensure we are removed from any loaded multi-associations that aren't mandatory
if (_JobApplication.isLoaded () || getTransaction ().isObjectLoaded (_JobApplication.getReferencedType (), getJobApplicationID ())) if (_Candidate.isLoaded () || getTransaction ().isObjectLoaded (_Candidate.getReferencedType (), getCandidateID ()))
{ {
JobApplication referenced = getJobApplication (); Candidate referenced = getCandidate ();
if (referenced != null) if (referenced != null)
{ {
// Stop the callback // Stop the callback
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Setting backreference to null ProfileAssessmentAnswers from ", getObjectID (), " to ", referenced.getObjectID ()); LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Setting backreference to null ProfileAssessmentAnswers from ", getObjectID (), " to ", referenced.getObjectID ());
_JobApplication.set (null); _Candidate.set (null);
referenced.removeFromProfileAssessmentAnswers ((Answer)this); referenced.removeFromProfileAssessmentAnswers ((Answer)this);
} }
} }
...@@ -952,7 +952,7 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -952,7 +952,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
tl_answerPSet.setAttrib (FIELD_ObjectID, myID); tl_answerPSet.setAttrib (FIELD_ObjectID, myID);
tl_answerPSet.setAttrib (FIELD_AnswerNo, HELPER_AnswerNo.toObject (_AnswerNo)); // tl_answerPSet.setAttrib (FIELD_AnswerNo, HELPER_AnswerNo.toObject (_AnswerNo)); //
_Section.getPersistentSets (allSets); _Section.getPersistentSets (allSets);
_JobApplication.getPersistentSets (allSets); _Candidate.getPersistentSets (allSets);
_Question.getPersistentSets (allSets); _Question.getPersistentSets (allSets);
} }
...@@ -970,7 +970,7 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -970,7 +970,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
_AnswerNo = (Integer)(HELPER_AnswerNo.fromObject (_AnswerNo, tl_answerPSet.getAttrib (FIELD_AnswerNo))); // _AnswerNo = (Integer)(HELPER_AnswerNo.fromObject (_AnswerNo, tl_answerPSet.getAttrib (FIELD_AnswerNo))); //
_Section.setFromPersistentSets (objectID, allSets); _Section.setFromPersistentSets (objectID, allSets);
_JobApplication.setFromPersistentSets (objectID, allSets); _Candidate.setFromPersistentSets (objectID, allSets);
_Question.setFromPersistentSets (objectID, allSets); _Question.setFromPersistentSets (objectID, allSets);
} }
...@@ -1029,7 +1029,7 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -1029,7 +1029,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
BaseAnswer sourceAnswer = (BaseAnswer)(source); BaseAnswer sourceAnswer = (BaseAnswer)(source);
_Section.copyFrom (sourceAnswer._Section, linkToGhosts); _Section.copyFrom (sourceAnswer._Section, linkToGhosts);
_JobApplication.copyFrom (sourceAnswer._JobApplication, linkToGhosts); _Candidate.copyFrom (sourceAnswer._Candidate, linkToGhosts);
_Question.copyFrom (sourceAnswer._Question, linkToGhosts); _Question.copyFrom (sourceAnswer._Question, linkToGhosts);
} }
...@@ -1057,7 +1057,7 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -1057,7 +1057,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
super.validate (context); super.validate (context);
context.check (getJobApplicationID() != null, this, SINGLEREFERENCE_JobApplication, "mandatory"); context.check (getCandidateID() != null, this, SINGLEREFERENCE_Candidate, "mandatory");
} }
...@@ -1071,7 +1071,7 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -1071,7 +1071,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
_AnswerNo = (Integer)(HELPER_AnswerNo.readExternal (_AnswerNo, vals.get(FIELD_AnswerNo))); // _AnswerNo = (Integer)(HELPER_AnswerNo.readExternal (_AnswerNo, vals.get(FIELD_AnswerNo))); //
_Section.readExternalData(vals.get(SINGLEREFERENCE_Section)); _Section.readExternalData(vals.get(SINGLEREFERENCE_Section));
_JobApplication.readExternalData(vals.get(SINGLEREFERENCE_JobApplication)); _Candidate.readExternalData(vals.get(SINGLEREFERENCE_Candidate));
_Question.readExternalData(vals.get(SINGLEREFERENCE_Question)); _Question.readExternalData(vals.get(SINGLEREFERENCE_Question));
} }
...@@ -1086,7 +1086,7 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -1086,7 +1086,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
vals.put (FIELD_AnswerNo, HELPER_AnswerNo.writeExternal (_AnswerNo)); vals.put (FIELD_AnswerNo, HELPER_AnswerNo.writeExternal (_AnswerNo));
vals.put (SINGLEREFERENCE_Section, _Section.writeExternalData()); vals.put (SINGLEREFERENCE_Section, _Section.writeExternalData());
vals.put (SINGLEREFERENCE_JobApplication, _JobApplication.writeExternalData()); vals.put (SINGLEREFERENCE_Candidate, _Candidate.writeExternalData());
vals.put (SINGLEREFERENCE_Question, _Question.writeExternalData()); vals.put (SINGLEREFERENCE_Question, _Question.writeExternalData());
} }
...@@ -1108,7 +1108,7 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -1108,7 +1108,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
// Compare single assocs // Compare single assocs
_Section.compare (otherAnswer._Section, listener); _Section.compare (otherAnswer._Section, listener);
_JobApplication.compare (otherAnswer._JobApplication, listener); _Candidate.compare (otherAnswer._Candidate, listener);
_Question.compare (otherAnswer._Question, listener); _Question.compare (otherAnswer._Question, listener);
...@@ -1132,7 +1132,7 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -1132,7 +1132,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
visitor.visitField(this, FIELD_AnswerNo, HELPER_AnswerNo.toObject(getAnswerNo())); visitor.visitField(this, FIELD_AnswerNo, HELPER_AnswerNo.toObject(getAnswerNo()));
visitor.visitAssociation (_Section); visitor.visitAssociation (_Section);
visitor.visitAssociation (_JobApplication); visitor.visitAssociation (_Candidate);
visitor.visitAssociation (_Question); visitor.visitAssociation (_Question);
} }
...@@ -1146,9 +1146,9 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -1146,9 +1146,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
{ {
visitor.visit (_Section); visitor.visit (_Section);
} }
if (scope.includes (_JobApplication)) if (scope.includes (_Candidate))
{ {
visitor.visit (_JobApplication); visitor.visit (_Candidate);
} }
if (scope.includes (_Question)) if (scope.includes (_Question))
{ {
...@@ -1187,9 +1187,9 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -1187,9 +1187,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
{ {
return filter.matches (getSection ()); return filter.matches (getSection ());
} }
else if (attribName.equals (SINGLEREFERENCE_JobApplication)) else if (attribName.equals (SINGLEREFERENCE_Candidate))
{ {
return filter.matches (getJobApplication ()); return filter.matches (getCandidate ());
} }
else if (attribName.equals (SINGLEREFERENCE_Question)) else if (attribName.equals (SINGLEREFERENCE_Question))
{ {
...@@ -1238,9 +1238,9 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -1238,9 +1238,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
return this; return this;
} }
public SearchAll andJobApplication (QueryFilter<JobApplication> filter) public SearchAll andCandidate (QueryFilter<Candidate> filter)
{ {
filter.addFilter (context, "tl_answer.job_application_id", "JobApplication"); filter.addFilter (context, "tl_answer.candidate_id", "Candidate");
return this; return this;
} }
...@@ -1351,9 +1351,9 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -1351,9 +1351,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
{ {
return getWriteability_Section (); return getWriteability_Section ();
} }
else if (fieldName.equals (SINGLEREFERENCE_JobApplication)) else if (fieldName.equals (SINGLEREFERENCE_Candidate))
{ {
return getWriteability_JobApplication (); return getWriteability_Candidate ();
} }
else if (fieldName.equals (SINGLEREFERENCE_Question)) else if (fieldName.equals (SINGLEREFERENCE_Question))
{ {
...@@ -1512,9 +1512,9 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -1512,9 +1512,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
{ {
return toSection (); return toSection ();
} }
if (name.equals ("JobApplication")) if (name.equals ("Candidate"))
{ {
return toJobApplication (); return toCandidate ();
} }
if (name.equals ("Question")) if (name.equals ("Question"))
{ {
...@@ -1533,11 +1533,11 @@ public abstract class BaseAnswer extends BaseBusinessClass ...@@ -1533,11 +1533,11 @@ public abstract class BaseAnswer extends BaseBusinessClass
{ {
return Section.REFERENCE_Section.new SectionPipeLineFactory<From, Section> (this, new ORMSingleAssocPipe<Me, Section>(SINGLEREFERENCE_Section, filter)); return Section.REFERENCE_Section.new SectionPipeLineFactory<From, Section> (this, new ORMSingleAssocPipe<Me, Section>(SINGLEREFERENCE_Section, filter));
} }
public JobApplication.JobApplicationPipeLineFactory<From, JobApplication> toJobApplication () { return toJobApplication (Filter.ALL); } public Candidate.CandidatePipeLineFactory<From, Candidate> toCandidate () { return toCandidate (Filter.ALL); }
public JobApplication.JobApplicationPipeLineFactory<From, JobApplication> toJobApplication (Filter<JobApplication> filter) public Candidate.CandidatePipeLineFactory<From, Candidate> toCandidate (Filter<Candidate> filter)
{ {
return JobApplication.REFERENCE_JobApplication.new JobApplicationPipeLineFactory<From, JobApplication> (this, new ORMSingleAssocPipe<Me, JobApplication>(SINGLEREFERENCE_JobApplication, filter)); return Candidate.REFERENCE_Candidate.new CandidatePipeLineFactory<From, Candidate> (this, new ORMSingleAssocPipe<Me, Candidate>(SINGLEREFERENCE_Candidate, filter));
} }
public Question.QuestionPipeLineFactory<From, Question> toQuestion () { return toQuestion (Filter.ALL); } public Question.QuestionPipeLineFactory<From, Question> toQuestion () { return toQuestion (Filter.ALL); }
...@@ -1590,18 +1590,18 @@ class DummyAnswer extends Answer ...@@ -1590,18 +1590,18 @@ class DummyAnswer extends Answer
return Section.DUMMY_Section.getObjectID(); return Section.DUMMY_Section.getObjectID();
} }
public JobApplication getJobApplication () throws StorageException public Candidate getCandidate () throws StorageException
{ {
return (JobApplication)(JobApplication.DUMMY_JobApplication); return (Candidate)(Candidate.DUMMY_Candidate);
} }
/** /**
* Get the object id for the referenced object. Does not force a DB access. * Get the object id for the referenced object. Does not force a DB access.
*/ */
public Long getJobApplicationID () public Long getCandidateID ()
{ {
return JobApplication.DUMMY_JobApplication.getObjectID(); return Candidate.DUMMY_Candidate.getObjectID();
} }
public Question getQuestion () throws StorageException public Question getQuestion () throws StorageException
......
...@@ -50,6 +50,10 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -50,6 +50,10 @@ public abstract class BaseCandidate extends SecUserExtension
public static final String BACKREF_TestAnalysises = ""; public static final String BACKREF_TestAnalysises = "";
public static final String MULTIPLEREFERENCE_JobApplications = "JobApplications"; public static final String MULTIPLEREFERENCE_JobApplications = "JobApplications";
public static final String BACKREF_JobApplications = ""; public static final String BACKREF_JobApplications = "";
public static final String MULTIPLEREFERENCE_CultureCriteriaAnswers = "CultureCriteriaAnswers";
public static final String BACKREF_CultureCriteriaAnswers = "";
public static final String MULTIPLEREFERENCE_ProfileAssessmentAnswers = "ProfileAssessmentAnswers";
public static final String BACKREF_ProfileAssessmentAnswers = "";
// Static constants corresponding to searches // Static constants corresponding to searches
public static final String SEARCH_All = "All"; public static final String SEARCH_All = "All";
...@@ -77,6 +81,8 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -77,6 +81,8 @@ public abstract class BaseCandidate extends SecUserExtension
// Private attributes corresponding to multiple references // Private attributes corresponding to multiple references
private MultipleAssociation<Candidate, TestAnalysis> _TestAnalysises; private MultipleAssociation<Candidate, TestAnalysis> _TestAnalysises;
private MultipleAssociation<Candidate, JobApplication> _JobApplications; private MultipleAssociation<Candidate, JobApplication> _JobApplications;
private MultipleAssociation<Candidate, CultureCriteriaAnswer> _CultureCriteriaAnswers;
private MultipleAssociation<Candidate, Answer> _ProfileAssessmentAnswers;
// Map of maps of metadata // Map of maps of metadata
...@@ -99,12 +105,16 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -99,12 +105,16 @@ public abstract class BaseCandidate extends SecUserExtension
String tmp_TestAnalysises = TestAnalysis.BACKREF_Candidate; String tmp_TestAnalysises = TestAnalysis.BACKREF_Candidate;
String tmp_JobApplications = JobApplication.BACKREF_Candidate; String tmp_JobApplications = JobApplication.BACKREF_Candidate;
String tmp_CultureCriteriaAnswers = CultureCriteriaAnswer.BACKREF_Candidate;
String tmp_ProfileAssessmentAnswers = Answer.BACKREF_Candidate;
String tmp_TestInput = TestInput.BACKREF_Candidates; String tmp_TestInput = TestInput.BACKREF_Candidates;
Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping")); Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping"));
setupAssocMetaData_TestAnalysises(); setupAssocMetaData_TestAnalysises();
setupAssocMetaData_JobApplications(); setupAssocMetaData_JobApplications();
setupAssocMetaData_CultureCriteriaAnswers();
setupAssocMetaData_ProfileAssessmentAnswers();
setupAssocMetaData_TestInput(); setupAssocMetaData_TestInput();
FIELD_Phone_Validators = (AttributeValidator[])setupAttribMetaData_Phone(validatorMapping).toArray (new AttributeValidator[0]); FIELD_Phone_Validators = (AttributeValidator[])setupAttribMetaData_Phone(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_VerificationMailSendDate_Validators = (AttributeValidator[])setupAttribMetaData_VerificationMailSendDate(validatorMapping).toArray (new AttributeValidator[0]); FIELD_VerificationMailSendDate_Validators = (AttributeValidator[])setupAttribMetaData_VerificationMailSendDate(validatorMapping).toArray (new AttributeValidator[0]);
...@@ -153,6 +163,34 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -153,6 +163,34 @@ public abstract class BaseCandidate extends SecUserExtension
// Meta Info setup // Meta Info setup
private static void setupAssocMetaData_CultureCriteriaAnswers()
{
Map metaInfo = new HashMap ();
metaInfo.put ("backreferenceName", "Candidate");
metaInfo.put ("name", "CultureCriteriaAnswers");
metaInfo.put ("type", "CultureCriteriaAnswer");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for Candidate.CultureCriteriaAnswers:", metaInfo);
ATTRIBUTES_METADATA_Candidate.put (MULTIPLEREFERENCE_CultureCriteriaAnswers, Collections.unmodifiableMap (metaInfo));
}
// Meta Info setup
private static void setupAssocMetaData_ProfileAssessmentAnswers()
{
Map metaInfo = new HashMap ();
metaInfo.put ("backreferenceName", "Candidate");
metaInfo.put ("name", "ProfileAssessmentAnswers");
metaInfo.put ("type", "Answer");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for Candidate.ProfileAssessmentAnswers:", metaInfo);
ATTRIBUTES_METADATA_Candidate.put (MULTIPLEREFERENCE_ProfileAssessmentAnswers, Collections.unmodifiableMap (metaInfo));
}
// Meta Info setup
private static void setupAssocMetaData_TestInput() private static void setupAssocMetaData_TestInput()
{ {
Map metaInfo = new HashMap (); Map metaInfo = new HashMap ();
...@@ -284,6 +322,8 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -284,6 +322,8 @@ public abstract class BaseCandidate extends SecUserExtension
_TestInput = new SingleAssociation<Candidate, TestInput> (this, SINGLEREFERENCE_TestInput, TestInput.MULTIPLEREFERENCE_Candidates, TestInput.REFERENCE_TestInput, "oneit_sec_user_extension"); _TestInput = new SingleAssociation<Candidate, TestInput> (this, SINGLEREFERENCE_TestInput, TestInput.MULTIPLEREFERENCE_Candidates, TestInput.REFERENCE_TestInput, "oneit_sec_user_extension");
_TestAnalysises = new MultipleAssociation<Candidate, TestAnalysis> (this, MULTIPLEREFERENCE_TestAnalysises, TestAnalysis.SINGLEREFERENCE_Candidate, TestAnalysis.REFERENCE_TestAnalysis); _TestAnalysises = new MultipleAssociation<Candidate, TestAnalysis> (this, MULTIPLEREFERENCE_TestAnalysises, TestAnalysis.SINGLEREFERENCE_Candidate, TestAnalysis.REFERENCE_TestAnalysis);
_JobApplications = new MultipleAssociation<Candidate, JobApplication> (this, MULTIPLEREFERENCE_JobApplications, JobApplication.SINGLEREFERENCE_Candidate, JobApplication.REFERENCE_JobApplication); _JobApplications = new MultipleAssociation<Candidate, JobApplication> (this, MULTIPLEREFERENCE_JobApplications, JobApplication.SINGLEREFERENCE_Candidate, JobApplication.REFERENCE_JobApplication);
_CultureCriteriaAnswers = new MultipleAssociation<Candidate, CultureCriteriaAnswer> (this, MULTIPLEREFERENCE_CultureCriteriaAnswers, CultureCriteriaAnswer.SINGLEREFERENCE_Candidate, CultureCriteriaAnswer.REFERENCE_CultureCriteriaAnswer);
_ProfileAssessmentAnswers = new MultipleAssociation<Candidate, Answer> (this, MULTIPLEREFERENCE_ProfileAssessmentAnswers, Answer.SINGLEREFERENCE_Candidate, Answer.REFERENCE_Answer);
} }
...@@ -296,6 +336,8 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -296,6 +336,8 @@ public abstract class BaseCandidate extends SecUserExtension
_TestInput = new SingleAssociation<Candidate, TestInput> (this, SINGLEREFERENCE_TestInput, TestInput.MULTIPLEREFERENCE_Candidates, TestInput.REFERENCE_TestInput, "oneit_sec_user_extension"); _TestInput = new SingleAssociation<Candidate, TestInput> (this, SINGLEREFERENCE_TestInput, TestInput.MULTIPLEREFERENCE_Candidates, TestInput.REFERENCE_TestInput, "oneit_sec_user_extension");
_TestAnalysises = new MultipleAssociation<Candidate, TestAnalysis> (this, MULTIPLEREFERENCE_TestAnalysises, TestAnalysis.SINGLEREFERENCE_Candidate, TestAnalysis.REFERENCE_TestAnalysis); _TestAnalysises = new MultipleAssociation<Candidate, TestAnalysis> (this, MULTIPLEREFERENCE_TestAnalysises, TestAnalysis.SINGLEREFERENCE_Candidate, TestAnalysis.REFERENCE_TestAnalysis);
_JobApplications = new MultipleAssociation<Candidate, JobApplication> (this, MULTIPLEREFERENCE_JobApplications, JobApplication.SINGLEREFERENCE_Candidate, JobApplication.REFERENCE_JobApplication); _JobApplications = new MultipleAssociation<Candidate, JobApplication> (this, MULTIPLEREFERENCE_JobApplications, JobApplication.SINGLEREFERENCE_Candidate, JobApplication.REFERENCE_JobApplication);
_CultureCriteriaAnswers = new MultipleAssociation<Candidate, CultureCriteriaAnswer> (this, MULTIPLEREFERENCE_CultureCriteriaAnswers, CultureCriteriaAnswer.SINGLEREFERENCE_Candidate, CultureCriteriaAnswer.REFERENCE_CultureCriteriaAnswer);
_ProfileAssessmentAnswers = new MultipleAssociation<Candidate, Answer> (this, MULTIPLEREFERENCE_ProfileAssessmentAnswers, Answer.SINGLEREFERENCE_Candidate, Answer.REFERENCE_Answer);
return this; return this;
...@@ -934,6 +976,10 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -934,6 +976,10 @@ public abstract class BaseCandidate extends SecUserExtension
result.add("JobApplications"); result.add("JobApplications");
result.add("CultureCriteriaAnswers");
result.add("ProfileAssessmentAnswers");
return result; return result;
} }
...@@ -955,6 +1001,16 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -955,6 +1001,16 @@ public abstract class BaseCandidate extends SecUserExtension
return JobApplication.REFERENCE_JobApplication ; return JobApplication.REFERENCE_JobApplication ;
} }
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
return CultureCriteriaAnswer.REFERENCE_CultureCriteriaAnswer ;
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
return Answer.REFERENCE_Answer ;
}
return super.getMultiAssocReferenceInstance(attribName); return super.getMultiAssocReferenceInstance(attribName);
} }
...@@ -973,6 +1029,16 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -973,6 +1029,16 @@ public abstract class BaseCandidate extends SecUserExtension
return JobApplication.SINGLEREFERENCE_Candidate ; return JobApplication.SINGLEREFERENCE_Candidate ;
} }
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
return CultureCriteriaAnswer.SINGLEREFERENCE_Candidate ;
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
return Answer.SINGLEREFERENCE_Candidate ;
}
return super.getMultiAssocBackReference(attribName); return super.getMultiAssocBackReference(attribName);
} }
...@@ -994,6 +1060,16 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -994,6 +1060,16 @@ public abstract class BaseCandidate extends SecUserExtension
return this.getJobApplicationsCount(); return this.getJobApplicationsCount();
} }
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
return this.getCultureCriteriaAnswersCount();
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
return this.getProfileAssessmentAnswersCount();
}
return super.getMultiAssocCount(attribName); return super.getMultiAssocCount(attribName);
} }
...@@ -1015,6 +1091,16 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -1015,6 +1091,16 @@ public abstract class BaseCandidate extends SecUserExtension
return this.getJobApplicationsAt(index); return this.getJobApplicationsAt(index);
} }
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
return this.getCultureCriteriaAnswersAt(index);
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
return this.getProfileAssessmentAnswersAt(index);
}
return super.getMultiAssocAt(attribName, index); return super.getMultiAssocAt(attribName, index);
} }
...@@ -1040,6 +1126,20 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -1040,6 +1126,20 @@ public abstract class BaseCandidate extends SecUserExtension
return; return;
} }
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
addToCultureCriteriaAnswers((CultureCriteriaAnswer)newElement);
return;
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
addToProfileAssessmentAnswers((Answer)newElement);
return;
}
super.addToMultiAssoc(attribName, newElement); super.addToMultiAssoc(attribName, newElement);
} }
...@@ -1064,6 +1164,20 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -1064,6 +1164,20 @@ public abstract class BaseCandidate extends SecUserExtension
return; return;
} }
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
removeFromCultureCriteriaAnswers((CultureCriteriaAnswer)oldElement);
return;
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
removeFromProfileAssessmentAnswers((Answer)oldElement);
return;
}
super.removeFromMultiAssoc(attribName, oldElement); super.removeFromMultiAssoc(attribName, oldElement);
} }
...@@ -1084,6 +1198,18 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -1084,6 +1198,18 @@ public abstract class BaseCandidate extends SecUserExtension
return; return;
} }
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
_CultureCriteriaAnswers.__loadAssociation (elements);
return;
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
_ProfileAssessmentAnswers.__loadAssociation (elements);
return;
}
super.__loadMultiAssoc(attribName, elements); super.__loadMultiAssoc(attribName, elements);
} }
...@@ -1102,6 +1228,16 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -1102,6 +1228,16 @@ public abstract class BaseCandidate extends SecUserExtension
return _JobApplications.isLoaded (); return _JobApplications.isLoaded ();
} }
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
return _CultureCriteriaAnswers.isLoaded ();
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
return _ProfileAssessmentAnswers.isLoaded ();
}
return super.__isMultiAssocLoaded(attribName); return super.__isMultiAssocLoaded(attribName);
} }
...@@ -1246,6 +1382,144 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -1246,6 +1382,144 @@ public abstract class BaseCandidate extends SecUserExtension
return _JobApplications.getSet (); return _JobApplications.getSet ();
} }
public FieldWriteability getWriteability_CultureCriteriaAnswers ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
public int getCultureCriteriaAnswersCount () throws StorageException
{
assertValid();
return _CultureCriteriaAnswers.getReferencedObjectsCount ();
}
public void addToCultureCriteriaAnswers (CultureCriteriaAnswer newElement) throws StorageException
{
if (_CultureCriteriaAnswers.wouldAddChange (newElement))
{
assertValid();
Debug.assertion (getWriteability_CultureCriteriaAnswers () != FieldWriteability.FALSE, "MultiAssoc CultureCriteriaAnswers is not writeable (add)");
_CultureCriteriaAnswers.appendElement (newElement);
try
{
if (newElement.getCandidate () != this)
{
newElement.setCandidate ((Candidate)(this));
}
}
catch (Exception e)
{
throw NestedException.wrap(e);
}
}
}
public void removeFromCultureCriteriaAnswers (CultureCriteriaAnswer elementToRemove) throws StorageException
{
if (_CultureCriteriaAnswers.wouldRemoveChange (elementToRemove))
{
assertValid();
Debug.assertion (getWriteability_CultureCriteriaAnswers () != FieldWriteability.FALSE, "MultiAssoc CultureCriteriaAnswers is not writeable (remove)");
_CultureCriteriaAnswers.removeElement (elementToRemove);
try
{
if (elementToRemove.getCandidate () != null)
{
elementToRemove.setCandidate (null);
}
}
catch (Exception e)
{
throw NestedException.wrap(e);
}
}
}
public CultureCriteriaAnswer getCultureCriteriaAnswersAt (int index) throws StorageException
{
return (CultureCriteriaAnswer)(_CultureCriteriaAnswers.getElementAt (index));
}
public SortedSet<CultureCriteriaAnswer> getCultureCriteriaAnswersSet () throws StorageException
{
return _CultureCriteriaAnswers.getSet ();
}
public FieldWriteability getWriteability_ProfileAssessmentAnswers ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
public int getProfileAssessmentAnswersCount () throws StorageException
{
assertValid();
return _ProfileAssessmentAnswers.getReferencedObjectsCount ();
}
public void addToProfileAssessmentAnswers (Answer newElement) throws StorageException
{
if (_ProfileAssessmentAnswers.wouldAddChange (newElement))
{
assertValid();
Debug.assertion (getWriteability_ProfileAssessmentAnswers () != FieldWriteability.FALSE, "MultiAssoc ProfileAssessmentAnswers is not writeable (add)");
_ProfileAssessmentAnswers.appendElement (newElement);
try
{
if (newElement.getCandidate () != this)
{
newElement.setCandidate ((Candidate)(this));
}
}
catch (Exception e)
{
throw NestedException.wrap(e);
}
}
}
public void removeFromProfileAssessmentAnswers (Answer elementToRemove) throws StorageException
{
if (_ProfileAssessmentAnswers.wouldRemoveChange (elementToRemove))
{
assertValid();
Debug.assertion (getWriteability_ProfileAssessmentAnswers () != FieldWriteability.FALSE, "MultiAssoc ProfileAssessmentAnswers is not writeable (remove)");
_ProfileAssessmentAnswers.removeElement (elementToRemove);
try
{
if (elementToRemove.getCandidate () != null)
{
elementToRemove.setCandidate (null);
}
}
catch (Exception e)
{
throw NestedException.wrap(e);
}
}
}
public Answer getProfileAssessmentAnswersAt (int index) throws StorageException
{
return (Answer)(_ProfileAssessmentAnswers.getElementAt (index));
}
public SortedSet<Answer> getProfileAssessmentAnswersSet () throws StorageException
{
return _ProfileAssessmentAnswers.getSet ();
}
public void onDelete () public void onDelete ()
...@@ -1278,6 +1552,18 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -1278,6 +1552,18 @@ public abstract class BaseCandidate extends SecUserExtension
referenced.setCandidate(null); referenced.setCandidate(null);
} }
for(CultureCriteriaAnswer referenced : CollectionUtils.reverse(getCultureCriteriaAnswersSet()))
{
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Setting backreference to null Candidate from ", getObjectID (), " to ", referenced.getObjectID ());
referenced.setCandidate(null);
}
for(Answer referenced : CollectionUtils.reverse(getProfileAssessmentAnswersSet()))
{
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Setting backreference to null Candidate from ", getObjectID (), " to ", referenced.getObjectID ());
referenced.setCandidate(null);
}
} }
catch (Exception e) catch (Exception e)
{ {
...@@ -1467,6 +1753,8 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -1467,6 +1753,8 @@ public abstract class BaseCandidate extends SecUserExtension
_TestAnalysises.copyFrom (sourceCandidate._TestAnalysises, linkToGhosts); _TestAnalysises.copyFrom (sourceCandidate._TestAnalysises, linkToGhosts);
_JobApplications.copyFrom (sourceCandidate._JobApplications, linkToGhosts); _JobApplications.copyFrom (sourceCandidate._JobApplications, linkToGhosts);
_CultureCriteriaAnswers.copyFrom (sourceCandidate._CultureCriteriaAnswers, linkToGhosts);
_ProfileAssessmentAnswers.copyFrom (sourceCandidate._ProfileAssessmentAnswers, linkToGhosts);
} }
} }
...@@ -1494,6 +1782,8 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -1494,6 +1782,8 @@ public abstract class BaseCandidate extends SecUserExtension
_TestInput.readExternalData(vals.get(SINGLEREFERENCE_TestInput)); _TestInput.readExternalData(vals.get(SINGLEREFERENCE_TestInput));
_TestAnalysises.readExternalData(vals.get(MULTIPLEREFERENCE_TestAnalysises)); _TestAnalysises.readExternalData(vals.get(MULTIPLEREFERENCE_TestAnalysises));
_JobApplications.readExternalData(vals.get(MULTIPLEREFERENCE_JobApplications)); _JobApplications.readExternalData(vals.get(MULTIPLEREFERENCE_JobApplications));
_CultureCriteriaAnswers.readExternalData(vals.get(MULTIPLEREFERENCE_CultureCriteriaAnswers));
_ProfileAssessmentAnswers.readExternalData(vals.get(MULTIPLEREFERENCE_ProfileAssessmentAnswers));
} }
...@@ -1512,6 +1802,8 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -1512,6 +1802,8 @@ public abstract class BaseCandidate extends SecUserExtension
vals.put (SINGLEREFERENCE_TestInput, _TestInput.writeExternalData()); vals.put (SINGLEREFERENCE_TestInput, _TestInput.writeExternalData());
vals.put (MULTIPLEREFERENCE_TestAnalysises, _TestAnalysises.writeExternalData()); vals.put (MULTIPLEREFERENCE_TestAnalysises, _TestAnalysises.writeExternalData());
vals.put (MULTIPLEREFERENCE_JobApplications, _JobApplications.writeExternalData()); vals.put (MULTIPLEREFERENCE_JobApplications, _JobApplications.writeExternalData());
vals.put (MULTIPLEREFERENCE_CultureCriteriaAnswers, _CultureCriteriaAnswers.writeExternalData());
vals.put (MULTIPLEREFERENCE_ProfileAssessmentAnswers, _ProfileAssessmentAnswers.writeExternalData());
} }
...@@ -1549,6 +1841,8 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -1549,6 +1841,8 @@ public abstract class BaseCandidate extends SecUserExtension
// Compare multiple assocs // Compare multiple assocs
_TestAnalysises.compare (otherCandidate._TestAnalysises, listener); _TestAnalysises.compare (otherCandidate._TestAnalysises, listener);
_JobApplications.compare (otherCandidate._JobApplications, listener); _JobApplications.compare (otherCandidate._JobApplications, listener);
_CultureCriteriaAnswers.compare (otherCandidate._CultureCriteriaAnswers, listener);
_ProfileAssessmentAnswers.compare (otherCandidate._ProfileAssessmentAnswers, listener);
} }
} }
...@@ -1573,6 +1867,8 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -1573,6 +1867,8 @@ public abstract class BaseCandidate extends SecUserExtension
visitor.visitAssociation (_TestInput); visitor.visitAssociation (_TestInput);
visitor.visitAssociation (_TestAnalysises); visitor.visitAssociation (_TestAnalysises);
visitor.visitAssociation (_JobApplications); visitor.visitAssociation (_JobApplications);
visitor.visitAssociation (_CultureCriteriaAnswers);
visitor.visitAssociation (_ProfileAssessmentAnswers);
} }
...@@ -1593,6 +1889,14 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -1593,6 +1889,14 @@ public abstract class BaseCandidate extends SecUserExtension
{ {
visitor.visit (_JobApplications); visitor.visit (_JobApplications);
} }
if (scope.includes (_CultureCriteriaAnswers))
{
visitor.visit (_CultureCriteriaAnswers);
}
if (scope.includes (_ProfileAssessmentAnswers))
{
visitor.visit (_ProfileAssessmentAnswers);
}
} }
...@@ -1957,6 +2261,14 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -1957,6 +2261,14 @@ public abstract class BaseCandidate extends SecUserExtension
{ {
return getWriteability_JobApplications (); return getWriteability_JobApplications ();
} }
else if (fieldName.equals (MULTIPLEREFERENCE_CultureCriteriaAnswers))
{
return getWriteability_CultureCriteriaAnswers ();
}
else if (fieldName.equals (MULTIPLEREFERENCE_ProfileAssessmentAnswers))
{
return getWriteability_ProfileAssessmentAnswers ();
}
else if (fieldName.equals (SINGLEREFERENCE_TestInput)) else if (fieldName.equals (SINGLEREFERENCE_TestInput))
{ {
return getWriteability_TestInput (); return getWriteability_TestInput ();
...@@ -2186,6 +2498,14 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -2186,6 +2498,14 @@ public abstract class BaseCandidate extends SecUserExtension
{ {
return toJobApplications (); return toJobApplications ();
} }
if (name.equals ("CultureCriteriaAnswers"))
{
return toCultureCriteriaAnswers ();
}
if (name.equals ("ProfileAssessmentAnswers"))
{
return toProfileAssessmentAnswers ();
}
if (name.equals ("Phone")) if (name.equals ("Phone"))
{ {
return toPhone (); return toPhone ();
...@@ -2237,6 +2557,18 @@ public abstract class BaseCandidate extends SecUserExtension ...@@ -2237,6 +2557,18 @@ public abstract class BaseCandidate extends SecUserExtension
{ {
return JobApplication.REFERENCE_JobApplication.new JobApplicationPipeLineFactory<From, JobApplication> (this, new ORMMultiAssocPipe<Me, JobApplication>(MULTIPLEREFERENCE_JobApplications, filter)); return JobApplication.REFERENCE_JobApplication.new JobApplicationPipeLineFactory<From, JobApplication> (this, new ORMMultiAssocPipe<Me, JobApplication>(MULTIPLEREFERENCE_JobApplications, filter));
} }
public CultureCriteriaAnswer.CultureCriteriaAnswerPipeLineFactory<From, CultureCriteriaAnswer> toCultureCriteriaAnswers () { return toCultureCriteriaAnswers(Filter.ALL); }
public CultureCriteriaAnswer.CultureCriteriaAnswerPipeLineFactory<From, CultureCriteriaAnswer> toCultureCriteriaAnswers (Filter<CultureCriteriaAnswer> filter)
{
return CultureCriteriaAnswer.REFERENCE_CultureCriteriaAnswer.new CultureCriteriaAnswerPipeLineFactory<From, CultureCriteriaAnswer> (this, new ORMMultiAssocPipe<Me, CultureCriteriaAnswer>(MULTIPLEREFERENCE_CultureCriteriaAnswers, filter));
}
public Answer.AnswerPipeLineFactory<From, Answer> toProfileAssessmentAnswers () { return toProfileAssessmentAnswers(Filter.ALL); }
public Answer.AnswerPipeLineFactory<From, Answer> toProfileAssessmentAnswers (Filter<Answer> filter)
{
return Answer.REFERENCE_Answer.new AnswerPipeLineFactory<From, Answer> (this, new ORMMultiAssocPipe<Me, Answer>(MULTIPLEREFERENCE_ProfileAssessmentAnswers, filter));
}
} }
...@@ -2316,6 +2648,40 @@ class DummyCandidate extends Candidate ...@@ -2316,6 +2648,40 @@ class DummyCandidate extends Candidate
return new TreeSet(); return new TreeSet();
} }
public int getCultureCriteriaAnswersCount () throws StorageException
{
return 0;
}
public CultureCriteriaAnswer getCultureCriteriaAnswersAt (int index) throws StorageException
{
throw new RuntimeException ("No elements in a dummy object in association CultureCriteriaAnswers");
}
public SortedSet getCultureCriteriaAnswersSet () throws StorageException
{
return new TreeSet();
}
public int getProfileAssessmentAnswersCount () throws StorageException
{
return 0;
}
public Answer getProfileAssessmentAnswersAt (int index) throws StorageException
{
throw new RuntimeException ("No elements in a dummy object in association ProfileAssessmentAnswers");
}
public SortedSet getProfileAssessmentAnswersSet () throws StorageException
{
return new TreeSet();
}
} }
...@@ -47,8 +47,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -47,8 +47,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
public static final String BACKREF_Job = ""; public static final String BACKREF_Job = "";
public static final String SINGLEREFERENCE_Template = "Template"; public static final String SINGLEREFERENCE_Template = "Template";
public static final String BACKREF_Template = ""; public static final String BACKREF_Template = "";
public static final String MULTIPLEREFERENCE_Answers = "Answers";
public static final String BACKREF_Answers = "";
// Static constants corresponding to searches // Static constants corresponding to searches
public static final String SEARCH_All = "All"; public static final String SEARCH_All = "All";
...@@ -70,7 +68,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -70,7 +68,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
// Private attributes corresponding to multiple references // Private attributes corresponding to multiple references
private MultipleAssociation<CultureCriteria, CultureCriteriaAnswer> _Answers;
// Map of maps of metadata // Map of maps of metadata
...@@ -88,13 +85,11 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -88,13 +85,11 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
try try
{ {
String tmp_Answers = CultureCriteriaAnswer.BACKREF_CultureCriteria;
String tmp_Job = Job.BACKREF_CultureCriterias; String tmp_Job = Job.BACKREF_CultureCriterias;
String tmp_Template = CultureCriteriaTemplate.BACKREF_CultureCriterias; String tmp_Template = CultureCriteriaTemplate.BACKREF_CultureCriterias;
Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping")); Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping"));
setupAssocMetaData_Answers();
setupAssocMetaData_CultureElement(); setupAssocMetaData_CultureElement();
setupAssocMetaData_CultureElementRating(); setupAssocMetaData_CultureElementRating();
setupAssocMetaData_Job(); setupAssocMetaData_Job();
...@@ -115,20 +110,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -115,20 +110,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
// Meta Info setup // Meta Info setup
private static void setupAssocMetaData_Answers()
{
Map metaInfo = new HashMap ();
metaInfo.put ("backreferenceName", "CultureCriteria");
metaInfo.put ("name", "Answers");
metaInfo.put ("type", "CultureCriteriaAnswer");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for CultureCriteria.Answers:", metaInfo);
ATTRIBUTES_METADATA_CultureCriteria.put (MULTIPLEREFERENCE_Answers, Collections.unmodifiableMap (metaInfo));
}
// Meta Info setup
private static void setupAssocMetaData_CultureElement() private static void setupAssocMetaData_CultureElement()
{ {
Map metaInfo = new HashMap (); Map metaInfo = new HashMap ();
...@@ -249,7 +230,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -249,7 +230,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
_CultureElementRating = new SingleAssociation<CultureCriteria, CultureElementRating> (this, SINGLEREFERENCE_CultureElementRating, null, CultureElementRating.REFERENCE_CultureElementRating, "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"); _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"); _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);
} }
...@@ -263,7 +243,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -263,7 +243,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
_CultureElementRating = new SingleAssociation<CultureCriteria, CultureElementRating> (this, SINGLEREFERENCE_CultureElementRating, null, CultureElementRating.REFERENCE_CultureElementRating, "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"); _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"); _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);
return this; return this;
...@@ -962,8 +941,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -962,8 +941,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
List result = super.getMultiAssocs (); List result = super.getMultiAssocs ();
result.add("Answers");
return result; return result;
} }
...@@ -975,11 +952,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -975,11 +952,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
public BaseBusinessClass getMultiAssocReferenceInstance(String attribName) public BaseBusinessClass getMultiAssocReferenceInstance(String attribName)
{ {
if (MULTIPLEREFERENCE_Answers.equals(attribName))
{
return CultureCriteriaAnswer.REFERENCE_CultureCriteriaAnswer ;
}
return super.getMultiAssocReferenceInstance(attribName); return super.getMultiAssocReferenceInstance(attribName);
} }
...@@ -988,11 +960,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -988,11 +960,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
public String getMultiAssocBackReference(String attribName) public String getMultiAssocBackReference(String attribName)
{ {
if (MULTIPLEREFERENCE_Answers.equals(attribName))
{
return CultureCriteriaAnswer.SINGLEREFERENCE_CultureCriteria ;
}
return super.getMultiAssocBackReference(attribName); return super.getMultiAssocBackReference(attribName);
} }
...@@ -1004,11 +971,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -1004,11 +971,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
public int getMultiAssocCount(String attribName) throws StorageException public int getMultiAssocCount(String attribName) throws StorageException
{ {
if (MULTIPLEREFERENCE_Answers.equals(attribName))
{
return this.getAnswersCount();
}
return super.getMultiAssocCount(attribName); return super.getMultiAssocCount(attribName);
} }
...@@ -1020,11 +982,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -1020,11 +982,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
public BaseBusinessClass getMultiAssocAt(String attribName, int index) throws StorageException public BaseBusinessClass getMultiAssocAt(String attribName, int index) throws StorageException
{ {
if (MULTIPLEREFERENCE_Answers.equals(attribName))
{
return this.getAnswersAt(index);
}
return super.getMultiAssocAt(attribName, index); return super.getMultiAssocAt(attribName, index);
} }
...@@ -1036,13 +993,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -1036,13 +993,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
public void addToMultiAssoc(String attribName, BaseBusinessClass newElement) throws StorageException public void addToMultiAssoc(String attribName, BaseBusinessClass newElement) throws StorageException
{ {
if (MULTIPLEREFERENCE_Answers.equals(attribName))
{
addToAnswers((CultureCriteriaAnswer)newElement);
return;
}
super.addToMultiAssoc(attribName, newElement); super.addToMultiAssoc(attribName, newElement);
} }
...@@ -1053,13 +1003,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -1053,13 +1003,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
public void removeFromMultiAssoc(String attribName, BaseBusinessClass oldElement) throws StorageException public void removeFromMultiAssoc(String attribName, BaseBusinessClass oldElement) throws StorageException
{ {
if (MULTIPLEREFERENCE_Answers.equals(attribName))
{
removeFromAnswers((CultureCriteriaAnswer)oldElement);
return;
}
super.removeFromMultiAssoc(attribName, oldElement); super.removeFromMultiAssoc(attribName, oldElement);
} }
...@@ -1068,12 +1011,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -1068,12 +1011,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
protected void __loadMultiAssoc (String attribName, BaseBusinessClass[] elements) protected void __loadMultiAssoc (String attribName, BaseBusinessClass[] elements)
{ {
if (MULTIPLEREFERENCE_Answers.equals(attribName))
{
_Answers.__loadAssociation (elements);
return;
}
super.__loadMultiAssoc(attribName, elements); super.__loadMultiAssoc(attribName, elements);
} }
...@@ -1082,86 +1019,12 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -1082,86 +1019,12 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
protected boolean __isMultiAssocLoaded (String attribName) protected boolean __isMultiAssocLoaded (String attribName)
{ {
if (MULTIPLEREFERENCE_Answers.equals(attribName))
{
return _Answers.isLoaded ();
}
return super.__isMultiAssocLoaded(attribName); return super.__isMultiAssocLoaded(attribName);
} }
public FieldWriteability getWriteability_Answers ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
public int getAnswersCount () throws StorageException
{
assertValid();
return _Answers.getReferencedObjectsCount ();
}
public void addToAnswers (CultureCriteriaAnswer newElement) throws StorageException
{
if (_Answers.wouldAddChange (newElement))
{
assertValid();
Debug.assertion (getWriteability_Answers () != FieldWriteability.FALSE, "MultiAssoc Answers is not writeable (add)");
_Answers.appendElement (newElement);
try
{
if (newElement.getCultureCriteria () != this)
{
newElement.setCultureCriteria ((CultureCriteria)(this));
}
}
catch (Exception e)
{
throw NestedException.wrap(e);
}
}
}
public void removeFromAnswers (CultureCriteriaAnswer elementToRemove) throws StorageException
{
if (_Answers.wouldRemoveChange (elementToRemove))
{
assertValid();
Debug.assertion (getWriteability_Answers () != FieldWriteability.FALSE, "MultiAssoc Answers is not writeable (remove)");
_Answers.removeElement (elementToRemove);
try
{
if (elementToRemove.getCultureCriteria () != null)
{
elementToRemove.setCultureCriteria (null);
}
}
catch (Exception e)
{
throw NestedException.wrap(e);
}
}
}
public CultureCriteriaAnswer getAnswersAt (int index) throws StorageException
{
return (CultureCriteriaAnswer)(_Answers.getElementAt (index));
}
public SortedSet<CultureCriteriaAnswer> getAnswersSet () throws StorageException
{
return _Answers.getSet ();
}
public void onDelete () public void onDelete ()
...@@ -1196,12 +1059,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -1196,12 +1059,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
} }
} }
for(CultureCriteriaAnswer referenced : CollectionUtils.reverse(getAnswersSet()))
{
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Setting backreference to null CultureCriteria from ", getObjectID (), " to ", referenced.getObjectID ());
referenced.setCultureCriteria(null);
}
} }
catch (Exception e) catch (Exception e)
{ {
...@@ -1362,7 +1219,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -1362,7 +1219,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
{ {
BaseCultureCriteria sourceCultureCriteria = (BaseCultureCriteria)(source); BaseCultureCriteria sourceCultureCriteria = (BaseCultureCriteria)(source);
_Answers.copyFrom (sourceCultureCriteria._Answers, linkToGhosts);
} }
} }
...@@ -1392,7 +1248,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -1392,7 +1248,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
_CultureElementRating.readExternalData(vals.get(SINGLEREFERENCE_CultureElementRating)); _CultureElementRating.readExternalData(vals.get(SINGLEREFERENCE_CultureElementRating));
_Job.readExternalData(vals.get(SINGLEREFERENCE_Job)); _Job.readExternalData(vals.get(SINGLEREFERENCE_Job));
_Template.readExternalData(vals.get(SINGLEREFERENCE_Template)); _Template.readExternalData(vals.get(SINGLEREFERENCE_Template));
_Answers.readExternalData(vals.get(MULTIPLEREFERENCE_Answers));
} }
...@@ -1409,7 +1264,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -1409,7 +1264,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
vals.put (SINGLEREFERENCE_CultureElementRating, _CultureElementRating.writeExternalData()); vals.put (SINGLEREFERENCE_CultureElementRating, _CultureElementRating.writeExternalData());
vals.put (SINGLEREFERENCE_Job, _Job.writeExternalData()); vals.put (SINGLEREFERENCE_Job, _Job.writeExternalData());
vals.put (SINGLEREFERENCE_Template, _Template.writeExternalData()); vals.put (SINGLEREFERENCE_Template, _Template.writeExternalData());
vals.put (MULTIPLEREFERENCE_Answers, _Answers.writeExternalData());
} }
...@@ -1436,7 +1290,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -1436,7 +1290,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
// Compare multiple assocs // Compare multiple assocs
_Answers.compare (otherCultureCriteria._Answers, listener);
} }
} }
...@@ -1459,7 +1312,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -1459,7 +1312,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
visitor.visitAssociation (_CultureElementRating); visitor.visitAssociation (_CultureElementRating);
visitor.visitAssociation (_Job); visitor.visitAssociation (_Job);
visitor.visitAssociation (_Template); visitor.visitAssociation (_Template);
visitor.visitAssociation (_Answers);
} }
...@@ -1484,10 +1336,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -1484,10 +1336,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
{ {
visitor.visit (_Template); visitor.visit (_Template);
} }
if (scope.includes (_Answers))
{
visitor.visit (_Answers);
}
} }
...@@ -1691,10 +1539,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -1691,10 +1539,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
{ {
return getWriteability_Importance (); return getWriteability_Importance ();
} }
else if (fieldName.equals (MULTIPLEREFERENCE_Answers))
{
return getWriteability_Answers ();
}
else if (fieldName.equals (SINGLEREFERENCE_CultureElement)) else if (fieldName.equals (SINGLEREFERENCE_CultureElement))
{ {
return getWriteability_CultureElement (); return getWriteability_CultureElement ();
...@@ -1856,10 +1700,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -1856,10 +1700,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
public PipeLine<From, ? extends Object> to(String name) public PipeLine<From, ? extends Object> to(String name)
{ {
if (name.equals ("Answers"))
{
return toAnswers ();
}
if (name.equals ("Importance")) if (name.equals ("Importance"))
{ {
return toImportance (); return toImportance ();
...@@ -1911,12 +1751,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -1911,12 +1751,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
{ {
return CultureCriteriaTemplate.REFERENCE_CultureCriteriaTemplate.new CultureCriteriaTemplatePipeLineFactory<From, CultureCriteriaTemplate> (this, new ORMSingleAssocPipe<Me, CultureCriteriaTemplate>(SINGLEREFERENCE_Template, 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)
{
return CultureCriteriaAnswer.REFERENCE_CultureCriteriaAnswer.new CultureCriteriaAnswerPipeLineFactory<From, CultureCriteriaAnswer> (this, new ORMMultiAssocPipe<Me, CultureCriteriaAnswer>(MULTIPLEREFERENCE_Answers, filter));
}
} }
...@@ -2004,23 +1838,6 @@ class DummyCultureCriteria extends CultureCriteria ...@@ -2004,23 +1838,6 @@ class DummyCultureCriteria extends CultureCriteria
return CultureCriteriaTemplate.DUMMY_CultureCriteriaTemplate.getObjectID(); return CultureCriteriaTemplate.DUMMY_CultureCriteriaTemplate.getObjectID();
} }
public int getAnswersCount () throws StorageException
{
return 0;
}
public CultureCriteriaAnswer getAnswersAt (int index) throws StorageException
{
throw new RuntimeException ("No elements in a dummy object in association Answers");
}
public SortedSet getAnswersSet () throws StorageException
{
return new TreeSet();
}
} }
...@@ -38,11 +38,10 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -38,11 +38,10 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
// Static constants corresponding to field names // Static constants corresponding to field names
public static final String SINGLEREFERENCE_CultureCriteria = "CultureCriteria"; public static final String SINGLEREFERENCE_CultureElement = "CultureElement";
public static final String BACKREF_CultureCriteria = "";
public static final String SINGLEREFERENCE_SelectedQuestion = "SelectedQuestion"; public static final String SINGLEREFERENCE_SelectedQuestion = "SelectedQuestion";
public static final String SINGLEREFERENCE_JobApplication = "JobApplication"; public static final String SINGLEREFERENCE_Candidate = "Candidate";
public static final String BACKREF_JobApplication = ""; public static final String BACKREF_Candidate = "";
// Static constants corresponding to searches // Static constants corresponding to searches
public static final String SEARCH_All = "All"; public static final String SEARCH_All = "All";
...@@ -55,9 +54,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -55,9 +54,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
// Private attributes corresponding to single references // Private attributes corresponding to single references
private SingleAssociation<CultureCriteriaAnswer, CultureCriteria> _CultureCriteria; private SingleAssociation<CultureCriteriaAnswer, CultureElement> _CultureElement;
private SingleAssociation<CultureCriteriaAnswer, CultureElementQuestion> _SelectedQuestion; private SingleAssociation<CultureCriteriaAnswer, CultureElementQuestion> _SelectedQuestion;
private SingleAssociation<CultureCriteriaAnswer, JobApplication> _JobApplication; private SingleAssociation<CultureCriteriaAnswer, Candidate> _Candidate;
// Private attributes corresponding to multiple references // Private attributes corresponding to multiple references
...@@ -77,14 +76,13 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -77,14 +76,13 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
try try
{ {
String tmp_CultureCriteria = CultureCriteria.BACKREF_Answers; String tmp_Candidate = Candidate.BACKREF_CultureCriteriaAnswers;
String tmp_JobApplication = JobApplication.BACKREF_CultureCriteriaAnswers;
Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping")); Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping"));
setupAssocMetaData_CultureCriteria(); setupAssocMetaData_CultureElement();
setupAssocMetaData_SelectedQuestion(); setupAssocMetaData_SelectedQuestion();
setupAssocMetaData_JobApplication(); setupAssocMetaData_Candidate();
REFERENCE_CultureCriteriaAnswer.initialiseReference (); REFERENCE_CultureCriteriaAnswer.initialiseReference ();
...@@ -100,18 +98,17 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -100,18 +98,17 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
// Meta Info setup // Meta Info setup
private static void setupAssocMetaData_CultureCriteria() private static void setupAssocMetaData_CultureElement()
{ {
Map metaInfo = new HashMap (); Map metaInfo = new HashMap ();
metaInfo.put ("backreferenceName", "Answers"); metaInfo.put ("dbcol", "culture_element_id");
metaInfo.put ("dbcol", "culture_criteria_id");
metaInfo.put ("mandatory", "true"); metaInfo.put ("mandatory", "true");
metaInfo.put ("name", "CultureCriteria"); metaInfo.put ("name", "CultureElement");
metaInfo.put ("type", "CultureCriteria"); metaInfo.put ("type", "CultureElement");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for CultureCriteriaAnswer.CultureCriteria:", metaInfo); LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for CultureCriteriaAnswer.CultureElement:", metaInfo);
ATTRIBUTES_METADATA_CultureCriteriaAnswer.put (SINGLEREFERENCE_CultureCriteria, Collections.unmodifiableMap (metaInfo)); ATTRIBUTES_METADATA_CultureCriteriaAnswer.put (SINGLEREFERENCE_CultureElement, Collections.unmodifiableMap (metaInfo));
} }
...@@ -131,18 +128,18 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -131,18 +128,18 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
// Meta Info setup // Meta Info setup
private static void setupAssocMetaData_JobApplication() private static void setupAssocMetaData_Candidate()
{ {
Map metaInfo = new HashMap (); Map metaInfo = new HashMap ();
metaInfo.put ("backreferenceName", "CultureCriteriaAnswers"); metaInfo.put ("backreferenceName", "CultureCriteriaAnswers");
metaInfo.put ("dbcol", "job_application_id"); metaInfo.put ("dbcol", "candidate_id");
metaInfo.put ("mandatory", "true"); metaInfo.put ("mandatory", "true");
metaInfo.put ("name", "JobApplication"); metaInfo.put ("name", "Candidate");
metaInfo.put ("type", "JobApplication"); metaInfo.put ("type", "Candidate");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for CultureCriteriaAnswer.JobApplication:", metaInfo); LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for CultureCriteriaAnswer.Candidate:", metaInfo);
ATTRIBUTES_METADATA_CultureCriteriaAnswer.put (SINGLEREFERENCE_JobApplication, Collections.unmodifiableMap (metaInfo)); ATTRIBUTES_METADATA_CultureCriteriaAnswer.put (SINGLEREFERENCE_Candidate, Collections.unmodifiableMap (metaInfo));
} }
...@@ -181,9 +178,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -181,9 +178,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{ {
super._initialiseAssociations (); super._initialiseAssociations ();
_CultureCriteria = new SingleAssociation<CultureCriteriaAnswer, CultureCriteria> (this, SINGLEREFERENCE_CultureCriteria, CultureCriteria.MULTIPLEREFERENCE_Answers, CultureCriteria.REFERENCE_CultureCriteria, "tl_culture_criteria_answer"); _CultureElement = new SingleAssociation<CultureCriteriaAnswer, CultureElement> (this, SINGLEREFERENCE_CultureElement, null, CultureElement.REFERENCE_CultureElement, "tl_culture_criteria_answer");
_SelectedQuestion = new SingleAssociation<CultureCriteriaAnswer, CultureElementQuestion> (this, SINGLEREFERENCE_SelectedQuestion, null, CultureElementQuestion.REFERENCE_CultureElementQuestion, "tl_culture_criteria_answer"); _SelectedQuestion = new SingleAssociation<CultureCriteriaAnswer, CultureElementQuestion> (this, SINGLEREFERENCE_SelectedQuestion, null, CultureElementQuestion.REFERENCE_CultureElementQuestion, "tl_culture_criteria_answer");
_JobApplication = new SingleAssociation<CultureCriteriaAnswer, JobApplication> (this, SINGLEREFERENCE_JobApplication, JobApplication.MULTIPLEREFERENCE_CultureCriteriaAnswers, JobApplication.REFERENCE_JobApplication, "tl_culture_criteria_answer"); _Candidate = new SingleAssociation<CultureCriteriaAnswer, Candidate> (this, SINGLEREFERENCE_Candidate, Candidate.MULTIPLEREFERENCE_CultureCriteriaAnswers, Candidate.REFERENCE_Candidate, "tl_culture_criteria_answer");
} }
...@@ -193,9 +190,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -193,9 +190,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{ {
super.initialiseReference (); super.initialiseReference ();
_CultureCriteria = new SingleAssociation<CultureCriteriaAnswer, CultureCriteria> (this, SINGLEREFERENCE_CultureCriteria, CultureCriteria.MULTIPLEREFERENCE_Answers, CultureCriteria.REFERENCE_CultureCriteria, "tl_culture_criteria_answer"); _CultureElement = new SingleAssociation<CultureCriteriaAnswer, CultureElement> (this, SINGLEREFERENCE_CultureElement, null, CultureElement.REFERENCE_CultureElement, "tl_culture_criteria_answer");
_SelectedQuestion = new SingleAssociation<CultureCriteriaAnswer, CultureElementQuestion> (this, SINGLEREFERENCE_SelectedQuestion, null, CultureElementQuestion.REFERENCE_CultureElementQuestion, "tl_culture_criteria_answer"); _SelectedQuestion = new SingleAssociation<CultureCriteriaAnswer, CultureElementQuestion> (this, SINGLEREFERENCE_SelectedQuestion, null, CultureElementQuestion.REFERENCE_CultureElementQuestion, "tl_culture_criteria_answer");
_JobApplication = new SingleAssociation<CultureCriteriaAnswer, JobApplication> (this, SINGLEREFERENCE_JobApplication, JobApplication.MULTIPLEREFERENCE_CultureCriteriaAnswers, JobApplication.REFERENCE_JobApplication, "tl_culture_criteria_answer"); _Candidate = new SingleAssociation<CultureCriteriaAnswer, Candidate> (this, SINGLEREFERENCE_Candidate, Candidate.MULTIPLEREFERENCE_CultureCriteriaAnswers, Candidate.REFERENCE_Candidate, "tl_culture_criteria_answer");
return this; return this;
...@@ -213,11 +210,11 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -213,11 +210,11 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
List result = super.getSingleAssocs (); List result = super.getSingleAssocs ();
result.add("CultureCriteria"); result.add("CultureElement");
result.add("SelectedQuestion"); result.add("SelectedQuestion");
result.add("JobApplication"); result.add("Candidate");
return result; return result;
...@@ -230,15 +227,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -230,15 +227,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{ {
throw new RuntimeException ("Game over == null!"); throw new RuntimeException ("Game over == null!");
} }
else if (assocName.equals (SINGLEREFERENCE_CultureCriteria)) else if (assocName.equals (SINGLEREFERENCE_CultureElement))
{ {
return _CultureCriteria.getReferencedType (); return _CultureElement.getReferencedType ();
}else if (assocName.equals (SINGLEREFERENCE_SelectedQuestion)) }else if (assocName.equals (SINGLEREFERENCE_SelectedQuestion))
{ {
return _SelectedQuestion.getReferencedType (); return _SelectedQuestion.getReferencedType ();
}else if (assocName.equals (SINGLEREFERENCE_JobApplication)) }else if (assocName.equals (SINGLEREFERENCE_Candidate))
{ {
return _JobApplication.getReferencedType (); return _Candidate.getReferencedType ();
} }
else else
{ {
...@@ -253,15 +250,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -253,15 +250,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{ {
throw new RuntimeException ("Game over == null!"); throw new RuntimeException ("Game over == null!");
} }
else if (assocName.equals (SINGLEREFERENCE_CultureCriteria)) else if (assocName.equals (SINGLEREFERENCE_CultureElement))
{ {
return CultureCriteria.MULTIPLEREFERENCE_Answers ; return null ;
}else if (assocName.equals (SINGLEREFERENCE_SelectedQuestion)) }else if (assocName.equals (SINGLEREFERENCE_SelectedQuestion))
{ {
return null ; return null ;
}else if (assocName.equals (SINGLEREFERENCE_JobApplication)) }else if (assocName.equals (SINGLEREFERENCE_Candidate))
{ {
return JobApplication.MULTIPLEREFERENCE_CultureCriteriaAnswers ; return Candidate.MULTIPLEREFERENCE_CultureCriteriaAnswers ;
} }
else else
{ {
...@@ -276,15 +273,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -276,15 +273,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{ {
throw new RuntimeException ("Game over == null!"); throw new RuntimeException ("Game over == null!");
} }
else if (assocName.equals (SINGLEREFERENCE_CultureCriteria)) else if (assocName.equals (SINGLEREFERENCE_CultureElement))
{ {
return getCultureCriteria (); return getCultureElement ();
}else if (assocName.equals (SINGLEREFERENCE_SelectedQuestion)) }else if (assocName.equals (SINGLEREFERENCE_SelectedQuestion))
{ {
return getSelectedQuestion (); return getSelectedQuestion ();
}else if (assocName.equals (SINGLEREFERENCE_JobApplication)) }else if (assocName.equals (SINGLEREFERENCE_Candidate))
{ {
return getJobApplication (); return getCandidate ();
} }
else else
{ {
...@@ -299,15 +296,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -299,15 +296,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{ {
throw new RuntimeException ("Game over == null!"); throw new RuntimeException ("Game over == null!");
} }
else if (assocName.equals (SINGLEREFERENCE_CultureCriteria)) else if (assocName.equals (SINGLEREFERENCE_CultureElement))
{ {
return getCultureCriteria (getType); return getCultureElement (getType);
}else if (assocName.equals (SINGLEREFERENCE_SelectedQuestion)) }else if (assocName.equals (SINGLEREFERENCE_SelectedQuestion))
{ {
return getSelectedQuestion (getType); return getSelectedQuestion (getType);
}else if (assocName.equals (SINGLEREFERENCE_JobApplication)) }else if (assocName.equals (SINGLEREFERENCE_Candidate))
{ {
return getJobApplication (getType); return getCandidate (getType);
} }
else else
{ {
...@@ -322,15 +319,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -322,15 +319,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{ {
throw new RuntimeException ("Game over == null!"); throw new RuntimeException ("Game over == null!");
} }
else if (assocName.equals (SINGLEREFERENCE_CultureCriteria)) else if (assocName.equals (SINGLEREFERENCE_CultureElement))
{ {
return getCultureCriteriaID (); return getCultureElementID ();
}else if (assocName.equals (SINGLEREFERENCE_SelectedQuestion)) }else if (assocName.equals (SINGLEREFERENCE_SelectedQuestion))
{ {
return getSelectedQuestionID (); return getSelectedQuestionID ();
}else if (assocName.equals (SINGLEREFERENCE_JobApplication)) }else if (assocName.equals (SINGLEREFERENCE_Candidate))
{ {
return getJobApplicationID (); return getCandidateID ();
} }
else else
{ {
...@@ -345,15 +342,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -345,15 +342,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{ {
throw new RuntimeException ("Game over == null!"); throw new RuntimeException ("Game over == null!");
} }
else if (assocName.equals (SINGLEREFERENCE_CultureCriteria)) else if (assocName.equals (SINGLEREFERENCE_CultureElement))
{ {
setCultureCriteria ((CultureCriteria)(newValue)); setCultureElement ((CultureElement)(newValue));
}else if (assocName.equals (SINGLEREFERENCE_SelectedQuestion)) }else if (assocName.equals (SINGLEREFERENCE_SelectedQuestion))
{ {
setSelectedQuestion ((CultureElementQuestion)(newValue)); setSelectedQuestion ((CultureElementQuestion)(newValue));
}else if (assocName.equals (SINGLEREFERENCE_JobApplication)) }else if (assocName.equals (SINGLEREFERENCE_Candidate))
{ {
setJobApplication ((JobApplication)(newValue)); setCandidate ((Candidate)(newValue));
} }
else else
{ {
...@@ -364,20 +361,20 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -364,20 +361,20 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
/** /**
* Get the reference CultureCriteria * Get the reference CultureElement
*/ */
public CultureCriteria getCultureCriteria () throws StorageException public CultureElement getCultureElement () throws StorageException
{ {
assertValid(); assertValid();
try try
{ {
return (CultureCriteria)(_CultureCriteria.get ()); return (CultureElement)(_CultureElement.get ());
} }
catch (ClassCastException e) catch (ClassCastException e)
{ {
LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Cache collision in CultureCriteriaAnswer:", this.getObjectID (), ", was trying to get CultureCriteria:", getCultureCriteriaID ()); LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Cache collision in CultureCriteriaAnswer:", this.getObjectID (), ", was trying to get CultureElement:", getCultureElementID ());
LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Instead I got:", _CultureCriteria.get ().getClass ()); LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Instead I got:", _CultureElement.get ().getClass ());
throw e; throw e;
} }
} }
...@@ -386,27 +383,27 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -386,27 +383,27 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
/** /**
* Get the object id for the referenced object. Does not force a DB access. * Get the object id for the referenced object. Does not force a DB access.
*/ */
public CultureCriteria getCultureCriteria (Get getType) throws StorageException public CultureElement getCultureElement (Get getType) throws StorageException
{ {
assertValid(); assertValid();
return _CultureCriteria.get(getType); return _CultureElement.get(getType);
} }
/** /**
* Get the object id for the referenced object. Does not force a DB access. * Get the object id for the referenced object. Does not force a DB access.
*/ */
public Long getCultureCriteriaID () public Long getCultureElementID ()
{ {
assertValid(); assertValid();
if (_CultureCriteria == null) if (_CultureElement == null)
{ {
return null; return null;
} }
else else
{ {
return _CultureCriteria.getID (); return _CultureElement.getID ();
} }
} }
...@@ -414,7 +411,7 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -414,7 +411,7 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
* Called prior to the assoc changing. Subclasses need not call super. If a field exception * 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. * is thrown, the attribute change will fail. The new value is different to the old value.
*/ */
protected void preCultureCriteriaChange (CultureCriteria newCultureCriteria) throws FieldException protected void preCultureElementChange (CultureElement newCultureElement) throws FieldException
{ {
} }
...@@ -424,50 +421,37 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -424,50 +421,37 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
* If a field exception is thrown, the value is still changed, however it * If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back * may lead to the TX being rolled back
*/ */
protected void postCultureCriteriaChange () throws FieldException protected void postCultureElementChange () throws FieldException
{ {
} }
public FieldWriteability getWriteability_CultureCriteria () public FieldWriteability getWriteability_CultureElement ()
{ {
return getFieldWritabilityUtil (FieldWriteability.TRUE); return getFieldWritabilityUtil (FieldWriteability.TRUE);
} }
/** /**
* Set the reference CultureCriteria. Checks to ensure a new value * Set the reference CultureElement. Checks to ensure a new value
* has been supplied. If so, marks the reference as altered and sets it. * has been supplied. If so, marks the reference as altered and sets it.
*/ */
public void setCultureCriteria (CultureCriteria newCultureCriteria) throws StorageException, FieldException public void setCultureElement (CultureElement newCultureElement) throws StorageException, FieldException
{ {
BusinessObjectParser.assertFieldCondition (newCultureCriteria != null, this, SINGLEREFERENCE_CultureCriteria, "mandatory"); BusinessObjectParser.assertFieldCondition (newCultureElement != null, this, SINGLEREFERENCE_CultureElement, "mandatory");
if (_CultureCriteria.wouldReferencedChange (newCultureCriteria)) if (_CultureElement.wouldReferencedChange (newCultureElement))
{ {
assertValid(); assertValid();
Debug.assertion (getWriteability_CultureCriteria () != FieldWriteability.FALSE, "Assoc CultureCriteria is not writeable"); Debug.assertion (getWriteability_CultureElement () != FieldWriteability.FALSE, "Assoc CultureElement is not writeable");
preCultureCriteriaChange (newCultureCriteria); preCultureElementChange (newCultureElement);
CultureCriteria oldCultureCriteria = getCultureCriteria ();
if (oldCultureCriteria != null)
{
// This is to stop validation from triggering when we are removed
_CultureCriteria.set (null);
oldCultureCriteria.removeFromAnswers ((CultureCriteriaAnswer)(this));
}
_CultureCriteria.set (newCultureCriteria); _CultureElement.set (newCultureElement);
if (newCultureCriteria != null) postCultureElementChange ();
{
newCultureCriteria.addToAnswers ((CultureCriteriaAnswer)(this));
}
postCultureCriteriaChange ();
} }
} }
...@@ -567,20 +551,20 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -567,20 +551,20 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
} }
/** /**
* Get the reference JobApplication * Get the reference Candidate
*/ */
public JobApplication getJobApplication () throws StorageException public Candidate getCandidate () throws StorageException
{ {
assertValid(); assertValid();
try try
{ {
return (JobApplication)(_JobApplication.get ()); return (Candidate)(_Candidate.get ());
} }
catch (ClassCastException e) catch (ClassCastException e)
{ {
LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Cache collision in CultureCriteriaAnswer:", this.getObjectID (), ", was trying to get JobApplication:", getJobApplicationID ()); LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Cache collision in CultureCriteriaAnswer:", this.getObjectID (), ", was trying to get Candidate:", getCandidateID ());
LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Instead I got:", _JobApplication.get ().getClass ()); LogMgr.log (BUSINESS_OBJECTS, LogLevel.SYSTEMERROR2, "Instead I got:", _Candidate.get ().getClass ());
throw e; throw e;
} }
} }
...@@ -589,27 +573,27 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -589,27 +573,27 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
/** /**
* Get the object id for the referenced object. Does not force a DB access. * Get the object id for the referenced object. Does not force a DB access.
*/ */
public JobApplication getJobApplication (Get getType) throws StorageException public Candidate getCandidate (Get getType) throws StorageException
{ {
assertValid(); assertValid();
return _JobApplication.get(getType); return _Candidate.get(getType);
} }
/** /**
* Get the object id for the referenced object. Does not force a DB access. * Get the object id for the referenced object. Does not force a DB access.
*/ */
public Long getJobApplicationID () public Long getCandidateID ()
{ {
assertValid(); assertValid();
if (_JobApplication == null) if (_Candidate == null)
{ {
return null; return null;
} }
else else
{ {
return _JobApplication.getID (); return _Candidate.getID ();
} }
} }
...@@ -617,7 +601,7 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -617,7 +601,7 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
* Called prior to the assoc changing. Subclasses need not call super. If a field exception * 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. * is thrown, the attribute change will fail. The new value is different to the old value.
*/ */
protected void preJobApplicationChange (JobApplication newJobApplication) throws FieldException protected void preCandidateChange (Candidate newCandidate) throws FieldException
{ {
} }
...@@ -627,50 +611,50 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -627,50 +611,50 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
* If a field exception is thrown, the value is still changed, however it * If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back * may lead to the TX being rolled back
*/ */
protected void postJobApplicationChange () throws FieldException protected void postCandidateChange () throws FieldException
{ {
} }
public FieldWriteability getWriteability_JobApplication () public FieldWriteability getWriteability_Candidate ()
{ {
return getFieldWritabilityUtil (FieldWriteability.TRUE); return getFieldWritabilityUtil (FieldWriteability.TRUE);
} }
/** /**
* Set the reference JobApplication. Checks to ensure a new value * Set the reference Candidate. Checks to ensure a new value
* has been supplied. If so, marks the reference as altered and sets it. * has been supplied. If so, marks the reference as altered and sets it.
*/ */
public void setJobApplication (JobApplication newJobApplication) throws StorageException, FieldException public void setCandidate (Candidate newCandidate) throws StorageException, FieldException
{ {
BusinessObjectParser.assertFieldCondition (newJobApplication != null, this, SINGLEREFERENCE_JobApplication, "mandatory"); BusinessObjectParser.assertFieldCondition (newCandidate != null, this, SINGLEREFERENCE_Candidate, "mandatory");
if (_JobApplication.wouldReferencedChange (newJobApplication)) if (_Candidate.wouldReferencedChange (newCandidate))
{ {
assertValid(); assertValid();
Debug.assertion (getWriteability_JobApplication () != FieldWriteability.FALSE, "Assoc JobApplication is not writeable"); Debug.assertion (getWriteability_Candidate () != FieldWriteability.FALSE, "Assoc Candidate is not writeable");
preJobApplicationChange (newJobApplication); preCandidateChange (newCandidate);
JobApplication oldJobApplication = getJobApplication (); Candidate oldCandidate = getCandidate ();
if (oldJobApplication != null) if (oldCandidate != null)
{ {
// This is to stop validation from triggering when we are removed // This is to stop validation from triggering when we are removed
_JobApplication.set (null); _Candidate.set (null);
oldJobApplication.removeFromCultureCriteriaAnswers ((CultureCriteriaAnswer)(this)); oldCandidate.removeFromCultureCriteriaAnswers ((CultureCriteriaAnswer)(this));
} }
_JobApplication.set (newJobApplication); _Candidate.set (newCandidate);
if (newJobApplication != null) if (newCandidate != null)
{ {
newJobApplication.addToCultureCriteriaAnswers ((CultureCriteriaAnswer)(this)); newCandidate.addToCultureCriteriaAnswers ((CultureCriteriaAnswer)(this));
} }
postJobApplicationChange (); postCandidateChange ();
} }
} }
...@@ -773,29 +757,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -773,29 +757,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
try try
{ {
// Ensure we are removed from any loaded multi-associations that aren't mandatory // Ensure we are removed from any loaded multi-associations that aren't mandatory
if (_CultureCriteria.isLoaded () || getTransaction ().isObjectLoaded (_CultureCriteria.getReferencedType (), getCultureCriteriaID ())) if (_Candidate.isLoaded () || getTransaction ().isObjectLoaded (_Candidate.getReferencedType (), getCandidateID ()))
{
CultureCriteria referenced = getCultureCriteria ();
if (referenced != null)
{
// Stop the callback
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Setting backreference to null Answers from ", getObjectID (), " to ", referenced.getObjectID ());
_CultureCriteria.set (null);
referenced.removeFromAnswers ((CultureCriteriaAnswer)this);
}
}
// Ensure we are removed from any loaded multi-associations that aren't mandatory
if (_JobApplication.isLoaded () || getTransaction ().isObjectLoaded (_JobApplication.getReferencedType (), getJobApplicationID ()))
{ {
JobApplication referenced = getJobApplication (); Candidate referenced = getCandidate ();
if (referenced != null) if (referenced != null)
{ {
// Stop the callback // Stop the callback
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Setting backreference to null CultureCriteriaAnswers from ", getObjectID (), " to ", referenced.getObjectID ()); LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Setting backreference to null CultureCriteriaAnswers from ", getObjectID (), " to ", referenced.getObjectID ());
_JobApplication.set (null); _Candidate.set (null);
referenced.removeFromCultureCriteriaAnswers ((CultureCriteriaAnswer)this); referenced.removeFromCultureCriteriaAnswers ((CultureCriteriaAnswer)this);
} }
} }
...@@ -860,9 +830,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -860,9 +830,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
PersistentSet tl_culture_criteria_answerPSet = allSets.getPersistentSet (myID, "tl_culture_criteria_answer", myPSetStatus); PersistentSet tl_culture_criteria_answerPSet = allSets.getPersistentSet (myID, "tl_culture_criteria_answer", myPSetStatus);
tl_culture_criteria_answerPSet.setAttrib (FIELD_ObjectID, myID); tl_culture_criteria_answerPSet.setAttrib (FIELD_ObjectID, myID);
_CultureCriteria.getPersistentSets (allSets); _CultureElement.getPersistentSets (allSets);
_SelectedQuestion.getPersistentSets (allSets); _SelectedQuestion.getPersistentSets (allSets);
_JobApplication.getPersistentSets (allSets); _Candidate.getPersistentSets (allSets);
} }
...@@ -877,9 +847,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -877,9 +847,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
PersistentSet tl_culture_criteria_answerPSet = allSets.getPersistentSet (objectID, "tl_culture_criteria_answer"); PersistentSet tl_culture_criteria_answerPSet = allSets.getPersistentSet (objectID, "tl_culture_criteria_answer");
_CultureCriteria.setFromPersistentSets (objectID, allSets); _CultureElement.setFromPersistentSets (objectID, allSets);
_SelectedQuestion.setFromPersistentSets (objectID, allSets); _SelectedQuestion.setFromPersistentSets (objectID, allSets);
_JobApplication.setFromPersistentSets (objectID, allSets); _Candidate.setFromPersistentSets (objectID, allSets);
} }
...@@ -926,9 +896,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -926,9 +896,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{ {
BaseCultureCriteriaAnswer sourceCultureCriteriaAnswer = (BaseCultureCriteriaAnswer)(source); BaseCultureCriteriaAnswer sourceCultureCriteriaAnswer = (BaseCultureCriteriaAnswer)(source);
_CultureCriteria.copyFrom (sourceCultureCriteriaAnswer._CultureCriteria, linkToGhosts); _CultureElement.copyFrom (sourceCultureCriteriaAnswer._CultureElement, linkToGhosts);
_SelectedQuestion.copyFrom (sourceCultureCriteriaAnswer._SelectedQuestion, linkToGhosts); _SelectedQuestion.copyFrom (sourceCultureCriteriaAnswer._SelectedQuestion, linkToGhosts);
_JobApplication.copyFrom (sourceCultureCriteriaAnswer._JobApplication, linkToGhosts); _Candidate.copyFrom (sourceCultureCriteriaAnswer._Candidate, linkToGhosts);
} }
} }
...@@ -955,11 +925,11 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -955,11 +925,11 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
super.validate (context); super.validate (context);
context.check (getCultureCriteriaID() != null, this, SINGLEREFERENCE_CultureCriteria, "mandatory"); context.check (getCultureElementID() != null, this, SINGLEREFERENCE_CultureElement, "mandatory");
context.check (getSelectedQuestionID() != null, this, SINGLEREFERENCE_SelectedQuestion, "mandatory"); context.check (getSelectedQuestionID() != null, this, SINGLEREFERENCE_SelectedQuestion, "mandatory");
context.check (getJobApplicationID() != null, this, SINGLEREFERENCE_JobApplication, "mandatory"); context.check (getCandidateID() != null, this, SINGLEREFERENCE_Candidate, "mandatory");
} }
...@@ -971,9 +941,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -971,9 +941,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{ {
super.readExternalData(vals); super.readExternalData(vals);
_CultureCriteria.readExternalData(vals.get(SINGLEREFERENCE_CultureCriteria)); _CultureElement.readExternalData(vals.get(SINGLEREFERENCE_CultureElement));
_SelectedQuestion.readExternalData(vals.get(SINGLEREFERENCE_SelectedQuestion)); _SelectedQuestion.readExternalData(vals.get(SINGLEREFERENCE_SelectedQuestion));
_JobApplication.readExternalData(vals.get(SINGLEREFERENCE_JobApplication)); _Candidate.readExternalData(vals.get(SINGLEREFERENCE_Candidate));
} }
...@@ -985,9 +955,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -985,9 +955,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{ {
super.writeExternalData(vals); super.writeExternalData(vals);
vals.put (SINGLEREFERENCE_CultureCriteria, _CultureCriteria.writeExternalData()); vals.put (SINGLEREFERENCE_CultureElement, _CultureElement.writeExternalData());
vals.put (SINGLEREFERENCE_SelectedQuestion, _SelectedQuestion.writeExternalData()); vals.put (SINGLEREFERENCE_SelectedQuestion, _SelectedQuestion.writeExternalData());
vals.put (SINGLEREFERENCE_JobApplication, _JobApplication.writeExternalData()); vals.put (SINGLEREFERENCE_Candidate, _Candidate.writeExternalData());
} }
...@@ -1003,9 +973,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -1003,9 +973,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
// Compare single assocs // Compare single assocs
_CultureCriteria.compare (otherCultureCriteriaAnswer._CultureCriteria, listener); _CultureElement.compare (otherCultureCriteriaAnswer._CultureElement, listener);
_SelectedQuestion.compare (otherCultureCriteriaAnswer._SelectedQuestion, listener); _SelectedQuestion.compare (otherCultureCriteriaAnswer._SelectedQuestion, listener);
_JobApplication.compare (otherCultureCriteriaAnswer._JobApplication, listener); _Candidate.compare (otherCultureCriteriaAnswer._Candidate, listener);
// Compare multiple assocs // Compare multiple assocs
...@@ -1026,9 +996,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -1026,9 +996,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{ {
super.visitAttributes (visitor); super.visitAttributes (visitor);
visitor.visitAssociation (_CultureCriteria); visitor.visitAssociation (_CultureElement);
visitor.visitAssociation (_SelectedQuestion); visitor.visitAssociation (_SelectedQuestion);
visitor.visitAssociation (_JobApplication); visitor.visitAssociation (_Candidate);
} }
...@@ -1037,17 +1007,17 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -1037,17 +1007,17 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{ {
super.visitAssociations (visitor, scope); super.visitAssociations (visitor, scope);
if (scope.includes (_CultureCriteria)) if (scope.includes (_CultureElement))
{ {
visitor.visit (_CultureCriteria); visitor.visit (_CultureElement);
} }
if (scope.includes (_SelectedQuestion)) if (scope.includes (_SelectedQuestion))
{ {
visitor.visit (_SelectedQuestion); visitor.visit (_SelectedQuestion);
} }
if (scope.includes (_JobApplication)) if (scope.includes (_Candidate))
{ {
visitor.visit (_JobApplication); visitor.visit (_Candidate);
} }
} }
...@@ -1074,17 +1044,17 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -1074,17 +1044,17 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{ {
throw new RuntimeException ("Game over man!!"); throw new RuntimeException ("Game over man!!");
} }
else if (attribName.equals (SINGLEREFERENCE_CultureCriteria)) else if (attribName.equals (SINGLEREFERENCE_CultureElement))
{ {
return filter.matches (getCultureCriteria ()); return filter.matches (getCultureElement ());
} }
else if (attribName.equals (SINGLEREFERENCE_SelectedQuestion)) else if (attribName.equals (SINGLEREFERENCE_SelectedQuestion))
{ {
return filter.matches (getSelectedQuestion ()); return filter.matches (getSelectedQuestion ());
} }
else if (attribName.equals (SINGLEREFERENCE_JobApplication)) else if (attribName.equals (SINGLEREFERENCE_Candidate))
{ {
return filter.matches (getJobApplication ()); return filter.matches (getCandidate ());
} }
else else
{ {
...@@ -1117,9 +1087,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -1117,9 +1087,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
} }
public SearchAll andCultureCriteria (QueryFilter<CultureCriteria> filter) public SearchAll andCultureElement (QueryFilter<CultureElement> filter)
{ {
filter.addFilter (context, "tl_culture_criteria_answer.culture_criteria_id", "CultureCriteria"); filter.addFilter (context, "tl_culture_criteria_answer.culture_element_id", "CultureElement");
return this; return this;
} }
...@@ -1129,9 +1099,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -1129,9 +1099,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
return this; return this;
} }
public SearchAll andJobApplication (QueryFilter<JobApplication> filter) public SearchAll andCandidate (QueryFilter<Candidate> filter)
{ {
filter.addFilter (context, "tl_culture_criteria_answer.job_application_id", "JobApplication"); filter.addFilter (context, "tl_culture_criteria_answer.candidate_id", "Candidate");
return this; return this;
} }
...@@ -1216,17 +1186,17 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -1216,17 +1186,17 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{ {
throw new RuntimeException ("Game over man!!"); throw new RuntimeException ("Game over man!!");
} }
else if (fieldName.equals (SINGLEREFERENCE_CultureCriteria)) else if (fieldName.equals (SINGLEREFERENCE_CultureElement))
{ {
return getWriteability_CultureCriteria (); return getWriteability_CultureElement ();
} }
else if (fieldName.equals (SINGLEREFERENCE_SelectedQuestion)) else if (fieldName.equals (SINGLEREFERENCE_SelectedQuestion))
{ {
return getWriteability_SelectedQuestion (); return getWriteability_SelectedQuestion ();
} }
else if (fieldName.equals (SINGLEREFERENCE_JobApplication)) else if (fieldName.equals (SINGLEREFERENCE_Candidate))
{ {
return getWriteability_JobApplication (); return getWriteability_Candidate ();
} }
else else
{ {
...@@ -1349,28 +1319,28 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -1349,28 +1319,28 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
public PipeLine<From, ? extends Object> to(String name) public PipeLine<From, ? extends Object> to(String name)
{ {
if (name.equals ("CultureCriteria")) if (name.equals ("CultureElement"))
{ {
return toCultureCriteria (); return toCultureElement ();
} }
if (name.equals ("SelectedQuestion")) if (name.equals ("SelectedQuestion"))
{ {
return toSelectedQuestion (); return toSelectedQuestion ();
} }
if (name.equals ("JobApplication")) if (name.equals ("Candidate"))
{ {
return toJobApplication (); return toCandidate ();
} }
return super.to(name); return super.to(name);
} }
public CultureCriteria.CultureCriteriaPipeLineFactory<From, CultureCriteria> toCultureCriteria () { return toCultureCriteria (Filter.ALL); } public CultureElement.CultureElementPipeLineFactory<From, CultureElement> toCultureElement () { return toCultureElement (Filter.ALL); }
public CultureCriteria.CultureCriteriaPipeLineFactory<From, CultureCriteria> toCultureCriteria (Filter<CultureCriteria> filter) public CultureElement.CultureElementPipeLineFactory<From, CultureElement> toCultureElement (Filter<CultureElement> filter)
{ {
return CultureCriteria.REFERENCE_CultureCriteria.new CultureCriteriaPipeLineFactory<From, CultureCriteria> (this, new ORMSingleAssocPipe<Me, CultureCriteria>(SINGLEREFERENCE_CultureCriteria, filter)); return CultureElement.REFERENCE_CultureElement.new CultureElementPipeLineFactory<From, CultureElement> (this, new ORMSingleAssocPipe<Me, CultureElement>(SINGLEREFERENCE_CultureElement, filter));
} }
public CultureElementQuestion.CultureElementQuestionPipeLineFactory<From, CultureElementQuestion> toSelectedQuestion () { return toSelectedQuestion (Filter.ALL); } public CultureElementQuestion.CultureElementQuestionPipeLineFactory<From, CultureElementQuestion> toSelectedQuestion () { return toSelectedQuestion (Filter.ALL); }
...@@ -1378,11 +1348,11 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass ...@@ -1378,11 +1348,11 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{ {
return CultureElementQuestion.REFERENCE_CultureElementQuestion.new CultureElementQuestionPipeLineFactory<From, CultureElementQuestion> (this, new ORMSingleAssocPipe<Me, CultureElementQuestion>(SINGLEREFERENCE_SelectedQuestion, filter)); return CultureElementQuestion.REFERENCE_CultureElementQuestion.new CultureElementQuestionPipeLineFactory<From, CultureElementQuestion> (this, new ORMSingleAssocPipe<Me, CultureElementQuestion>(SINGLEREFERENCE_SelectedQuestion, filter));
} }
public JobApplication.JobApplicationPipeLineFactory<From, JobApplication> toJobApplication () { return toJobApplication (Filter.ALL); } public Candidate.CandidatePipeLineFactory<From, Candidate> toCandidate () { return toCandidate (Filter.ALL); }
public JobApplication.JobApplicationPipeLineFactory<From, JobApplication> toJobApplication (Filter<JobApplication> filter) public Candidate.CandidatePipeLineFactory<From, Candidate> toCandidate (Filter<Candidate> filter)
{ {
return JobApplication.REFERENCE_JobApplication.new JobApplicationPipeLineFactory<From, JobApplication> (this, new ORMSingleAssocPipe<Me, JobApplication>(SINGLEREFERENCE_JobApplication, filter)); return Candidate.REFERENCE_Candidate.new CandidatePipeLineFactory<From, Candidate> (this, new ORMSingleAssocPipe<Me, Candidate>(SINGLEREFERENCE_Candidate, filter));
} }
} }
...@@ -1415,18 +1385,18 @@ class DummyCultureCriteriaAnswer extends CultureCriteriaAnswer ...@@ -1415,18 +1385,18 @@ class DummyCultureCriteriaAnswer extends CultureCriteriaAnswer
} }
public CultureCriteria getCultureCriteria () throws StorageException public CultureElement getCultureElement () throws StorageException
{ {
return (CultureCriteria)(CultureCriteria.DUMMY_CultureCriteria); return (CultureElement)(CultureElement.DUMMY_CultureElement);
} }
/** /**
* Get the object id for the referenced object. Does not force a DB access. * Get the object id for the referenced object. Does not force a DB access.
*/ */
public Long getCultureCriteriaID () public Long getCultureElementID ()
{ {
return CultureCriteria.DUMMY_CultureCriteria.getObjectID(); return CultureElement.DUMMY_CultureElement.getObjectID();
} }
public CultureElementQuestion getSelectedQuestion () throws StorageException public CultureElementQuestion getSelectedQuestion () throws StorageException
...@@ -1443,18 +1413,18 @@ class DummyCultureCriteriaAnswer extends CultureCriteriaAnswer ...@@ -1443,18 +1413,18 @@ class DummyCultureCriteriaAnswer extends CultureCriteriaAnswer
return CultureElementQuestion.DUMMY_CultureElementQuestion.getObjectID(); return CultureElementQuestion.DUMMY_CultureElementQuestion.getObjectID();
} }
public JobApplication getJobApplication () throws StorageException public Candidate getCandidate () throws StorageException
{ {
return (JobApplication)(JobApplication.DUMMY_JobApplication); return (Candidate)(Candidate.DUMMY_Candidate);
} }
/** /**
* Get the object id for the referenced object. Does not force a DB access. * Get the object id for the referenced object. Does not force a DB access.
*/ */
public Long getJobApplicationID () public Long getCandidateID ()
{ {
return JobApplication.DUMMY_JobApplication.getObjectID(); return Candidate.DUMMY_Candidate.getObjectID();
} }
} }
......
...@@ -51,10 +51,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -51,10 +51,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
public static final String BACKREF_Job = ""; public static final String BACKREF_Job = "";
public static final String MULTIPLEREFERENCE_AssessmentCriteriaAnswers = "AssessmentCriteriaAnswers"; public static final String MULTIPLEREFERENCE_AssessmentCriteriaAnswers = "AssessmentCriteriaAnswers";
public static final String BACKREF_AssessmentCriteriaAnswers = ""; public static final String BACKREF_AssessmentCriteriaAnswers = "";
public static final String MULTIPLEREFERENCE_CultureCriteriaAnswers = "CultureCriteriaAnswers";
public static final String BACKREF_CultureCriteriaAnswers = "";
public static final String MULTIPLEREFERENCE_ProfileAssessmentAnswers = "ProfileAssessmentAnswers";
public static final String BACKREF_ProfileAssessmentAnswers = "";
// Static constants corresponding to searches // Static constants corresponding to searches
public static final String SEARCH_All = "All"; public static final String SEARCH_All = "All";
...@@ -84,8 +80,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -84,8 +80,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
// Private attributes corresponding to multiple references // Private attributes corresponding to multiple references
private MultipleAssociation<JobApplication, AssessmentCriteriaAnswer> _AssessmentCriteriaAnswers; private MultipleAssociation<JobApplication, AssessmentCriteriaAnswer> _AssessmentCriteriaAnswers;
private MultipleAssociation<JobApplication, CultureCriteriaAnswer> _CultureCriteriaAnswers;
private MultipleAssociation<JobApplication, Answer> _ProfileAssessmentAnswers;
// Map of maps of metadata // Map of maps of metadata
...@@ -108,16 +102,12 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -108,16 +102,12 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
String tmp_AssessmentCriteriaAnswers = AssessmentCriteriaAnswer.BACKREF_JobApplication; String tmp_AssessmentCriteriaAnswers = AssessmentCriteriaAnswer.BACKREF_JobApplication;
String tmp_CultureCriteriaAnswers = CultureCriteriaAnswer.BACKREF_JobApplication;
String tmp_ProfileAssessmentAnswers = Answer.BACKREF_JobApplication;
String tmp_Candidate = Candidate.BACKREF_JobApplications; String tmp_Candidate = Candidate.BACKREF_JobApplications;
String tmp_Job = Job.BACKREF_JobApplications; String tmp_Job = Job.BACKREF_JobApplications;
Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping")); Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping"));
setupAssocMetaData_AssessmentCriteriaAnswers(); setupAssocMetaData_AssessmentCriteriaAnswers();
setupAssocMetaData_CultureCriteriaAnswers();
setupAssocMetaData_ProfileAssessmentAnswers();
setupAssocMetaData_Candidate(); setupAssocMetaData_Candidate();
setupAssocMetaData_Job(); setupAssocMetaData_Job();
FIELD_AppProcessOption_Validators = (AttributeValidator[])setupAttribMetaData_AppProcessOption(validatorMapping).toArray (new AttributeValidator[0]); FIELD_AppProcessOption_Validators = (AttributeValidator[])setupAttribMetaData_AppProcessOption(validatorMapping).toArray (new AttributeValidator[0]);
...@@ -154,34 +144,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -154,34 +144,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
// Meta Info setup // Meta Info setup
private static void setupAssocMetaData_CultureCriteriaAnswers()
{
Map metaInfo = new HashMap ();
metaInfo.put ("backreferenceName", "JobApplication");
metaInfo.put ("name", "CultureCriteriaAnswers");
metaInfo.put ("type", "CultureCriteriaAnswer");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for JobApplication.CultureCriteriaAnswers:", metaInfo);
ATTRIBUTES_METADATA_JobApplication.put (MULTIPLEREFERENCE_CultureCriteriaAnswers, Collections.unmodifiableMap (metaInfo));
}
// Meta Info setup
private static void setupAssocMetaData_ProfileAssessmentAnswers()
{
Map metaInfo = new HashMap ();
metaInfo.put ("backreferenceName", "JobApplication");
metaInfo.put ("name", "ProfileAssessmentAnswers");
metaInfo.put ("type", "Answer");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for JobApplication.ProfileAssessmentAnswers:", metaInfo);
ATTRIBUTES_METADATA_JobApplication.put (MULTIPLEREFERENCE_ProfileAssessmentAnswers, Collections.unmodifiableMap (metaInfo));
}
// Meta Info setup
private static void setupAssocMetaData_Candidate() private static void setupAssocMetaData_Candidate()
{ {
Map metaInfo = new HashMap (); Map metaInfo = new HashMap ();
...@@ -352,8 +314,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -352,8 +314,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_Candidate = new SingleAssociation<JobApplication, Candidate> (this, SINGLEREFERENCE_Candidate, Candidate.MULTIPLEREFERENCE_JobApplications, Candidate.REFERENCE_Candidate, "tl_job_application"); _Candidate = new SingleAssociation<JobApplication, Candidate> (this, SINGLEREFERENCE_Candidate, Candidate.MULTIPLEREFERENCE_JobApplications, Candidate.REFERENCE_Candidate, "tl_job_application");
_Job = new SingleAssociation<JobApplication, Job> (this, SINGLEREFERENCE_Job, Job.MULTIPLEREFERENCE_JobApplications, Job.REFERENCE_Job, "tl_job_application"); _Job = new SingleAssociation<JobApplication, Job> (this, SINGLEREFERENCE_Job, Job.MULTIPLEREFERENCE_JobApplications, Job.REFERENCE_Job, "tl_job_application");
_AssessmentCriteriaAnswers = new MultipleAssociation<JobApplication, AssessmentCriteriaAnswer> (this, MULTIPLEREFERENCE_AssessmentCriteriaAnswers, AssessmentCriteriaAnswer.SINGLEREFERENCE_JobApplication, AssessmentCriteriaAnswer.REFERENCE_AssessmentCriteriaAnswer); _AssessmentCriteriaAnswers = new MultipleAssociation<JobApplication, AssessmentCriteriaAnswer> (this, MULTIPLEREFERENCE_AssessmentCriteriaAnswers, AssessmentCriteriaAnswer.SINGLEREFERENCE_JobApplication, AssessmentCriteriaAnswer.REFERENCE_AssessmentCriteriaAnswer);
_CultureCriteriaAnswers = new MultipleAssociation<JobApplication, CultureCriteriaAnswer> (this, MULTIPLEREFERENCE_CultureCriteriaAnswers, CultureCriteriaAnswer.SINGLEREFERENCE_JobApplication, CultureCriteriaAnswer.REFERENCE_CultureCriteriaAnswer);
_ProfileAssessmentAnswers = new MultipleAssociation<JobApplication, Answer> (this, MULTIPLEREFERENCE_ProfileAssessmentAnswers, Answer.SINGLEREFERENCE_JobApplication, Answer.REFERENCE_Answer);
} }
...@@ -366,8 +326,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -366,8 +326,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_Candidate = new SingleAssociation<JobApplication, Candidate> (this, SINGLEREFERENCE_Candidate, Candidate.MULTIPLEREFERENCE_JobApplications, Candidate.REFERENCE_Candidate, "tl_job_application"); _Candidate = new SingleAssociation<JobApplication, Candidate> (this, SINGLEREFERENCE_Candidate, Candidate.MULTIPLEREFERENCE_JobApplications, Candidate.REFERENCE_Candidate, "tl_job_application");
_Job = new SingleAssociation<JobApplication, Job> (this, SINGLEREFERENCE_Job, Job.MULTIPLEREFERENCE_JobApplications, Job.REFERENCE_Job, "tl_job_application"); _Job = new SingleAssociation<JobApplication, Job> (this, SINGLEREFERENCE_Job, Job.MULTIPLEREFERENCE_JobApplications, Job.REFERENCE_Job, "tl_job_application");
_AssessmentCriteriaAnswers = new MultipleAssociation<JobApplication, AssessmentCriteriaAnswer> (this, MULTIPLEREFERENCE_AssessmentCriteriaAnswers, AssessmentCriteriaAnswer.SINGLEREFERENCE_JobApplication, AssessmentCriteriaAnswer.REFERENCE_AssessmentCriteriaAnswer); _AssessmentCriteriaAnswers = new MultipleAssociation<JobApplication, AssessmentCriteriaAnswer> (this, MULTIPLEREFERENCE_AssessmentCriteriaAnswers, AssessmentCriteriaAnswer.SINGLEREFERENCE_JobApplication, AssessmentCriteriaAnswer.REFERENCE_AssessmentCriteriaAnswer);
_CultureCriteriaAnswers = new MultipleAssociation<JobApplication, CultureCriteriaAnswer> (this, MULTIPLEREFERENCE_CultureCriteriaAnswers, CultureCriteriaAnswer.SINGLEREFERENCE_JobApplication, CultureCriteriaAnswer.REFERENCE_CultureCriteriaAnswer);
_ProfileAssessmentAnswers = new MultipleAssociation<JobApplication, Answer> (this, MULTIPLEREFERENCE_ProfileAssessmentAnswers, Answer.SINGLEREFERENCE_JobApplication, Answer.REFERENCE_Answer);
return this; return this;
...@@ -1232,10 +1190,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1232,10 +1190,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
result.add("AssessmentCriteriaAnswers"); result.add("AssessmentCriteriaAnswers");
result.add("CultureCriteriaAnswers");
result.add("ProfileAssessmentAnswers");
return result; return result;
} }
...@@ -1252,16 +1206,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1252,16 +1206,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return AssessmentCriteriaAnswer.REFERENCE_AssessmentCriteriaAnswer ; return AssessmentCriteriaAnswer.REFERENCE_AssessmentCriteriaAnswer ;
} }
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
return CultureCriteriaAnswer.REFERENCE_CultureCriteriaAnswer ;
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
return Answer.REFERENCE_Answer ;
}
return super.getMultiAssocReferenceInstance(attribName); return super.getMultiAssocReferenceInstance(attribName);
} }
...@@ -1275,16 +1219,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1275,16 +1219,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return AssessmentCriteriaAnswer.SINGLEREFERENCE_JobApplication ; return AssessmentCriteriaAnswer.SINGLEREFERENCE_JobApplication ;
} }
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
return CultureCriteriaAnswer.SINGLEREFERENCE_JobApplication ;
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
return Answer.SINGLEREFERENCE_JobApplication ;
}
return super.getMultiAssocBackReference(attribName); return super.getMultiAssocBackReference(attribName);
} }
...@@ -1301,16 +1235,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1301,16 +1235,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return this.getAssessmentCriteriaAnswersCount(); return this.getAssessmentCriteriaAnswersCount();
} }
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
return this.getCultureCriteriaAnswersCount();
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
return this.getProfileAssessmentAnswersCount();
}
return super.getMultiAssocCount(attribName); return super.getMultiAssocCount(attribName);
} }
...@@ -1327,16 +1251,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1327,16 +1251,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return this.getAssessmentCriteriaAnswersAt(index); return this.getAssessmentCriteriaAnswersAt(index);
} }
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
return this.getCultureCriteriaAnswersAt(index);
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
return this.getProfileAssessmentAnswersAt(index);
}
return super.getMultiAssocAt(attribName, index); return super.getMultiAssocAt(attribName, index);
} }
...@@ -1355,20 +1269,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1355,20 +1269,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return; return;
} }
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
addToCultureCriteriaAnswers((CultureCriteriaAnswer)newElement);
return;
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
addToProfileAssessmentAnswers((Answer)newElement);
return;
}
super.addToMultiAssoc(attribName, newElement); super.addToMultiAssoc(attribName, newElement);
} }
...@@ -1386,20 +1286,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1386,20 +1286,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return; return;
} }
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
removeFromCultureCriteriaAnswers((CultureCriteriaAnswer)oldElement);
return;
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
removeFromProfileAssessmentAnswers((Answer)oldElement);
return;
}
super.removeFromMultiAssoc(attribName, oldElement); super.removeFromMultiAssoc(attribName, oldElement);
} }
...@@ -1414,18 +1300,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1414,18 +1300,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return; return;
} }
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
_CultureCriteriaAnswers.__loadAssociation (elements);
return;
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
_ProfileAssessmentAnswers.__loadAssociation (elements);
return;
}
super.__loadMultiAssoc(attribName, elements); super.__loadMultiAssoc(attribName, elements);
} }
...@@ -1439,16 +1313,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1439,16 +1313,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return _AssessmentCriteriaAnswers.isLoaded (); return _AssessmentCriteriaAnswers.isLoaded ();
} }
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
return _CultureCriteriaAnswers.isLoaded ();
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
return _ProfileAssessmentAnswers.isLoaded ();
}
return super.__isMultiAssocLoaded(attribName); return super.__isMultiAssocLoaded(attribName);
} }
...@@ -1524,144 +1388,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1524,144 +1388,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return _AssessmentCriteriaAnswers.getSet (); return _AssessmentCriteriaAnswers.getSet ();
} }
public FieldWriteability getWriteability_CultureCriteriaAnswers ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
public int getCultureCriteriaAnswersCount () throws StorageException
{
assertValid();
return _CultureCriteriaAnswers.getReferencedObjectsCount ();
}
public void addToCultureCriteriaAnswers (CultureCriteriaAnswer newElement) throws StorageException
{
if (_CultureCriteriaAnswers.wouldAddChange (newElement))
{
assertValid();
Debug.assertion (getWriteability_CultureCriteriaAnswers () != FieldWriteability.FALSE, "MultiAssoc CultureCriteriaAnswers is not writeable (add)");
_CultureCriteriaAnswers.appendElement (newElement);
try
{
if (newElement.getJobApplication () != this)
{
newElement.setJobApplication ((JobApplication)(this));
}
}
catch (Exception e)
{
throw NestedException.wrap(e);
}
}
}
public void removeFromCultureCriteriaAnswers (CultureCriteriaAnswer elementToRemove) throws StorageException
{
if (_CultureCriteriaAnswers.wouldRemoveChange (elementToRemove))
{
assertValid();
Debug.assertion (getWriteability_CultureCriteriaAnswers () != FieldWriteability.FALSE, "MultiAssoc CultureCriteriaAnswers is not writeable (remove)");
_CultureCriteriaAnswers.removeElement (elementToRemove);
try
{
if (elementToRemove.getJobApplication () != null)
{
elementToRemove.setJobApplication (null);
}
}
catch (Exception e)
{
throw NestedException.wrap(e);
}
}
}
public CultureCriteriaAnswer getCultureCriteriaAnswersAt (int index) throws StorageException
{
return (CultureCriteriaAnswer)(_CultureCriteriaAnswers.getElementAt (index));
}
public SortedSet<CultureCriteriaAnswer> getCultureCriteriaAnswersSet () throws StorageException
{
return _CultureCriteriaAnswers.getSet ();
}
public FieldWriteability getWriteability_ProfileAssessmentAnswers ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
public int getProfileAssessmentAnswersCount () throws StorageException
{
assertValid();
return _ProfileAssessmentAnswers.getReferencedObjectsCount ();
}
public void addToProfileAssessmentAnswers (Answer newElement) throws StorageException
{
if (_ProfileAssessmentAnswers.wouldAddChange (newElement))
{
assertValid();
Debug.assertion (getWriteability_ProfileAssessmentAnswers () != FieldWriteability.FALSE, "MultiAssoc ProfileAssessmentAnswers is not writeable (add)");
_ProfileAssessmentAnswers.appendElement (newElement);
try
{
if (newElement.getJobApplication () != this)
{
newElement.setJobApplication ((JobApplication)(this));
}
}
catch (Exception e)
{
throw NestedException.wrap(e);
}
}
}
public void removeFromProfileAssessmentAnswers (Answer elementToRemove) throws StorageException
{
if (_ProfileAssessmentAnswers.wouldRemoveChange (elementToRemove))
{
assertValid();
Debug.assertion (getWriteability_ProfileAssessmentAnswers () != FieldWriteability.FALSE, "MultiAssoc ProfileAssessmentAnswers is not writeable (remove)");
_ProfileAssessmentAnswers.removeElement (elementToRemove);
try
{
if (elementToRemove.getJobApplication () != null)
{
elementToRemove.setJobApplication (null);
}
}
catch (Exception e)
{
throw NestedException.wrap(e);
}
}
}
public Answer getProfileAssessmentAnswersAt (int index) throws StorageException
{
return (Answer)(_ProfileAssessmentAnswers.getElementAt (index));
}
public SortedSet<Answer> getProfileAssessmentAnswersSet () throws StorageException
{
return _ProfileAssessmentAnswers.getSet ();
}
public void onDelete () public void onDelete ()
...@@ -1702,18 +1428,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1702,18 +1428,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
referenced.setJobApplication(null); referenced.setJobApplication(null);
} }
for(CultureCriteriaAnswer referenced : CollectionUtils.reverse(getCultureCriteriaAnswersSet()))
{
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Setting backreference to null JobApplication from ", getObjectID (), " to ", referenced.getObjectID ());
referenced.setJobApplication(null);
}
for(Answer referenced : CollectionUtils.reverse(getProfileAssessmentAnswersSet()))
{
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Setting backreference to null JobApplication from ", getObjectID (), " to ", referenced.getObjectID ());
referenced.setJobApplication(null);
}
} }
catch (Exception e) catch (Exception e)
{ {
...@@ -1895,8 +1609,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1895,8 +1609,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
BaseJobApplication sourceJobApplication = (BaseJobApplication)(source); BaseJobApplication sourceJobApplication = (BaseJobApplication)(source);
_AssessmentCriteriaAnswers.copyFrom (sourceJobApplication._AssessmentCriteriaAnswers, linkToGhosts); _AssessmentCriteriaAnswers.copyFrom (sourceJobApplication._AssessmentCriteriaAnswers, linkToGhosts);
_CultureCriteriaAnswers.copyFrom (sourceJobApplication._CultureCriteriaAnswers, linkToGhosts);
_ProfileAssessmentAnswers.copyFrom (sourceJobApplication._ProfileAssessmentAnswers, linkToGhosts);
} }
} }
...@@ -1929,8 +1641,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1929,8 +1641,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_Candidate.readExternalData(vals.get(SINGLEREFERENCE_Candidate)); _Candidate.readExternalData(vals.get(SINGLEREFERENCE_Candidate));
_Job.readExternalData(vals.get(SINGLEREFERENCE_Job)); _Job.readExternalData(vals.get(SINGLEREFERENCE_Job));
_AssessmentCriteriaAnswers.readExternalData(vals.get(MULTIPLEREFERENCE_AssessmentCriteriaAnswers)); _AssessmentCriteriaAnswers.readExternalData(vals.get(MULTIPLEREFERENCE_AssessmentCriteriaAnswers));
_CultureCriteriaAnswers.readExternalData(vals.get(MULTIPLEREFERENCE_CultureCriteriaAnswers));
_ProfileAssessmentAnswers.readExternalData(vals.get(MULTIPLEREFERENCE_ProfileAssessmentAnswers));
} }
...@@ -1950,8 +1660,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1950,8 +1660,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
vals.put (SINGLEREFERENCE_Candidate, _Candidate.writeExternalData()); vals.put (SINGLEREFERENCE_Candidate, _Candidate.writeExternalData());
vals.put (SINGLEREFERENCE_Job, _Job.writeExternalData()); vals.put (SINGLEREFERENCE_Job, _Job.writeExternalData());
vals.put (MULTIPLEREFERENCE_AssessmentCriteriaAnswers, _AssessmentCriteriaAnswers.writeExternalData()); vals.put (MULTIPLEREFERENCE_AssessmentCriteriaAnswers, _AssessmentCriteriaAnswers.writeExternalData());
vals.put (MULTIPLEREFERENCE_CultureCriteriaAnswers, _CultureCriteriaAnswers.writeExternalData());
vals.put (MULTIPLEREFERENCE_ProfileAssessmentAnswers, _ProfileAssessmentAnswers.writeExternalData());
} }
...@@ -1985,8 +1693,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1985,8 +1693,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
// Compare multiple assocs // Compare multiple assocs
_AssessmentCriteriaAnswers.compare (otherJobApplication._AssessmentCriteriaAnswers, listener); _AssessmentCriteriaAnswers.compare (otherJobApplication._AssessmentCriteriaAnswers, listener);
_CultureCriteriaAnswers.compare (otherJobApplication._CultureCriteriaAnswers, listener);
_ProfileAssessmentAnswers.compare (otherJobApplication._ProfileAssessmentAnswers, listener);
} }
} }
...@@ -2012,8 +1718,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -2012,8 +1718,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
visitor.visitAssociation (_Candidate); visitor.visitAssociation (_Candidate);
visitor.visitAssociation (_Job); visitor.visitAssociation (_Job);
visitor.visitAssociation (_AssessmentCriteriaAnswers); visitor.visitAssociation (_AssessmentCriteriaAnswers);
visitor.visitAssociation (_CultureCriteriaAnswers);
visitor.visitAssociation (_ProfileAssessmentAnswers);
} }
...@@ -2034,14 +1738,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -2034,14 +1738,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
visitor.visit (_AssessmentCriteriaAnswers); visitor.visit (_AssessmentCriteriaAnswers);
} }
if (scope.includes (_CultureCriteriaAnswers))
{
visitor.visit (_CultureCriteriaAnswers);
}
if (scope.includes (_ProfileAssessmentAnswers))
{
visitor.visit (_ProfileAssessmentAnswers);
}
} }
...@@ -2398,14 +2094,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -2398,14 +2094,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
return getWriteability_AssessmentCriteriaAnswers (); return getWriteability_AssessmentCriteriaAnswers ();
} }
else if (fieldName.equals (MULTIPLEREFERENCE_CultureCriteriaAnswers))
{
return getWriteability_CultureCriteriaAnswers ();
}
else if (fieldName.equals (MULTIPLEREFERENCE_ProfileAssessmentAnswers))
{
return getWriteability_ProfileAssessmentAnswers ();
}
else if (fieldName.equals (SINGLEREFERENCE_Candidate)) else if (fieldName.equals (SINGLEREFERENCE_Candidate))
{ {
return getWriteability_Candidate (); return getWriteability_Candidate ();
...@@ -2685,14 +2373,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -2685,14 +2373,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
return toAssessmentCriteriaAnswers (); return toAssessmentCriteriaAnswers ();
} }
if (name.equals ("CultureCriteriaAnswers"))
{
return toCultureCriteriaAnswers ();
}
if (name.equals ("ProfileAssessmentAnswers"))
{
return toProfileAssessmentAnswers ();
}
if (name.equals ("AppProcessOption")) if (name.equals ("AppProcessOption"))
{ {
return toAppProcessOption (); return toAppProcessOption ();
...@@ -2754,18 +2434,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -2754,18 +2434,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
return AssessmentCriteriaAnswer.REFERENCE_AssessmentCriteriaAnswer.new AssessmentCriteriaAnswerPipeLineFactory<From, AssessmentCriteriaAnswer> (this, new ORMMultiAssocPipe<Me, AssessmentCriteriaAnswer>(MULTIPLEREFERENCE_AssessmentCriteriaAnswers, filter)); return AssessmentCriteriaAnswer.REFERENCE_AssessmentCriteriaAnswer.new AssessmentCriteriaAnswerPipeLineFactory<From, AssessmentCriteriaAnswer> (this, new ORMMultiAssocPipe<Me, AssessmentCriteriaAnswer>(MULTIPLEREFERENCE_AssessmentCriteriaAnswers, filter));
} }
public CultureCriteriaAnswer.CultureCriteriaAnswerPipeLineFactory<From, CultureCriteriaAnswer> toCultureCriteriaAnswers () { return toCultureCriteriaAnswers(Filter.ALL); }
public CultureCriteriaAnswer.CultureCriteriaAnswerPipeLineFactory<From, CultureCriteriaAnswer> toCultureCriteriaAnswers (Filter<CultureCriteriaAnswer> filter)
{
return CultureCriteriaAnswer.REFERENCE_CultureCriteriaAnswer.new CultureCriteriaAnswerPipeLineFactory<From, CultureCriteriaAnswer> (this, new ORMMultiAssocPipe<Me, CultureCriteriaAnswer>(MULTIPLEREFERENCE_CultureCriteriaAnswers, filter));
}
public Answer.AnswerPipeLineFactory<From, Answer> toProfileAssessmentAnswers () { return toProfileAssessmentAnswers(Filter.ALL); }
public Answer.AnswerPipeLineFactory<From, Answer> toProfileAssessmentAnswers (Filter<Answer> filter)
{
return Answer.REFERENCE_Answer.new AnswerPipeLineFactory<From, Answer> (this, new ORMMultiAssocPipe<Me, Answer>(MULTIPLEREFERENCE_ProfileAssessmentAnswers, filter));
}
} }
...@@ -2852,40 +2520,6 @@ class DummyJobApplication extends JobApplication ...@@ -2852,40 +2520,6 @@ class DummyJobApplication extends JobApplication
return new TreeSet(); return new TreeSet();
} }
public int getCultureCriteriaAnswersCount () throws StorageException
{
return 0;
}
public CultureCriteriaAnswer getCultureCriteriaAnswersAt (int index) throws StorageException
{
throw new RuntimeException ("No elements in a dummy object in association CultureCriteriaAnswers");
}
public SortedSet getCultureCriteriaAnswersSet () throws StorageException
{
return new TreeSet();
}
public int getProfileAssessmentAnswersCount () throws StorageException
{
return 0;
}
public Answer getProfileAssessmentAnswersAt (int index) throws StorageException
{
throw new RuntimeException ("No elements in a dummy object in association ProfileAssessmentAnswers");
}
public SortedSet getProfileAssessmentAnswersSet () throws StorageException
{
return new TreeSet();
}
} }
package performa.orm; package performa.orm;
import java.util.Arrays;
import java.util.Calendar; import java.util.Calendar;
import java.util.Collection;
import java.util.Comparator;
import java.util.Date; import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import oneit.objstore.MessageSource; import oneit.objstore.MessageSource;
import oneit.objstore.ObjectTransaction; import oneit.objstore.ObjectTransaction;
import oneit.objstore.rdbms.filters.EqualsFilter; import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.objstore.rdbms.filters.IsNotNullFilter;
import oneit.objstore.utils.ObjstoreUtils;
import oneit.servlets.objstore.MessageSourceDecorator; import oneit.servlets.objstore.MessageSourceDecorator;
import oneit.servlets.process.ORMProcessState; import oneit.servlets.process.ORMProcessState;
import oneit.utils.CollectionUtils; import oneit.utils.CollectionUtils;
import oneit.utils.DateDiff; import oneit.utils.DateDiff;
import oneit.utils.ObjectTransform;
import oneit.utils.StringUtils; import oneit.utils.StringUtils;
import oneit.utils.filter.Filter; import oneit.utils.filter.Filter;
...@@ -78,10 +85,51 @@ public class Candidate extends BaseCandidate ...@@ -78,10 +85,51 @@ public class Candidate extends BaseCandidate
return errorMsg; return errorMsg;
} }
public TestAnalysis getTestAnalysisFor(Level level) public TestAnalysis getTestAnalysisFor(Level level)
{ {
Filter<TestAnalysis> testAnalysisFilter = TestAnalysis.SearchByAll().andLevel(new EqualsFilter(level)); Filter<TestAnalysis> testAnalysisFilter = TestAnalysis.SearchByAll().andLevel(new EqualsFilter(level));
return pipelineCandidate().toTestAnalysises(testAnalysisFilter).val(); return pipelineCandidate().toTestAnalysises(testAnalysisFilter).val();
} }
public boolean cultureCompleted(Job job)
{
int allAnswersCount = getCultureCriteriaAnswersCount();
if(allAnswersCount == job.getCultureCriteriasCount())
{
Filter filter = CultureCriteriaAnswer.SearchByAll().andSelectedQuestion(new IsNotNullFilter<>());
Collection selectedAnswers = pipelineCandidate().toCultureCriteriaAnswers(filter).vals();
return (selectedAnswers.size() == allAnswersCount);
}
return false;
}
public boolean assessmentCompleted(Job job) //role
{
int allAnswersCount = job.getAllLeftQuestions(Arrays.asList(Question.searchAll(getTransaction()))).size();
if(allAnswersCount > 0)
{
Filter filter = Answer.SearchByAll().andAnswerNo(new IsNotNullFilter<>());
Collection selectedAnswers = pipelineCandidate().toProfileAssessmentAnswers(filter).vals();
return (selectedAnswers.size() >= allAnswersCount);
}
return false;
}
public List<CultureCriteriaAnswer> getSortedCultureCriteriaAnswers()
{
return ObjstoreUtils.sort(getCultureCriteriaAnswersSet(),
new ObjectTransform[] {CultureCriteriaAnswer.pipesCultureCriteriaAnswer().toObjectID()},
new Comparator[]{CollectionUtils.DEFAULT_COMPARATOR});
}
} }
\ No newline at end of file
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
<MULTIPLEREFERENCE name="TestAnalysises" type="TestAnalysis" backreferenceName="Candidate" /> <MULTIPLEREFERENCE name="TestAnalysises" type="TestAnalysis" backreferenceName="Candidate" />
<MULTIPLEREFERENCE name="JobApplications" type="JobApplication" backreferenceName="Candidate" /> <MULTIPLEREFERENCE name="JobApplications" type="JobApplication" backreferenceName="Candidate" />
<MULTIPLEREFERENCE name="CultureCriteriaAnswers" type="CultureCriteriaAnswer" backreferenceName="Candidate" />
<MULTIPLEREFERENCE name="ProfileAssessmentAnswers" type="Answer" backreferenceName="Candidate" />
<TABLE name="oneit_sec_user_extension" tablePrefix="object" polymorphic="TRUE"> <TABLE name="oneit_sec_user_extension" tablePrefix="object" polymorphic="TRUE">
......
...@@ -5,8 +5,6 @@ ...@@ -5,8 +5,6 @@
<BUSINESSCLASS name="CultureCriteria" package="performa.orm"> <BUSINESSCLASS name="CultureCriteria" package="performa.orm">
<IMPORT value="performa.orm.types.*"/> <IMPORT value="performa.orm.types.*"/>
<MULTIPLEREFERENCE name="Answers" type="CultureCriteriaAnswer" backreferenceName="CultureCriteria"/>
<TABLE name="tl_culture_criteria" tablePrefix="object" polymorphic="FALSE"> <TABLE name="tl_culture_criteria" tablePrefix="object" polymorphic="FALSE">
<ATTRIB name="Importance" type="Importance" dbcol="importance" attribHelper="EnumeratedAttributeHelper" mandatory="true" defaultValue="Importance.DESIRABLE"/> <ATTRIB name="Importance" type="Importance" dbcol="importance" attribHelper="EnumeratedAttributeHelper" mandatory="true" defaultValue="Importance.DESIRABLE"/>
......
package performa.orm; package performa.orm;
import java.util.SortedSet;
import oneit.utils.CollectionUtils;
public class CultureCriteriaAnswer extends BaseCultureCriteriaAnswer public class CultureCriteriaAnswer extends BaseCultureCriteriaAnswer
{ {
...@@ -10,4 +13,28 @@ public class CultureCriteriaAnswer extends BaseCultureCriteriaAnswer ...@@ -10,4 +13,28 @@ public class CultureCriteriaAnswer extends BaseCultureCriteriaAnswer
{ {
// Do not add any code to this, always put it in initialiseNewObject // Do not add any code to this, always put it in initialiseNewObject
} }
//to get relevant culture criteria by job
public CultureCriteria getCriteriaJob(Job job)
{
CultureCriteria criteria = null;
if(job!=null)
{
SortedSet<CultureCriteria> cultureCriteriasSet = job.getCultureCriteriasSet();
for(CultureCriteria cc: cultureCriteriasSet)
{
if(CollectionUtils.equals(cc.getCultureElement(), getCultureElement()))
{
criteria = cc;
break;
}
}
}
return criteria;
}
} }
\ No newline at end of file
...@@ -6,9 +6,9 @@ ...@@ -6,9 +6,9 @@
<TABLE name="tl_culture_criteria_answer" tablePrefix="object" polymorphic="FALSE"> <TABLE name="tl_culture_criteria_answer" tablePrefix="object" polymorphic="FALSE">
<SINGLEREFERENCE name="CultureCriteria" type="CultureCriteria" dbcol="culture_criteria_id" mandatory="true" backreferenceName="Answers"/> <SINGLEREFERENCE name="CultureElement" type="CultureElement" dbcol="culture_element_id" mandatory="true"/>
<SINGLEREFERENCE name="SelectedQuestion" type="CultureElementQuestion" dbcol="selected_question_id" mandatory="true" /> <SINGLEREFERENCE name="SelectedQuestion" type="CultureElementQuestion" dbcol="selected_question_id" mandatory="true" />
<SINGLEREFERENCE name="JobApplication" type="JobApplication" dbcol="job_application_id" mandatory="true" backreferenceName="CultureCriteriaAnswers"/> <SINGLEREFERENCE name="Candidate" type="Candidate" dbcol="candidate_id" mandatory="true" backreferenceName="CultureCriteriaAnswers"/>
</TABLE> </TABLE>
......
...@@ -38,7 +38,7 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -38,7 +38,7 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr
} }
private String SELECT_COLUMNS = "{PREFIX}tl_culture_criteria_answer.object_id as id, {PREFIX}tl_culture_criteria_answer.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_culture_criteria_answer.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_culture_criteria_answer.culture_criteria_id, {PREFIX}tl_culture_criteria_answer.selected_question_id, {PREFIX}tl_culture_criteria_answer.job_application_id, 1 AS commasafe "; private String SELECT_COLUMNS = "{PREFIX}tl_culture_criteria_answer.object_id as id, {PREFIX}tl_culture_criteria_answer.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_culture_criteria_answer.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_culture_criteria_answer.culture_element_id, {PREFIX}tl_culture_criteria_answer.selected_question_id, {PREFIX}tl_culture_criteria_answer.candidate_id, 1 AS commasafe ";
private String SELECT_JOINS = ""; private String SELECT_JOINS = "";
public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
...@@ -89,9 +89,9 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -89,9 +89,9 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr
// Check for persistent sets already prefetched // Check for persistent sets already prefetched
if (false || !tl_culture_criteria_answerPSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) || if (false || !tl_culture_criteria_answerPSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) ||
!tl_culture_criteria_answerPSet.containsAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_CultureCriteria)|| !tl_culture_criteria_answerPSet.containsAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_CultureElement)||
!tl_culture_criteria_answerPSet.containsAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion)|| !tl_culture_criteria_answerPSet.containsAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion)||
!tl_culture_criteria_answerPSet.containsAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_JobApplication)) !tl_culture_criteria_answerPSet.containsAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_Candidate))
{ {
// We will need to retrieve it // We will need to retrieve it
idsToFetch.add (id.longValue()); idsToFetch.add (id.longValue());
...@@ -137,21 +137,11 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -137,21 +137,11 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr
{ {
throw new RuntimeException (); throw new RuntimeException ();
} }
else if (refName.equals (CultureCriteriaAnswer.SINGLEREFERENCE_CultureCriteria)) else if (refName.equals (CultureCriteriaAnswer.SINGLEREFERENCE_Candidate))
{ {
String query = "SELECT " + SELECT_COLUMNS + String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_culture_criteria_answer " + "FROM {PREFIX}tl_culture_criteria_answer " +
"WHERE " + SELECT_JOINS + "culture_criteria_id = ?"; "WHERE " + SELECT_JOINS + "candidate_id = ?";
BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, new Object[] { _objectID.longID () }, null, false);
return results;
}
else if (refName.equals (CultureCriteriaAnswer.SINGLEREFERENCE_JobApplication))
{
String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_culture_criteria_answer " +
"WHERE " + SELECT_JOINS + "job_application_id = ?";
BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, new Object[] { _objectID.longID () }, null, false); BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, new Object[] { _objectID.longID () }, null, false);
...@@ -181,10 +171,10 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -181,10 +171,10 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr
{ {
int rowsUpdated = executeStatement (sqlMgr, int rowsUpdated = executeStatement (sqlMgr,
"UPDATE {PREFIX}tl_culture_criteria_answer " + "UPDATE {PREFIX}tl_culture_criteria_answer " +
"SET culture_criteria_id = ? , selected_question_id = ? , job_application_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " + "SET culture_element_id = ? , selected_question_id = ? , candidate_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"WHERE tl_culture_criteria_answer.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ", "WHERE tl_culture_criteria_answer.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ",
CollectionUtils.listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_CultureCriteria)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_JobApplication)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray()); CollectionUtils.listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_CultureElement)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_Candidate)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
if (rowsUpdated != 1) if (rowsUpdated != 1)
{ {
...@@ -441,9 +431,9 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -441,9 +431,9 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr
tl_culture_criteria_answerPSet.setAttrib(BaseBusinessClass.FIELD_ObjectCreated, r.getTimestamp ("CREATED_DATE")); tl_culture_criteria_answerPSet.setAttrib(BaseBusinessClass.FIELD_ObjectCreated, r.getTimestamp ("CREATED_DATE"));
tl_culture_criteria_answerPSet.setAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_CultureCriteria, r.getObject ("culture_criteria_id")); tl_culture_criteria_answerPSet.setAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_CultureElement, r.getObject ("culture_element_id"));
tl_culture_criteria_answerPSet.setAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion, r.getObject ("selected_question_id")); tl_culture_criteria_answerPSet.setAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion, r.getObject ("selected_question_id"));
tl_culture_criteria_answerPSet.setAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_JobApplication, r.getObject ("job_application_id")); tl_culture_criteria_answerPSet.setAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_Candidate, r.getObject ("candidate_id"));
} }
...@@ -460,10 +450,10 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -460,10 +450,10 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr
{ {
executeStatement (sqlMgr, executeStatement (sqlMgr,
"INSERT INTO {PREFIX}tl_culture_criteria_answer " + "INSERT INTO {PREFIX}tl_culture_criteria_answer " +
" ( culture_criteria_id, selected_question_id, job_application_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " + " ( culture_element_id, selected_question_id, candidate_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " +
"VALUES " + "VALUES " +
" ( ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")", " ( ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")",
CollectionUtils .listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_CultureCriteria)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_JobApplication)))) .listEntry (objectID.longID ()).toList().toArray()); CollectionUtils .listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_CultureElement)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_Candidate)))) .listEntry (objectID.longID ()).toList().toArray());
tl_culture_criteria_answerPSet.setStatus (PersistentSetStatus.PROCESSED); tl_culture_criteria_answerPSet.setStatus (PersistentSetStatus.PROCESSED);
} }
......
...@@ -6,9 +6,6 @@ import oneit.objstore.StorageException; ...@@ -6,9 +6,6 @@ import oneit.objstore.StorageException;
import oneit.objstore.rdbms.filters.EqualsFilter; import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.objstore.rdbms.filters.IsNotNullFilter; import oneit.objstore.rdbms.filters.IsNotNullFilter;
import oneit.objstore.rdbms.filters.NotEqualsFilter; import oneit.objstore.rdbms.filters.NotEqualsFilter;
import oneit.objstore.utils.ObjstoreUtils;
import oneit.utils.CollectionUtils;
import oneit.utils.ObjectTransform;
import oneit.utils.filter.CollectionFilter; import oneit.utils.filter.CollectionFilter;
import oneit.utils.filter.Filter; import oneit.utils.filter.Filter;
import oneit.utils.math.NullArith; import oneit.utils.math.NullArith;
...@@ -41,21 +38,6 @@ public class JobApplication extends BaseJobApplication ...@@ -41,21 +38,6 @@ public class JobApplication extends BaseJobApplication
} }
// private void initACAnswers()
// {
// if(isIncludeAssessmentCriteria())
// {
// for(AssessmentCriteria assessmentCriteria : getJob().getAssessmentCriteriasSet())
// {
// AssessmentCriteriaAnswer answer = AssessmentCriteriaAnswer.createAssessmentCriteriaAnswer(getTransaction());
//
// addToAssessmentCriteriaAnswers(answer);
// assessmentCriteria.addToAnswers(answer);
// }
// }
// }
public boolean createAssessmentCriteriaObjects() throws FieldException public boolean createAssessmentCriteriaObjects() throws FieldException
{ {
boolean safeRedirect = false; boolean safeRedirect = false;
...@@ -93,9 +75,10 @@ public class JobApplication extends BaseJobApplication ...@@ -93,9 +75,10 @@ public class JobApplication extends BaseJobApplication
public boolean createCultureCriteriaObjects() throws FieldException public boolean createCultureCriteriaObjects() throws FieldException
{ {
boolean safeRedirect = false; boolean safeRedirect = false;
Candidate candidate = getCandidate();
//to skip culture test //to skip culture test
if(getAlreadyCompletedApplicationForCulture()!=null) if(cultureCompleted())
{ {
return safeRedirect; return safeRedirect;
} }
...@@ -104,9 +87,9 @@ public class JobApplication extends BaseJobApplication ...@@ -104,9 +87,9 @@ public class JobApplication extends BaseJobApplication
{ {
boolean available = false; boolean available = false;
for(CultureCriteriaAnswer answer : getCultureCriteriaAnswersSet()) for(CultureCriteriaAnswer answer : getCandidate().getCultureCriteriaAnswersSet())
{ {
if(cultureCriteria.equals(answer.getCultureCriteria())) if(cultureCriteria.getCultureElement().equals(answer.getCultureElement()))
{ {
available = true; available = true;
break; break;
...@@ -117,8 +100,9 @@ public class JobApplication extends BaseJobApplication ...@@ -117,8 +100,9 @@ public class JobApplication extends BaseJobApplication
{ {
CultureCriteriaAnswer answer = CultureCriteriaAnswer.createCultureCriteriaAnswer(getTransaction()); CultureCriteriaAnswer answer = CultureCriteriaAnswer.createCultureCriteriaAnswer(getTransaction());
addToCultureCriteriaAnswers(answer); candidate.addToCultureCriteriaAnswers(answer);
cultureCriteria.addToAnswers(answer); answer.setCultureElement(cultureCriteria.getCultureElement());
safeRedirect = true; safeRedirect = true;
} }
} }
...@@ -126,17 +110,12 @@ public class JobApplication extends BaseJobApplication ...@@ -126,17 +110,12 @@ public class JobApplication extends BaseJobApplication
return safeRedirect; return safeRedirect;
} }
public List<CultureCriteriaAnswer> getSortedCultureCriteriaAnswers()
{
return ObjstoreUtils.sort(getCultureCriteriaAnswersSet(),
new ObjectTransform[] {CultureCriteriaAnswer.pipesCultureCriteriaAnswer().toObjectID()},
new Comparator[]{CollectionUtils.DEFAULT_COMPARATOR});
}
public boolean initAssessmentAnswers(List<Question> questions) throws StorageException, FieldException public boolean initAssessmentAnswers(List<Question> questions) throws StorageException, FieldException
{ {
boolean redirect = false; boolean redirect = false;
List<Question> allQuestions = new ArrayList<>(); List<Question> allQuestions = new ArrayList<>();
Candidate candidate = getCandidate();
for(Question question : questions) for(Question question : questions)
{ {
...@@ -152,7 +131,7 @@ public class JobApplication extends BaseJobApplication ...@@ -152,7 +131,7 @@ public class JobApplication extends BaseJobApplication
{ {
boolean available = false; boolean available = false;
for(Answer answer : getProfileAssessmentAnswersSet()) for(Answer answer : candidate.getProfileAssessmentAnswersSet())
{ {
if(question.equals(answer.getQuestion())) if(question.equals(answer.getQuestion()))
{ {
...@@ -165,7 +144,7 @@ public class JobApplication extends BaseJobApplication ...@@ -165,7 +144,7 @@ public class JobApplication extends BaseJobApplication
{ {
Answer answer = Answer.createAnswer(getTransaction()); Answer answer = Answer.createAnswer(getTransaction());
addToProfileAssessmentAnswers(answer); candidate.addToProfileAssessmentAnswers(answer);
answer.setQuestion(question); answer.setQuestion(question);
redirect = true; redirect = true;
} }
...@@ -174,11 +153,12 @@ public class JobApplication extends BaseJobApplication ...@@ -174,11 +153,12 @@ public class JobApplication extends BaseJobApplication
return redirect; return redirect;
} }
public Answer getAnswerForQuestion(Question question) throws FieldException public Answer getAnswerForQuestion(Question question) throws FieldException
{ {
Filter filter = Answer.SearchByAll().andQuestion(new EqualsFilter<>(question)); Filter filter = Answer.SearchByAll().andQuestion(new EqualsFilter<>(question));
return CollectionFilter.getFirstMatch(getProfileAssessmentAnswersSet(), filter); return CollectionFilter.getFirstMatch(getCandidate().getProfileAssessmentAnswersSet(), filter);
} }
...@@ -213,45 +193,26 @@ public class JobApplication extends BaseJobApplication ...@@ -213,45 +193,26 @@ public class JobApplication extends BaseJobApplication
public boolean cultureCompleted() public boolean cultureCompleted()
{ {
int allAnswersCount = getCultureCriteriaAnswersCount(); return getCandidate().cultureCompleted(getJob());
if(allAnswersCount == getJob().getCultureCriteriasCount())
{
Filter filter = CultureCriteriaAnswer.SearchByAll().andSelectedQuestion(new IsNotNullFilter<>());
Collection selectedAnswers = pipelineJobApplication().toCultureCriteriaAnswers(filter).vals();
return (selectedAnswers.size() == allAnswersCount);
}
return false;
} }
public boolean assessmentCompleted() //role public boolean assessmentCompleted() //role
{ {
int allAnswersCount = getJob().getAllLeftQuestions(Arrays.asList(Question.searchAll(getTransaction()))).size(); return getCandidate().assessmentCompleted(getJob());
if(allAnswersCount > 0)
{
Filter filter = Answer.SearchByAll().andAnswerNo(new IsNotNullFilter<>());
Collection selectedAnswers = pipelineJobApplication().toProfileAssessmentAnswers(filter).vals();
return (selectedAnswers.size() >= allAnswersCount);
}
return false;
} }
public int getActualQuestionNumber() public int getActualQuestionNumber()
{ {
return pipelineJobApplication().toProfileAssessmentAnswers().uniqueVals().size() + 1; return getCandidate().pipelineCandidate().toProfileAssessmentAnswers().uniqueVals().size() + 1;
} }
public int getQuestionNumber() public int getQuestionNumber()
{ {
return pipelineJobApplication().toProfileAssessmentAnswers().uniqueVals().size() - pipelineJobApplication().toProfileAssessmentAnswers().toQuestion().toRightQuestion().uniqueVals().size(); return getCandidate().pipelineCandidate().toProfileAssessmentAnswers().uniqueVals().size()
- getCandidate().pipelineCandidate().toProfileAssessmentAnswers().toQuestion().toRightQuestion().uniqueVals().size();
} }
...@@ -260,6 +221,7 @@ public class JobApplication extends BaseJobApplication ...@@ -260,6 +221,7 @@ public class JobApplication extends BaseJobApplication
return getJob() != null && isTrue(getJob().getIncludeAssessmentCriteria()); return getJob() != null && isTrue(getJob().getIncludeAssessmentCriteria());
} }
// TODO: Fix these hard coded values // TODO: Fix these hard coded values
@Override @Override
public Integer getOverallSuitability() public Integer getOverallSuitability()
...@@ -276,7 +238,7 @@ public class JobApplication extends BaseJobApplication ...@@ -276,7 +238,7 @@ public class JobApplication extends BaseJobApplication
public int getCulturePercentage() public int getCulturePercentage()
{ {
return AnalysisEngine.getCultureFit(getAlreadyCompletedApplicationForCulture()!=null ? getAlreadyCompletedApplicationForCulture().getCultureCriteriaAnswersSet() : getCultureCriteriaAnswersSet()).get(null).intValue(); return AnalysisEngine.getCultureFit(getCandidate().getCultureCriteriaAnswersSet(), getJob()).get(null).intValue();
} }
...@@ -329,48 +291,12 @@ public class JobApplication extends BaseJobApplication ...@@ -329,48 +291,12 @@ public class JobApplication extends BaseJobApplication
} }
public JobApplication getAlreadyCompletedApplicationForCulture()
{
for(JobApplication application: getAllSubmittedApplicationsByCandidate())
{
if(CollectionUtils.equals(application, this))
{
continue;
}
if(application.cultureCompleted())
{
return application;
}
}
return null;
}
public JobApplication getAlreadyCompletedApplicationForRole()
{
for(JobApplication application: getAllSubmittedApplicationsByCandidate())
{
if(CollectionUtils.equals(application, this))
{
continue;
}
if(application.assessmentCompleted())
{
return application;
}
}
return null;
}
public Set<Answer> getCompletedAnswers() public Set<Answer> getCompletedAnswers()
{ {
return getAlreadyCompletedApplicationForRole() != null ? getAlreadyCompletedApplicationForRole().getProfileAssessmentAnswersSet() : getProfileAssessmentAnswersSet(); return getCandidate().getProfileAssessmentAnswersSet();
} }
public Set<FactorClass> getSortedFactorClasses() public Set<FactorClass> getSortedFactorClasses()
{ {
Set<FactorClass> factorClasses = new LinkedHashSet<>(); Set<FactorClass> factorClasses = new LinkedHashSet<>();
...@@ -405,7 +331,7 @@ public class JobApplication extends BaseJobApplication ...@@ -405,7 +331,7 @@ public class JobApplication extends BaseJobApplication
} }
} }
if(!cultureCompleted() && getAlreadyCompletedApplicationForCulture()==null) if(!cultureCompleted())
{ {
remainingTime += 7; remainingTime += 7;
} }
...@@ -413,7 +339,7 @@ public class JobApplication extends BaseJobApplication ...@@ -413,7 +339,7 @@ public class JobApplication extends BaseJobApplication
//ROLE //ROLE
remainingTime += getRoleTestRemainingTime() ; remainingTime += getRoleTestRemainingTime() ;
if(!assessmentCompleted() && getAlreadyCompletedApplicationForRole()==null) if(!assessmentCompleted())
{ {
remainingTime += 6; remainingTime += 6;
} }
...@@ -427,7 +353,7 @@ public class JobApplication extends BaseJobApplication ...@@ -427,7 +353,7 @@ public class JobApplication extends BaseJobApplication
{ {
int remainingTime = 20; int remainingTime = 20;
if(assessmentCompleted() || getAlreadyCompletedApplicationForRole()!=null) if(assessmentCompleted())
{ {
remainingTime -= 20; remainingTime -= 20;
} }
...@@ -438,7 +364,7 @@ public class JobApplication extends BaseJobApplication ...@@ -438,7 +364,7 @@ public class JobApplication extends BaseJobApplication
if(allAnswersCount > 0) if(allAnswersCount > 0)
{ {
Filter filter = Answer.SearchByAll().andAnswerNo(new IsNotNullFilter<>()); Filter filter = Answer.SearchByAll().andAnswerNo(new IsNotNullFilter<>());
Collection selectedAnswers = pipelineJobApplication().toProfileAssessmentAnswers(filter).vals(); Collection selectedAnswers = getCandidate().pipelineCandidate().toProfileAssessmentAnswers(filter).vals();
if(selectedAnswers!=null && selectedAnswers.size()>0) if(selectedAnswers!=null && selectedAnswers.size()>0)
{ {
......
...@@ -6,8 +6,6 @@ ...@@ -6,8 +6,6 @@
<IMPORT value="performa.orm.types.*"/> <IMPORT value="performa.orm.types.*"/>
<MULTIPLEREFERENCE name="AssessmentCriteriaAnswers" type="AssessmentCriteriaAnswer" backreferenceName="JobApplication" /> <MULTIPLEREFERENCE name="AssessmentCriteriaAnswers" type="AssessmentCriteriaAnswer" backreferenceName="JobApplication" />
<MULTIPLEREFERENCE name="CultureCriteriaAnswers" type="CultureCriteriaAnswer" backreferenceName="JobApplication" />
<MULTIPLEREFERENCE name="ProfileAssessmentAnswers" type="Answer" backreferenceName="JobApplication" />
<TRANSIENT name="AppProcessOption" type="AppProcessOption" attribHelper="EnumeratedAttributeHelper"/> <TRANSIENT name="AppProcessOption" type="AppProcessOption" attribHelper="EnumeratedAttributeHelper"/>
<TRANSIENT name="OverallSuitability" type="Integer"/> <TRANSIENT name="OverallSuitability" type="Integer"/>
......
...@@ -23,7 +23,7 @@ public class TestInput extends BaseTestInput ...@@ -23,7 +23,7 @@ public class TestInput extends BaseTestInput
Set<Factor> levelFactors = pipelineTestInput().toLevel().toFactors().toFactor().uniqueVals(); Set<Factor> levelFactors = pipelineTestInput().toLevel().toFactors().toFactor().uniqueVals();
Filter<FactorQuestionLink> factorFilter = FactorQuestionLink.SearchByAll().andFactor(new InFilter(levelFactors)); Filter<FactorQuestionLink> factorFilter = FactorQuestionLink.SearchByAll().andFactor(new InFilter(levelFactors));
return ObjstoreUtils.sort(pipelineTestInput().toCandidates().toJobApplications().toProfileAssessmentAnswers().toQuestion().toFactors(factorFilter).toFactor().uniqueVals(), return ObjstoreUtils.sort(pipelineTestInput().toCandidates().toProfileAssessmentAnswers().toQuestion().toFactors(factorFilter).toFactor().uniqueVals(),
new ObjectTransform[]{Factor.pipesFactor().toDescription()}, new ObjectTransform[]{Factor.pipesFactor().toDescription()},
new Comparator[]{CollectionUtils.DEFAULT_COMPARATOR}); new Comparator[]{CollectionUtils.DEFAULT_COMPARATOR});
} }
......
...@@ -230,13 +230,13 @@ public class AnalysisEngine ...@@ -230,13 +230,13 @@ public class AnalysisEngine
LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1, "AnalysisEngine --> analyseAnswers completed for Candidate ", candidate, " Level:", level); LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1, "AnalysisEngine --> analyseAnswers completed for Candidate ", candidate, " Level:", level);
} }
public static Map<CultureClass, Long> getCultureFit(Set<CultureCriteriaAnswer> cultureCriteriaAnswers) public static Map<CultureClass, Long> getCultureFit(Set<CultureCriteriaAnswer> cultureCriteriaAnswers, Job job)
{ {
LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1, "AnalysisEngine --> getCultureFit called"); LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1, "AnalysisEngine --> getCultureFit called");
//Preloading data //Preloading data
CultureCriteriaAnswer.pipesCultureCriteriaAnswer(cultureCriteriaAnswers).toSelectedQuestion().toNarratives().toCultureElementRating().uniqueVals(); CultureCriteriaAnswer.pipesCultureCriteriaAnswer(cultureCriteriaAnswers).toSelectedQuestion().toNarratives().toCultureElementRating().uniqueVals();
CultureCriteriaAnswer.pipesCultureCriteriaAnswer(cultureCriteriaAnswers).toCultureCriteria().toCultureElementRating().toCultureElement().uniqueVals(); CultureCriteriaAnswer.pipesCultureCriteriaAnswer(cultureCriteriaAnswers).toCultureElement().uniqueVals();
Map<CultureClass, Integer> scoreMap = new HashMap(); Map<CultureClass, Integer> scoreMap = new HashMap();
Map<CultureClass, Integer> maxScoreMap = new HashMap(); Map<CultureClass, Integer> maxScoreMap = new HashMap();
...@@ -247,9 +247,10 @@ public class AnalysisEngine ...@@ -247,9 +247,10 @@ public class AnalysisEngine
maxScoreMap.put(cultureClass, 0); maxScoreMap.put(cultureClass, 0);
} }
for(CultureCriteriaAnswer answer : cultureCriteriaAnswers) for(CultureCriteriaAnswer answer : cultureCriteriaAnswers)
{ {
CultureCriteria criteria = answer.getCultureCriteria(); CultureCriteria criteria = answer.getCriteriaJob(job);
if(criteria != null && criteria.getImportance() != null && criteria.getImportance() != Importance.NOT_APPLICABLE) if(criteria != null && criteria.getImportance() != null && criteria.getImportance() != Importance.NOT_APPLICABLE)
{ {
......
...@@ -148,8 +148,7 @@ ...@@ -148,8 +148,7 @@
</div> </div>
<div class="tab-pane" id="2a"> <div class="tab-pane" id="2a">
<% <%
JobApplication completeaApp = jobApplication.getAlreadyCompletedApplicationForCulture(); Map<CultureClass, Long> cultureFitData = AnalysisEngine.getCultureFit(candidate.getCultureCriteriaAnswersSet(), job);
Map<CultureClass, Long> cultureFitData = AnalysisEngine.getCultureFit(completeaApp!=null ? completeaApp.getCultureCriteriaAnswersSet() : jobApplication.getCultureCriteriaAnswersSet());
for(CultureClass cClass: cultureFitData.keySet()) for(CultureClass cClass: cultureFitData.keySet())
{ {
......
...@@ -124,6 +124,7 @@ ...@@ -124,6 +124,7 @@
for(JobApplication jobApplication : sortedApplications) for(JobApplication jobApplication : sortedApplications)
{ {
Candidate candidate = jobApplication.getCandidate();
String appID = "app-id-" + jobApplication.getID().toString(); String appID = "app-id-" + jobApplication.getID().toString();
%> %>
<div class="<%= "appl-c-box " + (i == 0 ? " cb-one" : "")%> "> <div class="<%= "appl-c-box " + (i == 0 ? " cb-one" : "")%> ">
...@@ -137,7 +138,7 @@ ...@@ -137,7 +138,7 @@
<div class="checkbox-list"> <div class="checkbox-list">
<input type="checkbox" name="IsSelected" value="<%= jobApplication.getObjectID().toString() %>" id="<%= appID %>" class="applicant" > <input type="checkbox" name="IsSelected" value="<%= jobApplication.getObjectID().toString() %>" id="<%= appID %>" class="applicant" >
<label for="<%= appID %>"> <label for="<%= appID %>">
<oneit:toString value="<%= jobApplication.getCandidate() %>" mode="EscapeHTML" /> <oneit:toString value="<%= candidate %>" mode="EscapeHTML" />
</label> </label>
</div> </div>
</div> </div>
...@@ -185,8 +186,7 @@ ...@@ -185,8 +186,7 @@
</div> </div>
<div class="detail-box"> <div class="detail-box">
<% <%
JobApplication completeaApp = jobApplication.getAlreadyCompletedApplicationForCulture(); Map<CultureClass, Long> cultureFitData = AnalysisEngine.getCultureFit(candidate.getCultureCriteriaAnswersSet(), job);
Map<CultureClass, Long> cultureFitData = AnalysisEngine.getCultureFit(completeaApp!=null ? completeaApp.getCultureCriteriaAnswersSet() : jobApplication.getCultureCriteriaAnswersSet());
for(CultureClass cClass: cultureFitData.keySet()) for(CultureClass cClass: cultureFitData.keySet())
{ {
......
...@@ -27,25 +27,25 @@ ...@@ -27,25 +27,25 @@
jobApplication = JobApplication.createNewApplication(candidate, job); jobApplication = JobApplication.createNewApplication(candidate, job);
} }
//to store already completed culture or role data // //to store already completed culture or role data
Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture"); // Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture");
Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole"); // Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
//
if(alreadyCompletedCulture==null) // if(alreadyCompletedCulture==null)
{ // {
alreadyCompletedCulture = jobApplication.getAlreadyCompletedApplicationForCulture()!=null; // alreadyCompletedCulture = jobApplication.getAlreadyCompletedApplicationForCulture()!=null;
process.setAttribute("AlreadyCompletedCulture", alreadyCompletedCulture); // process.setAttribute("AlreadyCompletedCulture", alreadyCompletedCulture);
} // }
//
if(alreadyCompletedRole==null) // if(alreadyCompletedRole==null)
{ // {
alreadyCompletedRole = jobApplication.getAlreadyCompletedApplicationForRole()!=null; // alreadyCompletedRole = jobApplication.getAlreadyCompletedApplicationForRole()!=null;
process.setAttribute("AlreadyCompletedRole", alreadyCompletedRole); // process.setAttribute("AlreadyCompletedRole", alreadyCompletedRole);
} // }
Boolean isSelectionComplete = jobApplication.selectionCompleted(); Boolean isSelectionComplete = jobApplication.selectionCompleted();
Boolean isCultureComplete = jobApplication.cultureCompleted() || alreadyCompletedCulture; Boolean isCultureComplete = jobApplication.cultureCompleted();
Boolean isAssesmentComplete = jobApplication.assessmentCompleted() || alreadyCompletedRole; Boolean isAssesmentComplete = jobApplication.assessmentCompleted();
if(!jobApplication.isIncludeAssessmentCriteria()) if(!jobApplication.isIncludeAssessmentCriteria())
......
...@@ -12,11 +12,11 @@ ...@@ -12,11 +12,11 @@
String thirdPage = WebUtils.getSamePageInRenderMode(request, "JobMatchAssessment"); String thirdPage = WebUtils.getSamePageInRenderMode(request, "JobMatchAssessment");
boolean includeAssessment = jobApplication.isIncludeAssessmentCriteria(); boolean includeAssessment = jobApplication.isIncludeAssessmentCriteria();
Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture"); // Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture");
Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole"); // Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
Boolean isSelectionComplete = jobApplication.selectionCompleted(); //REQ Boolean isSelectionComplete = jobApplication.selectionCompleted(); //REQ
Boolean isCultureComplete = jobApplication.cultureCompleted() || alreadyCompletedCulture; Boolean isCultureComplete = jobApplication.cultureCompleted();
Boolean isAssesmentComplete = jobApplication.assessmentCompleted() || alreadyCompletedRole; Boolean isAssesmentComplete = jobApplication.assessmentCompleted();
%> %>
<oneit:dynIncluded> <oneit:dynIncluded>
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
String nextPage = WebUtils.getSamePageInRenderMode(request, "SubmitApplication"); String nextPage = WebUtils.getSamePageInRenderMode(request, "SubmitApplication");
JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication"); JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication");
Job job = jobApplication.getJob(); Job job = jobApplication.getJob();
Candidate candidate = jobApplication.getCandidate();
int questionNumber = process.getAttribute("QuestionNumber")!= null ? (int) process.getAttribute("QuestionNumber") : jobApplication.getQuestionNumber(); int questionNumber = process.getAttribute("QuestionNumber")!= null ? (int) process.getAttribute("QuestionNumber") : jobApplication.getQuestionNumber();
int actualNumber = process.getAttribute("ActualNumber")!= null ? (int) process.getAttribute("ActualNumber") : jobApplication.getActualQuestionNumber(); int actualNumber = process.getAttribute("ActualNumber")!= null ? (int) process.getAttribute("ActualNumber") : jobApplication.getActualQuestionNumber();
List<Question> totalQuestions = (List<Question>) process.getAttribute("TotalQuestions"); List<Question> totalQuestions = (List<Question>) process.getAttribute("TotalQuestions");
......
...@@ -12,10 +12,10 @@ ...@@ -12,10 +12,10 @@
String exitPage = WebUtils.getArticleLink(request, objTran, WebUtils.APPLY_JOB, "Page"); String exitPage = WebUtils.getArticleLink(request, objTran, WebUtils.APPLY_JOB, "Page");
exitPage = exitPage + "&id=" + job.getID() + "&key=" + job.getRandomKey(); exitPage = exitPage + "&id=" + job.getID() + "&key=" + job.getRandomKey();
Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture"); // Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture");
Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole"); // Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
Boolean isCultureComplete = jobApplication.cultureCompleted() || alreadyCompletedCulture; Boolean isCultureComplete = jobApplication.cultureCompleted();
Boolean isAssesmentComplete = jobApplication.assessmentCompleted() || alreadyCompletedRole; Boolean isAssesmentComplete = jobApplication.assessmentCompleted();
boolean toRedirect = jobApplication.createAssessmentCriteriaObjects(); boolean toRedirect = jobApplication.createAssessmentCriteriaObjects();
if(isCultureComplete && isAssesmentComplete) if(isCultureComplete && isAssesmentComplete)
......
...@@ -10,11 +10,12 @@ ...@@ -10,11 +10,12 @@
String nextPage = WebUtils.getSamePageInRenderMode(request, "JobMatchAssessment"); String nextPage = WebUtils.getSamePageInRenderMode(request, "JobMatchAssessment");
JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication"); JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication");
Job job = jobApplication.getJob(); Job job = jobApplication.getJob();
int cultureQuestionNo = process.getAttribute("CultureQuestionNo")!= null ? (int) process.getAttribute("CultureQuestionNo") : jobApplication.getCultureCriteriaAnswersCount(); Candidate candidate = jobApplication.getCandidate();
int cultureQuestionNo = process.getAttribute("CultureQuestionNo")!= null ? (int) process.getAttribute("CultureQuestionNo") : candidate.getCultureCriteriaAnswersCount();
String exitPage = WebUtils.getArticleLink(request, objTran, WebUtils.APPLY_JOB, "Page") + "&id=" + job.getID() + "&key=" + job.getRandomKey(); String exitPage = WebUtils.getArticleLink(request, objTran, WebUtils.APPLY_JOB, "Page") + "&id=" + job.getID() + "&key=" + job.getRandomKey();
boolean toRedirect = jobApplication.createCultureCriteriaObjects(); boolean toRedirect = jobApplication.createCultureCriteriaObjects();
Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole"); // Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
Boolean isAssesmentComplete = jobApplication.assessmentCompleted() || alreadyCompletedRole; Boolean isAssesmentComplete = jobApplication.assessmentCompleted();
if(isAssesmentComplete) if(isAssesmentComplete)
{ {
...@@ -28,7 +29,7 @@ ...@@ -28,7 +29,7 @@
%><%@include file="/saferedirect.jsp" %><% %><%@include file="/saferedirect.jsp" %><%
} }
int total = jobApplication.getCultureCriteriaAnswersCount(); int total = candidate.getCultureCriteriaAnswersCount();
boolean isLast = total == cultureQuestionNo; boolean isLast = total == cultureQuestionNo;
if(isLast) if(isLast)
...@@ -36,7 +37,7 @@ ...@@ -36,7 +37,7 @@
cultureQuestionNo = total -1; cultureQuestionNo = total -1;
} }
CultureCriteriaAnswer answer = jobApplication.getSortedCultureCriteriaAnswers().get(cultureQuestionNo); CultureCriteriaAnswer answer = candidate.getSortedCultureCriteriaAnswers().get(cultureQuestionNo);
String numberText = (cultureQuestionNo + 1) + "/" + total; String numberText = (cultureQuestionNo + 1) + "/" + total;
process.setAttribute("JobApplication", jobApplication); process.setAttribute("JobApplication", jobApplication);
...@@ -93,7 +94,7 @@ ...@@ -93,7 +94,7 @@
FormTag applicationForm = FormTag.getActiveFormTag(request); FormTag applicationForm = FormTag.getActiveFormTag(request);
FormBuilder formBuilder = applicationForm.getFormBuilder(); FormBuilder formBuilder = applicationForm.getFormBuilder();
CultureCriteria criteria = answer.getCultureCriteria(); CultureCriteria criteria = answer.getCriteriaJob(job);
Collection<CultureElementQuestion> questions = criteria.pipelineCultureCriteria().toCultureElement().toQuestions().vals(); Collection<CultureElementQuestion> questions = criteria.pipelineCultureCriteria().toCultureElement().toQuestions().vals();
String optionKey = WebUtils.getRadioSingleAssocKey(request, answer, CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion); String optionKey = WebUtils.getRadioSingleAssocKey(request, answer, CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion);
String formValue = formBuilder.fieldValue (optionKey, answer.getSelectedQuestion() == null ? "" : String.valueOf(answer.getSelectedQuestionID())); String formValue = formBuilder.fieldValue (optionKey, answer.getSelectedQuestion() == null ? "" : String.valueOf(answer.getSelectedQuestionID()));
......
<?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_answer</tableName>
<column name="candidate_id" type="Long" length="11" nullable="true"/>
</NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_answer" indexName="idx_tl_answer_candidate_id" isUnique="false"><column name="candidate_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.RedefineTableOperation">
<tableName factory="String">tl_culture_criteria_answer</tableName>
<column name="culture_element_id" type="Long" length="11" nullable="true"/>
<column name="candidate_id" type="Long" length="11" nullable="true"/>
</NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_culture_criteria_answer" indexName="idx_tl_culture_criteria_answer_candidate_id" isUnique="false"><column name="candidate_id"/></NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
-- @AutoRun
UPDATE tl_answer AS an
SET candidate_id = ja.candidate_id
FROM tl_job_application AS ja
WHERE an.job_application_id = ja.object_id;
UPDATE tl_culture_criteria_answer AS ca
SET candidate_id = ja.candidate_id
FROM tl_job_application AS ja
WHERE ca.job_application_id = ja.object_id;
UPDATE tl_culture_criteria_answer AS ca
SET culture_element_id = cc.culture_element_id
FROM tl_culture_criteria AS cc
WHERE ca.culture_criteria_id = cc.object_id;
ALTER TABLE tl_answer ALTER COLUMN candidate_id SET NOT NULL;
ALTER TABLE tl_culture_criteria_answer ALTER COLUMN candidate_id SET NOT NULL;
ALTER TABLE tl_culture_criteria_answer ALTER COLUMN culture_element_id SET NOT NULL;
DROP INDEX idx_tl_culture_criteria_answer_job_application_id;
ALTER TABLE tl_answer DROP COLUMN job_application_id;
ALTER TABLE tl_culture_criteria_answer DROP COLUMN job_application_id;
ALTER TABLE tl_culture_criteria_answer DROP COLUMN culture_criteria_id;
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