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 @@
<column name="object_created_date" type="Date" nullable="false" length="22"/>
<column name="answer_number" type="Long" nullable="false"/>
<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"/>
</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>
\ No newline at end of file
......@@ -8,13 +8,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_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="job_application_id" type="Long" length="11" nullable="false"/>
<column name="candidate_id" type="Long" length="11" nullable="false"/>
</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_job_application_id" isUnique="false"><column name="job_application_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></OBJECTS>
\ No newline at end of file
......@@ -10,7 +10,7 @@ CREATE TABLE tl_answer (
,
answer_number numeric(12) NOT NULL,
section_number numeric(12) NULL,
job_application_id numeric(12) NOT NULL,
candidate_id numeric(12) NOT NULL,
quest_number numeric(12) NULL
);
......@@ -24,5 +24,5 @@ ALTER TABLE tl_answer ADD
CREATE INDEX idx_tl_answer_job_application_id
ON tl_answer (job_application_id);
CREATE INDEX idx_tl_answer_candidate_id
ON tl_answer (candidate_id);
......@@ -8,9 +8,9 @@ CREATE TABLE tl_culture_criteria_answer (
object_last_updated_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,
job_application_id numeric(12) NOT NULL
candidate_id numeric(12) NOT NULL
);
......@@ -23,8 +23,5 @@ ALTER TABLE tl_culture_criteria_answer ADD
CREATE INDEX idx_tl_culture_criteria_answer_culture_criteria_id
ON tl_culture_criteria_answer (culture_criteria_id);
CREATE INDEX idx_tl_culture_criteria_answer_job_application_id
ON tl_culture_criteria_answer (job_application_id);
CREATE INDEX idx_tl_culture_criteria_answer_candidate_id
ON tl_culture_criteria_answer (candidate_id);
......@@ -11,7 +11,7 @@ CREATE TABLE tl_answer (
,
answer_number number(12) NOT NULL,
section_number number(12) NULL,
job_application_id number(12) NOT NULL,
candidate_id number(12) NOT NULL,
quest_number number(12) NULL
);
......@@ -25,5 +25,5 @@ ALTER TABLE tl_answer ADD
CREATE INDEX idx_tl_answer_job_application_id
ON tl_answer (job_application_id);
CREATE INDEX idx_tl_answer_candidate_id
ON tl_answer (candidate_id);
......@@ -9,9 +9,9 @@ CREATE TABLE tl_culture_criteria_answer (
object_last_updated_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,
job_application_id number(12) NOT NULL
candidate_id number(12) NOT NULL
);
......@@ -24,8 +24,5 @@ ALTER TABLE tl_culture_criteria_answer ADD
CREATE INDEX idx_tl_culture_criteria_answer_culture_criteria_id
ON tl_culture_criteria_answer (culture_criteria_id);
CREATE INDEX idx_tl_culture_criteria_answer_job_application_id
ON tl_culture_criteria_answer (job_application_id);
CREATE INDEX idx_tl_culture_criteria_answer_candidate_id
ON tl_culture_criteria_answer (candidate_id);
......@@ -11,7 +11,7 @@ CREATE TABLE tl_answer (
,
answer_number numeric(12) NOT NULL,
section_number numeric(12) NULL,
job_application_id numeric(12) NOT NULL,
candidate_id numeric(12) NOT NULL,
quest_number numeric(12) NULL
);
......@@ -25,5 +25,5 @@ ALTER TABLE tl_answer ADD
CREATE INDEX idx_tl_answer_job_application_id
ON tl_answer (job_application_id);
CREATE INDEX idx_tl_answer_candidate_id
ON tl_answer (candidate_id);
......@@ -9,9 +9,9 @@ CREATE TABLE tl_culture_criteria_answer (
object_last_updated_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,
job_application_id numeric(12) NOT NULL
candidate_id numeric(12) NOT NULL
);
......@@ -24,8 +24,5 @@ ALTER TABLE tl_culture_criteria_answer ADD
CREATE INDEX idx_tl_culture_criteria_answer_culture_criteria_id
ON tl_culture_criteria_answer (culture_criteria_id);
CREATE INDEX idx_tl_culture_criteria_answer_job_application_id
ON tl_culture_criteria_answer (job_application_id);
CREATE INDEX idx_tl_culture_criteria_answer_candidate_id
ON tl_culture_criteria_answer (candidate_id);
......@@ -45,9 +45,9 @@ public class CompleteApplicationFP extends SaveFP
HttpServletRequest request = submission.getRequest();
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);
......
......@@ -24,7 +24,7 @@ public class SaveAndExitCultureFP extends SaveFP
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)
{
......
......@@ -24,7 +24,7 @@ public class SaveAndExitWorkStypeFP extends SaveFP
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)
{
......
package performa.form;
import java.util.Date;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import oneit.business.content.Article;
import oneit.components.ParticipantInitialisationContext;
import oneit.email.ConfigurableArticleTemplateEmailer;
import oneit.email.ConfigurableEmailerException;
import oneit.logging.*;
import oneit.net.LoopbackHTTP;
import oneit.objstore.StorageException;
import oneit.objstore.parser.BusinessObjectParser;
import oneit.security.SecUser;
......@@ -18,7 +15,6 @@ import oneit.servlets.security.SessionSecUserDecorator;
import oneit.utils.*;
import performa.orm.*;
import performa.utils.Utils;
import performa.utils.WebUtils;
public class VerifyIdentityFP extends ORMProcessFormProcessor
......
......@@ -32,7 +32,7 @@ public class Answer extends BaseAnswer
{
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)
{
......
......@@ -9,7 +9,7 @@
<ATTRIB name="AnswerNo" type="Integer" dbcol="answer_number" mandatory="true"/>
<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" />
</TABLE>
......
......@@ -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 = "";
public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
......@@ -94,7 +94,7 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr
if (false || !tl_answerPSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) ||
!tl_answerPSet.containsAttrib(Answer.FIELD_AnswerNo)||
!tl_answerPSet.containsAttrib(Answer.SINGLEREFERENCE_Section)||
!tl_answerPSet.containsAttrib(Answer.SINGLEREFERENCE_JobApplication)||
!tl_answerPSet.containsAttrib(Answer.SINGLEREFERENCE_Candidate)||
!tl_answerPSet.containsAttrib(Answer.SINGLEREFERENCE_Question))
{
// We will need to retrieve it
......@@ -141,11 +141,11 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr
{
throw new RuntimeException ();
}
else if (refName.equals (Answer.SINGLEREFERENCE_JobApplication))
else if (refName.equals (Answer.SINGLEREFERENCE_Candidate))
{
String query = "SELECT " + SELECT_COLUMNS +
"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);
......@@ -175,10 +175,10 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr
{
int rowsUpdated = executeStatement (sqlMgr,
"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 ()) + " ",
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)
{
......@@ -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.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"));
}
......@@ -455,10 +455,10 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr
{
executeStatement (sqlMgr,
"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 " +
" (?, ?, ?, ?, ?, " + 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);
}
......
......@@ -40,8 +40,8 @@ public abstract class BaseAnswer extends BaseBusinessClass
public static final String FIELD_AnswerNo = "AnswerNo";
public static final String SINGLEREFERENCE_Section = "Section";
public static final String SINGLEREFERENCE_JobApplication = "JobApplication";
public static final String BACKREF_JobApplication = "";
public static final String SINGLEREFERENCE_Candidate = "Candidate";
public static final String BACKREF_Candidate = "";
public static final String SINGLEREFERENCE_Question = "Question";
// Static constants corresponding to searches
......@@ -58,7 +58,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
// Private attributes corresponding to single references
private SingleAssociation<Answer, Section> _Section;
private SingleAssociation<Answer, JobApplication> _JobApplication;
private SingleAssociation<Answer, Candidate> _Candidate;
private SingleAssociation<Answer, Question> _Question;
......@@ -80,12 +80,12 @@ public abstract class BaseAnswer extends BaseBusinessClass
try
{
String tmp_JobApplication = JobApplication.BACKREF_ProfileAssessmentAnswers;
String tmp_Candidate = Candidate.BACKREF_ProfileAssessmentAnswers;
Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping"));
setupAssocMetaData_Section();
setupAssocMetaData_JobApplication();
setupAssocMetaData_Candidate();
setupAssocMetaData_Question();
FIELD_AnswerNo_Validators = (AttributeValidator[])setupAttribMetaData_AnswerNo(validatorMapping).toArray (new AttributeValidator[0]);
......@@ -117,18 +117,18 @@ public abstract class BaseAnswer extends BaseBusinessClass
// Meta Info setup
private static void setupAssocMetaData_JobApplication()
private static void setupAssocMetaData_Candidate()
{
Map metaInfo = new HashMap ();
metaInfo.put ("backreferenceName", "ProfileAssessmentAnswers");
metaInfo.put ("dbcol", "job_application_id");
metaInfo.put ("dbcol", "candidate_id");
metaInfo.put ("mandatory", "true");
metaInfo.put ("name", "JobApplication");
metaInfo.put ("type", "JobApplication");
metaInfo.put ("name", "Candidate");
metaInfo.put ("type", "Candidate");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for Answer.JobApplication:", metaInfo);
ATTRIBUTES_METADATA_Answer.put (SINGLEREFERENCE_JobApplication, Collections.unmodifiableMap (metaInfo));
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for Answer.Candidate:", metaInfo);
ATTRIBUTES_METADATA_Answer.put (SINGLEREFERENCE_Candidate, Collections.unmodifiableMap (metaInfo));
}
......@@ -202,7 +202,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
super._initialiseAssociations ();
_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");
}
......@@ -214,7 +214,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
super.initialiseReference ();
_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");
......@@ -334,7 +334,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
result.add("Section");
result.add("JobApplication");
result.add("Candidate");
result.add("Question");
......@@ -352,9 +352,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
else if (assocName.equals (SINGLEREFERENCE_Section))
{
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))
{
return _Question.getReferencedType ();
......@@ -375,9 +375,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
else if (assocName.equals (SINGLEREFERENCE_Section))
{
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))
{
return null ;
......@@ -398,9 +398,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
else if (assocName.equals (SINGLEREFERENCE_Section))
{
return getSection ();
}else if (assocName.equals (SINGLEREFERENCE_JobApplication))
}else if (assocName.equals (SINGLEREFERENCE_Candidate))
{
return getJobApplication ();
return getCandidate ();
}else if (assocName.equals (SINGLEREFERENCE_Question))
{
return getQuestion ();
......@@ -421,9 +421,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
else if (assocName.equals (SINGLEREFERENCE_Section))
{
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))
{
return getQuestion (getType);
......@@ -444,9 +444,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
else if (assocName.equals (SINGLEREFERENCE_Section))
{
return getSectionID ();
}else if (assocName.equals (SINGLEREFERENCE_JobApplication))
}else if (assocName.equals (SINGLEREFERENCE_Candidate))
{
return getJobApplicationID ();
return getCandidateID ();
}else if (assocName.equals (SINGLEREFERENCE_Question))
{
return getQuestionID ();
......@@ -467,9 +467,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
else if (assocName.equals (SINGLEREFERENCE_Section))
{
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))
{
setQuestion ((Question)(newValue));
......@@ -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();
try
{
return (JobApplication)(_JobApplication.get ());
return (Candidate)(_Candidate.get ());
}
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, "Instead I got:", _JobApplication.get ().getClass ());
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:", _Candidate.get ().getClass ());
throw e;
}
}
......@@ -599,27 +599,27 @@ public abstract class BaseAnswer extends BaseBusinessClass
/**
* 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();
return _JobApplication.get(getType);
return _Candidate.get(getType);
}
/**
* Get the object id for the referenced object. Does not force a DB access.
*/
public Long getJobApplicationID ()
public Long getCandidateID ()
{
assertValid();
if (_JobApplication == null)
if (_Candidate == null)
{
return null;
}
else
{
return _JobApplication.getID ();
return _Candidate.getID ();
}
}
......@@ -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
* 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
* If a field exception is thrown, the value is still changed, however it
* 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);
}
/**
* 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.
*/
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();
Debug.assertion (getWriteability_JobApplication () != FieldWriteability.FALSE, "Assoc JobApplication is not writeable");
preJobApplicationChange (newJobApplication);
JobApplication oldJobApplication = getJobApplication ();
Debug.assertion (getWriteability_Candidate () != FieldWriteability.FALSE, "Assoc Candidate is not writeable");
preCandidateChange (newCandidate);
Candidate oldCandidate = getCandidate ();
if (oldJobApplication != null)
if (oldCandidate != null)
{
// This is to stop validation from triggering when we are removed
_JobApplication.set (null);
oldJobApplication.removeFromProfileAssessmentAnswers ((Answer)(this));
_Candidate.set (null);
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
try
{
// 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)
{
// Stop the callback
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);
}
}
......@@ -952,7 +952,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
tl_answerPSet.setAttrib (FIELD_ObjectID, myID);
tl_answerPSet.setAttrib (FIELD_AnswerNo, HELPER_AnswerNo.toObject (_AnswerNo)); //
_Section.getPersistentSets (allSets);
_JobApplication.getPersistentSets (allSets);
_Candidate.getPersistentSets (allSets);
_Question.getPersistentSets (allSets);
}
......@@ -970,7 +970,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
_AnswerNo = (Integer)(HELPER_AnswerNo.fromObject (_AnswerNo, tl_answerPSet.getAttrib (FIELD_AnswerNo))); //
_Section.setFromPersistentSets (objectID, allSets);
_JobApplication.setFromPersistentSets (objectID, allSets);
_Candidate.setFromPersistentSets (objectID, allSets);
_Question.setFromPersistentSets (objectID, allSets);
}
......@@ -1029,7 +1029,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
BaseAnswer sourceAnswer = (BaseAnswer)(source);
_Section.copyFrom (sourceAnswer._Section, linkToGhosts);
_JobApplication.copyFrom (sourceAnswer._JobApplication, linkToGhosts);
_Candidate.copyFrom (sourceAnswer._Candidate, linkToGhosts);
_Question.copyFrom (sourceAnswer._Question, linkToGhosts);
}
......@@ -1057,7 +1057,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
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
_AnswerNo = (Integer)(HELPER_AnswerNo.readExternal (_AnswerNo, vals.get(FIELD_AnswerNo))); //
_Section.readExternalData(vals.get(SINGLEREFERENCE_Section));
_JobApplication.readExternalData(vals.get(SINGLEREFERENCE_JobApplication));
_Candidate.readExternalData(vals.get(SINGLEREFERENCE_Candidate));
_Question.readExternalData(vals.get(SINGLEREFERENCE_Question));
}
......@@ -1086,7 +1086,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
vals.put (FIELD_AnswerNo, HELPER_AnswerNo.writeExternal (_AnswerNo));
vals.put (SINGLEREFERENCE_Section, _Section.writeExternalData());
vals.put (SINGLEREFERENCE_JobApplication, _JobApplication.writeExternalData());
vals.put (SINGLEREFERENCE_Candidate, _Candidate.writeExternalData());
vals.put (SINGLEREFERENCE_Question, _Question.writeExternalData());
}
......@@ -1108,7 +1108,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
// Compare single assocs
_Section.compare (otherAnswer._Section, listener);
_JobApplication.compare (otherAnswer._JobApplication, listener);
_Candidate.compare (otherAnswer._Candidate, listener);
_Question.compare (otherAnswer._Question, listener);
......@@ -1132,7 +1132,7 @@ public abstract class BaseAnswer extends BaseBusinessClass
visitor.visitField(this, FIELD_AnswerNo, HELPER_AnswerNo.toObject(getAnswerNo()));
visitor.visitAssociation (_Section);
visitor.visitAssociation (_JobApplication);
visitor.visitAssociation (_Candidate);
visitor.visitAssociation (_Question);
}
......@@ -1146,9 +1146,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
{
visitor.visit (_Section);
}
if (scope.includes (_JobApplication))
if (scope.includes (_Candidate))
{
visitor.visit (_JobApplication);
visitor.visit (_Candidate);
}
if (scope.includes (_Question))
{
......@@ -1187,9 +1187,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
{
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))
{
......@@ -1238,9 +1238,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
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;
}
......@@ -1351,9 +1351,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
{
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))
{
......@@ -1512,9 +1512,9 @@ public abstract class BaseAnswer extends BaseBusinessClass
{
return toSection ();
}
if (name.equals ("JobApplication"))
if (name.equals ("Candidate"))
{
return toJobApplication ();
return toCandidate ();
}
if (name.equals ("Question"))
{
......@@ -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));
}
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); }
......@@ -1590,18 +1590,18 @@ class DummyAnswer extends Answer
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.
*/
public Long getJobApplicationID ()
public Long getCandidateID ()
{
return JobApplication.DUMMY_JobApplication.getObjectID();
return Candidate.DUMMY_Candidate.getObjectID();
}
public Question getQuestion () throws StorageException
......
......@@ -50,6 +50,10 @@ public abstract class BaseCandidate extends SecUserExtension
public static final String BACKREF_TestAnalysises = "";
public static final String MULTIPLEREFERENCE_JobApplications = "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
public static final String SEARCH_All = "All";
......@@ -77,6 +81,8 @@ public abstract class BaseCandidate extends SecUserExtension
// Private attributes corresponding to multiple references
private MultipleAssociation<Candidate, TestAnalysis> _TestAnalysises;
private MultipleAssociation<Candidate, JobApplication> _JobApplications;
private MultipleAssociation<Candidate, CultureCriteriaAnswer> _CultureCriteriaAnswers;
private MultipleAssociation<Candidate, Answer> _ProfileAssessmentAnswers;
// Map of maps of metadata
......@@ -99,12 +105,16 @@ public abstract class BaseCandidate extends SecUserExtension
String tmp_TestAnalysises = TestAnalysis.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;
Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping"));
setupAssocMetaData_TestAnalysises();
setupAssocMetaData_JobApplications();
setupAssocMetaData_CultureCriteriaAnswers();
setupAssocMetaData_ProfileAssessmentAnswers();
setupAssocMetaData_TestInput();
FIELD_Phone_Validators = (AttributeValidator[])setupAttribMetaData_Phone(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
// 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()
{
Map metaInfo = new HashMap ();
......@@ -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");
_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);
_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
_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);
_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;
......@@ -934,6 +976,10 @@ public abstract class BaseCandidate extends SecUserExtension
result.add("JobApplications");
result.add("CultureCriteriaAnswers");
result.add("ProfileAssessmentAnswers");
return result;
}
......@@ -955,6 +1001,16 @@ public abstract class BaseCandidate extends SecUserExtension
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);
}
......@@ -973,6 +1029,16 @@ public abstract class BaseCandidate extends SecUserExtension
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);
}
......@@ -994,6 +1060,16 @@ public abstract class BaseCandidate extends SecUserExtension
return this.getJobApplicationsCount();
}
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
return this.getCultureCriteriaAnswersCount();
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
return this.getProfileAssessmentAnswersCount();
}
return super.getMultiAssocCount(attribName);
}
......@@ -1015,6 +1091,16 @@ public abstract class BaseCandidate extends SecUserExtension
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);
}
......@@ -1040,6 +1126,20 @@ public abstract class BaseCandidate extends SecUserExtension
return;
}
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
addToCultureCriteriaAnswers((CultureCriteriaAnswer)newElement);
return;
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
addToProfileAssessmentAnswers((Answer)newElement);
return;
}
super.addToMultiAssoc(attribName, newElement);
}
......@@ -1064,6 +1164,20 @@ public abstract class BaseCandidate extends SecUserExtension
return;
}
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
removeFromCultureCriteriaAnswers((CultureCriteriaAnswer)oldElement);
return;
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
removeFromProfileAssessmentAnswers((Answer)oldElement);
return;
}
super.removeFromMultiAssoc(attribName, oldElement);
}
......@@ -1084,6 +1198,18 @@ public abstract class BaseCandidate extends SecUserExtension
return;
}
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
_CultureCriteriaAnswers.__loadAssociation (elements);
return;
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
_ProfileAssessmentAnswers.__loadAssociation (elements);
return;
}
super.__loadMultiAssoc(attribName, elements);
}
......@@ -1102,6 +1228,16 @@ public abstract class BaseCandidate extends SecUserExtension
return _JobApplications.isLoaded ();
}
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
return _CultureCriteriaAnswers.isLoaded ();
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
return _ProfileAssessmentAnswers.isLoaded ();
}
return super.__isMultiAssocLoaded(attribName);
}
......@@ -1246,6 +1382,144 @@ public abstract class BaseCandidate extends SecUserExtension
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 ()
......@@ -1278,6 +1552,18 @@ public abstract class BaseCandidate extends SecUserExtension
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)
{
......@@ -1467,6 +1753,8 @@ public abstract class BaseCandidate extends SecUserExtension
_TestAnalysises.copyFrom (sourceCandidate._TestAnalysises, 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
_TestInput.readExternalData(vals.get(SINGLEREFERENCE_TestInput));
_TestAnalysises.readExternalData(vals.get(MULTIPLEREFERENCE_TestAnalysises));
_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
vals.put (SINGLEREFERENCE_TestInput, _TestInput.writeExternalData());
vals.put (MULTIPLEREFERENCE_TestAnalysises, _TestAnalysises.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
// Compare multiple assocs
_TestAnalysises.compare (otherCandidate._TestAnalysises, 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
visitor.visitAssociation (_TestInput);
visitor.visitAssociation (_TestAnalysises);
visitor.visitAssociation (_JobApplications);
visitor.visitAssociation (_CultureCriteriaAnswers);
visitor.visitAssociation (_ProfileAssessmentAnswers);
}
......@@ -1593,6 +1889,14 @@ public abstract class BaseCandidate extends SecUserExtension
{
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
{
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))
{
return getWriteability_TestInput ();
......@@ -2186,6 +2498,14 @@ public abstract class BaseCandidate extends SecUserExtension
{
return toJobApplications ();
}
if (name.equals ("CultureCriteriaAnswers"))
{
return toCultureCriteriaAnswers ();
}
if (name.equals ("ProfileAssessmentAnswers"))
{
return toProfileAssessmentAnswers ();
}
if (name.equals ("Phone"))
{
return toPhone ();
......@@ -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));
}
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
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
public static final String BACKREF_Job = "";
public static final String SINGLEREFERENCE_Template = "Template";
public static final String BACKREF_Template = "";
public static final String MULTIPLEREFERENCE_Answers = "Answers";
public static final String BACKREF_Answers = "";
// Static constants corresponding to searches
public static final String SEARCH_All = "All";
......@@ -70,7 +68,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
// Private attributes corresponding to multiple references
private MultipleAssociation<CultureCriteria, CultureCriteriaAnswer> _Answers;
// Map of maps of metadata
......@@ -88,13 +85,11 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
try
{
String tmp_Answers = CultureCriteriaAnswer.BACKREF_CultureCriteria;
String tmp_Job = Job.BACKREF_CultureCriterias;
String tmp_Template = CultureCriteriaTemplate.BACKREF_CultureCriterias;
Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping"));
setupAssocMetaData_Answers();
setupAssocMetaData_CultureElement();
setupAssocMetaData_CultureElementRating();
setupAssocMetaData_Job();
......@@ -115,20 +110,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
// 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()
{
Map metaInfo = new HashMap ();
......@@ -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");
_Job = new SingleAssociation<CultureCriteria, Job> (this, SINGLEREFERENCE_Job, Job.MULTIPLEREFERENCE_CultureCriterias, Job.REFERENCE_Job, "tl_culture_criteria");
_Template = new SingleAssociation<CultureCriteria, CultureCriteriaTemplate> (this, SINGLEREFERENCE_Template, CultureCriteriaTemplate.MULTIPLEREFERENCE_CultureCriterias, CultureCriteriaTemplate.REFERENCE_CultureCriteriaTemplate, "tl_culture_criteria");
_Answers = new MultipleAssociation<CultureCriteria, CultureCriteriaAnswer> (this, MULTIPLEREFERENCE_Answers, CultureCriteriaAnswer.SINGLEREFERENCE_CultureCriteria, CultureCriteriaAnswer.REFERENCE_CultureCriteriaAnswer);
}
......@@ -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");
_Job = new SingleAssociation<CultureCriteria, Job> (this, SINGLEREFERENCE_Job, Job.MULTIPLEREFERENCE_CultureCriterias, Job.REFERENCE_Job, "tl_culture_criteria");
_Template = new SingleAssociation<CultureCriteria, CultureCriteriaTemplate> (this, SINGLEREFERENCE_Template, CultureCriteriaTemplate.MULTIPLEREFERENCE_CultureCriterias, CultureCriteriaTemplate.REFERENCE_CultureCriteriaTemplate, "tl_culture_criteria");
_Answers = new MultipleAssociation<CultureCriteria, CultureCriteriaAnswer> (this, MULTIPLEREFERENCE_Answers, CultureCriteriaAnswer.SINGLEREFERENCE_CultureCriteria, CultureCriteriaAnswer.REFERENCE_CultureCriteriaAnswer);
return this;
......@@ -962,8 +941,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
List result = super.getMultiAssocs ();
result.add("Answers");
return result;
}
......@@ -975,11 +952,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
public BaseBusinessClass getMultiAssocReferenceInstance(String attribName)
{
if (MULTIPLEREFERENCE_Answers.equals(attribName))
{
return CultureCriteriaAnswer.REFERENCE_CultureCriteriaAnswer ;
}
return super.getMultiAssocReferenceInstance(attribName);
}
......@@ -988,11 +960,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
public String getMultiAssocBackReference(String attribName)
{
if (MULTIPLEREFERENCE_Answers.equals(attribName))
{
return CultureCriteriaAnswer.SINGLEREFERENCE_CultureCriteria ;
}
return super.getMultiAssocBackReference(attribName);
}
......@@ -1004,11 +971,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
public int getMultiAssocCount(String attribName) throws StorageException
{
if (MULTIPLEREFERENCE_Answers.equals(attribName))
{
return this.getAnswersCount();
}
return super.getMultiAssocCount(attribName);
}
......@@ -1020,11 +982,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
public BaseBusinessClass getMultiAssocAt(String attribName, int index) throws StorageException
{
if (MULTIPLEREFERENCE_Answers.equals(attribName))
{
return this.getAnswersAt(index);
}
return super.getMultiAssocAt(attribName, index);
}
......@@ -1036,13 +993,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
public void addToMultiAssoc(String attribName, BaseBusinessClass newElement) throws StorageException
{
if (MULTIPLEREFERENCE_Answers.equals(attribName))
{
addToAnswers((CultureCriteriaAnswer)newElement);
return;
}
super.addToMultiAssoc(attribName, newElement);
}
......@@ -1053,13 +1003,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
public void removeFromMultiAssoc(String attribName, BaseBusinessClass oldElement) throws StorageException
{
if (MULTIPLEREFERENCE_Answers.equals(attribName))
{
removeFromAnswers((CultureCriteriaAnswer)oldElement);
return;
}
super.removeFromMultiAssoc(attribName, oldElement);
}
......@@ -1068,12 +1011,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
protected void __loadMultiAssoc (String attribName, BaseBusinessClass[] elements)
{
if (MULTIPLEREFERENCE_Answers.equals(attribName))
{
_Answers.__loadAssociation (elements);
return;
}
super.__loadMultiAssoc(attribName, elements);
}
......@@ -1082,86 +1019,12 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
protected boolean __isMultiAssocLoaded (String attribName)
{
if (MULTIPLEREFERENCE_Answers.equals(attribName))
{
return _Answers.isLoaded ();
}
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 ()
......@@ -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)
{
......@@ -1362,7 +1219,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
{
BaseCultureCriteria sourceCultureCriteria = (BaseCultureCriteria)(source);
_Answers.copyFrom (sourceCultureCriteria._Answers, linkToGhosts);
}
}
......@@ -1392,7 +1248,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
_CultureElementRating.readExternalData(vals.get(SINGLEREFERENCE_CultureElementRating));
_Job.readExternalData(vals.get(SINGLEREFERENCE_Job));
_Template.readExternalData(vals.get(SINGLEREFERENCE_Template));
_Answers.readExternalData(vals.get(MULTIPLEREFERENCE_Answers));
}
......@@ -1409,7 +1264,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
vals.put (SINGLEREFERENCE_CultureElementRating, _CultureElementRating.writeExternalData());
vals.put (SINGLEREFERENCE_Job, _Job.writeExternalData());
vals.put (SINGLEREFERENCE_Template, _Template.writeExternalData());
vals.put (MULTIPLEREFERENCE_Answers, _Answers.writeExternalData());
}
......@@ -1436,7 +1290,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
// Compare multiple assocs
_Answers.compare (otherCultureCriteria._Answers, listener);
}
}
......@@ -1459,7 +1312,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
visitor.visitAssociation (_CultureElementRating);
visitor.visitAssociation (_Job);
visitor.visitAssociation (_Template);
visitor.visitAssociation (_Answers);
}
......@@ -1484,10 +1336,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
{
visitor.visit (_Template);
}
if (scope.includes (_Answers))
{
visitor.visit (_Answers);
}
}
......@@ -1691,10 +1539,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
{
return getWriteability_Importance ();
}
else if (fieldName.equals (MULTIPLEREFERENCE_Answers))
{
return getWriteability_Answers ();
}
else if (fieldName.equals (SINGLEREFERENCE_CultureElement))
{
return getWriteability_CultureElement ();
......@@ -1856,10 +1700,6 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
public PipeLine<From, ? extends Object> to(String name)
{
if (name.equals ("Answers"))
{
return toAnswers ();
}
if (name.equals ("Importance"))
{
return toImportance ();
......@@ -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));
}
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
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
// Static constants corresponding to field names
public static final String SINGLEREFERENCE_CultureCriteria = "CultureCriteria";
public static final String BACKREF_CultureCriteria = "";
public static final String SINGLEREFERENCE_CultureElement = "CultureElement";
public static final String SINGLEREFERENCE_SelectedQuestion = "SelectedQuestion";
public static final String SINGLEREFERENCE_JobApplication = "JobApplication";
public static final String BACKREF_JobApplication = "";
public static final String SINGLEREFERENCE_Candidate = "Candidate";
public static final String BACKREF_Candidate = "";
// Static constants corresponding to searches
public static final String SEARCH_All = "All";
......@@ -55,9 +54,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
// Private attributes corresponding to single references
private SingleAssociation<CultureCriteriaAnswer, CultureCriteria> _CultureCriteria;
private SingleAssociation<CultureCriteriaAnswer, CultureElement> _CultureElement;
private SingleAssociation<CultureCriteriaAnswer, CultureElementQuestion> _SelectedQuestion;
private SingleAssociation<CultureCriteriaAnswer, JobApplication> _JobApplication;
private SingleAssociation<CultureCriteriaAnswer, Candidate> _Candidate;
// Private attributes corresponding to multiple references
......@@ -77,14 +76,13 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
try
{
String tmp_CultureCriteria = CultureCriteria.BACKREF_Answers;
String tmp_JobApplication = JobApplication.BACKREF_CultureCriteriaAnswers;
String tmp_Candidate = Candidate.BACKREF_CultureCriteriaAnswers;
Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping"));
setupAssocMetaData_CultureCriteria();
setupAssocMetaData_CultureElement();
setupAssocMetaData_SelectedQuestion();
setupAssocMetaData_JobApplication();
setupAssocMetaData_Candidate();
REFERENCE_CultureCriteriaAnswer.initialiseReference ();
......@@ -100,18 +98,17 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
// Meta Info setup
private static void setupAssocMetaData_CultureCriteria()
private static void setupAssocMetaData_CultureElement()
{
Map metaInfo = new HashMap ();
metaInfo.put ("backreferenceName", "Answers");
metaInfo.put ("dbcol", "culture_criteria_id");
metaInfo.put ("dbcol", "culture_element_id");
metaInfo.put ("mandatory", "true");
metaInfo.put ("name", "CultureCriteria");
metaInfo.put ("type", "CultureCriteria");
metaInfo.put ("name", "CultureElement");
metaInfo.put ("type", "CultureElement");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for CultureCriteriaAnswer.CultureCriteria:", metaInfo);
ATTRIBUTES_METADATA_CultureCriteriaAnswer.put (SINGLEREFERENCE_CultureCriteria, Collections.unmodifiableMap (metaInfo));
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for CultureCriteriaAnswer.CultureElement:", metaInfo);
ATTRIBUTES_METADATA_CultureCriteriaAnswer.put (SINGLEREFERENCE_CultureElement, Collections.unmodifiableMap (metaInfo));
}
......@@ -131,18 +128,18 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
// Meta Info setup
private static void setupAssocMetaData_JobApplication()
private static void setupAssocMetaData_Candidate()
{
Map metaInfo = new HashMap ();
metaInfo.put ("backreferenceName", "CultureCriteriaAnswers");
metaInfo.put ("dbcol", "job_application_id");
metaInfo.put ("dbcol", "candidate_id");
metaInfo.put ("mandatory", "true");
metaInfo.put ("name", "JobApplication");
metaInfo.put ("type", "JobApplication");
metaInfo.put ("name", "Candidate");
metaInfo.put ("type", "Candidate");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for CultureCriteriaAnswer.JobApplication:", metaInfo);
ATTRIBUTES_METADATA_CultureCriteriaAnswer.put (SINGLEREFERENCE_JobApplication, Collections.unmodifiableMap (metaInfo));
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for CultureCriteriaAnswer.Candidate:", metaInfo);
ATTRIBUTES_METADATA_CultureCriteriaAnswer.put (SINGLEREFERENCE_Candidate, Collections.unmodifiableMap (metaInfo));
}
......@@ -181,9 +178,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{
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");
_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
{
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");
_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;
......@@ -213,11 +210,11 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
List result = super.getSingleAssocs ();
result.add("CultureCriteria");
result.add("CultureElement");
result.add("SelectedQuestion");
result.add("JobApplication");
result.add("Candidate");
return result;
......@@ -230,15 +227,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{
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))
{
return _SelectedQuestion.getReferencedType ();
}else if (assocName.equals (SINGLEREFERENCE_JobApplication))
}else if (assocName.equals (SINGLEREFERENCE_Candidate))
{
return _JobApplication.getReferencedType ();
return _Candidate.getReferencedType ();
}
else
{
......@@ -253,15 +250,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{
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))
{
return null ;
}else if (assocName.equals (SINGLEREFERENCE_JobApplication))
}else if (assocName.equals (SINGLEREFERENCE_Candidate))
{
return JobApplication.MULTIPLEREFERENCE_CultureCriteriaAnswers ;
return Candidate.MULTIPLEREFERENCE_CultureCriteriaAnswers ;
}
else
{
......@@ -276,15 +273,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{
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))
{
return getSelectedQuestion ();
}else if (assocName.equals (SINGLEREFERENCE_JobApplication))
}else if (assocName.equals (SINGLEREFERENCE_Candidate))
{
return getJobApplication ();
return getCandidate ();
}
else
{
......@@ -299,15 +296,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{
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))
{
return getSelectedQuestion (getType);
}else if (assocName.equals (SINGLEREFERENCE_JobApplication))
}else if (assocName.equals (SINGLEREFERENCE_Candidate))
{
return getJobApplication (getType);
return getCandidate (getType);
}
else
{
......@@ -322,15 +319,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{
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))
{
return getSelectedQuestionID ();
}else if (assocName.equals (SINGLEREFERENCE_JobApplication))
}else if (assocName.equals (SINGLEREFERENCE_Candidate))
{
return getJobApplicationID ();
return getCandidateID ();
}
else
{
......@@ -345,15 +342,15 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{
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))
{
setSelectedQuestion ((CultureElementQuestion)(newValue));
}else if (assocName.equals (SINGLEREFERENCE_JobApplication))
}else if (assocName.equals (SINGLEREFERENCE_Candidate))
{
setJobApplication ((JobApplication)(newValue));
setCandidate ((Candidate)(newValue));
}
else
{
......@@ -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();
try
{
return (CultureCriteria)(_CultureCriteria.get ());
return (CultureElement)(_CultureElement.get ());
}
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, "Instead I got:", _CultureCriteria.get ().getClass ());
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:", _CultureElement.get ().getClass ());
throw e;
}
}
......@@ -386,27 +383,27 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
/**
* 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();
return _CultureCriteria.get(getType);
return _CultureElement.get(getType);
}
/**
* Get the object id for the referenced object. Does not force a DB access.
*/
public Long getCultureCriteriaID ()
public Long getCultureElementID ()
{
assertValid();
if (_CultureCriteria == null)
if (_CultureElement == null)
{
return null;
}
else
{
return _CultureCriteria.getID ();
return _CultureElement.getID ();
}
}
......@@ -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
* 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
* If a field exception is thrown, the value is still changed, however it
* 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);
}
/**
* 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.
*/
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();
Debug.assertion (getWriteability_CultureCriteria () != FieldWriteability.FALSE, "Assoc CultureCriteria is not writeable");
preCultureCriteriaChange (newCultureCriteria);
CultureCriteria oldCultureCriteria = getCultureCriteria ();
if (oldCultureCriteria != null)
{
// This is to stop validation from triggering when we are removed
_CultureCriteria.set (null);
oldCultureCriteria.removeFromAnswers ((CultureCriteriaAnswer)(this));
}
Debug.assertion (getWriteability_CultureElement () != FieldWriteability.FALSE, "Assoc CultureElement is not writeable");
preCultureElementChange (newCultureElement);
_CultureCriteria.set (newCultureCriteria);
_CultureElement.set (newCultureElement);
if (newCultureCriteria != null)
{
newCultureCriteria.addToAnswers ((CultureCriteriaAnswer)(this));
}
postCultureCriteriaChange ();
postCultureElementChange ();
}
}
......@@ -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();
try
{
return (JobApplication)(_JobApplication.get ());
return (Candidate)(_Candidate.get ());
}
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, "Instead I got:", _JobApplication.get ().getClass ());
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:", _Candidate.get ().getClass ());
throw e;
}
}
......@@ -589,27 +573,27 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
/**
* 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();
return _JobApplication.get(getType);
return _Candidate.get(getType);
}
/**
* Get the object id for the referenced object. Does not force a DB access.
*/
public Long getJobApplicationID ()
public Long getCandidateID ()
{
assertValid();
if (_JobApplication == null)
if (_Candidate == null)
{
return null;
}
else
{
return _JobApplication.getID ();
return _Candidate.getID ();
}
}
......@@ -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
* 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
* If a field exception is thrown, the value is still changed, however it
* 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);
}
/**
* 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.
*/
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();
Debug.assertion (getWriteability_JobApplication () != FieldWriteability.FALSE, "Assoc JobApplication is not writeable");
preJobApplicationChange (newJobApplication);
JobApplication oldJobApplication = getJobApplication ();
Debug.assertion (getWriteability_Candidate () != FieldWriteability.FALSE, "Assoc Candidate is not writeable");
preCandidateChange (newCandidate);
Candidate oldCandidate = getCandidate ();
if (oldJobApplication != null)
if (oldCandidate != null)
{
// This is to stop validation from triggering when we are removed
_JobApplication.set (null);
oldJobApplication.removeFromCultureCriteriaAnswers ((CultureCriteriaAnswer)(this));
_Candidate.set (null);
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
try
{
// Ensure we are removed from any loaded multi-associations that aren't mandatory
if (_CultureCriteria.isLoaded () || getTransaction ().isObjectLoaded (_CultureCriteria.getReferencedType (), getCultureCriteriaID ()))
{
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 ()))
if (_Candidate.isLoaded () || getTransaction ().isObjectLoaded (_Candidate.getReferencedType (), getCandidateID ()))
{
JobApplication referenced = getJobApplication ();
Candidate referenced = getCandidate ();
if (referenced != null)
{
// Stop the callback
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);
}
}
......@@ -860,9 +830,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
PersistentSet tl_culture_criteria_answerPSet = allSets.getPersistentSet (myID, "tl_culture_criteria_answer", myPSetStatus);
tl_culture_criteria_answerPSet.setAttrib (FIELD_ObjectID, myID);
_CultureCriteria.getPersistentSets (allSets);
_CultureElement.getPersistentSets (allSets);
_SelectedQuestion.getPersistentSets (allSets);
_JobApplication.getPersistentSets (allSets);
_Candidate.getPersistentSets (allSets);
}
......@@ -877,9 +847,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
PersistentSet tl_culture_criteria_answerPSet = allSets.getPersistentSet (objectID, "tl_culture_criteria_answer");
_CultureCriteria.setFromPersistentSets (objectID, allSets);
_CultureElement.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
{
BaseCultureCriteriaAnswer sourceCultureCriteriaAnswer = (BaseCultureCriteriaAnswer)(source);
_CultureCriteria.copyFrom (sourceCultureCriteriaAnswer._CultureCriteria, linkToGhosts);
_CultureElement.copyFrom (sourceCultureCriteriaAnswer._CultureElement, 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
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 (getJobApplicationID() != null, this, SINGLEREFERENCE_JobApplication, "mandatory");
context.check (getCandidateID() != null, this, SINGLEREFERENCE_Candidate, "mandatory");
}
......@@ -971,9 +941,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{
super.readExternalData(vals);
_CultureCriteria.readExternalData(vals.get(SINGLEREFERENCE_CultureCriteria));
_CultureElement.readExternalData(vals.get(SINGLEREFERENCE_CultureElement));
_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
{
super.writeExternalData(vals);
vals.put (SINGLEREFERENCE_CultureCriteria, _CultureCriteria.writeExternalData());
vals.put (SINGLEREFERENCE_CultureElement, _CultureElement.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
// Compare single assocs
_CultureCriteria.compare (otherCultureCriteriaAnswer._CultureCriteria, listener);
_CultureElement.compare (otherCultureCriteriaAnswer._CultureElement, listener);
_SelectedQuestion.compare (otherCultureCriteriaAnswer._SelectedQuestion, listener);
_JobApplication.compare (otherCultureCriteriaAnswer._JobApplication, listener);
_Candidate.compare (otherCultureCriteriaAnswer._Candidate, listener);
// Compare multiple assocs
......@@ -1026,9 +996,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{
super.visitAttributes (visitor);
visitor.visitAssociation (_CultureCriteria);
visitor.visitAssociation (_CultureElement);
visitor.visitAssociation (_SelectedQuestion);
visitor.visitAssociation (_JobApplication);
visitor.visitAssociation (_Candidate);
}
......@@ -1037,17 +1007,17 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{
super.visitAssociations (visitor, scope);
if (scope.includes (_CultureCriteria))
if (scope.includes (_CultureElement))
{
visitor.visit (_CultureCriteria);
visitor.visit (_CultureElement);
}
if (scope.includes (_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
{
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))
{
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
{
......@@ -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;
}
......@@ -1129,9 +1099,9 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
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;
}
......@@ -1216,17 +1186,17 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{
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))
{
return getWriteability_SelectedQuestion ();
}
else if (fieldName.equals (SINGLEREFERENCE_JobApplication))
else if (fieldName.equals (SINGLEREFERENCE_Candidate))
{
return getWriteability_JobApplication ();
return getWriteability_Candidate ();
}
else
{
......@@ -1349,28 +1319,28 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
public PipeLine<From, ? extends Object> to(String name)
{
if (name.equals ("CultureCriteria"))
if (name.equals ("CultureElement"))
{
return toCultureCriteria ();
return toCultureElement ();
}
if (name.equals ("SelectedQuestion"))
{
return toSelectedQuestion ();
}
if (name.equals ("JobApplication"))
if (name.equals ("Candidate"))
{
return toJobApplication ();
return toCandidate ();
}
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); }
......@@ -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));
}
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
}
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.
*/
public Long getCultureCriteriaID ()
public Long getCultureElementID ()
{
return CultureCriteria.DUMMY_CultureCriteria.getObjectID();
return CultureElement.DUMMY_CultureElement.getObjectID();
}
public CultureElementQuestion getSelectedQuestion () throws StorageException
......@@ -1443,18 +1413,18 @@ class DummyCultureCriteriaAnswer extends CultureCriteriaAnswer
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.
*/
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
public static final String BACKREF_Job = "";
public static final String MULTIPLEREFERENCE_AssessmentCriteriaAnswers = "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
public static final String SEARCH_All = "All";
......@@ -84,8 +80,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
// Private attributes corresponding to multiple references
private MultipleAssociation<JobApplication, AssessmentCriteriaAnswer> _AssessmentCriteriaAnswers;
private MultipleAssociation<JobApplication, CultureCriteriaAnswer> _CultureCriteriaAnswers;
private MultipleAssociation<JobApplication, Answer> _ProfileAssessmentAnswers;
// Map of maps of metadata
......@@ -108,16 +102,12 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
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_Job = Job.BACKREF_JobApplications;
Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping"));
setupAssocMetaData_AssessmentCriteriaAnswers();
setupAssocMetaData_CultureCriteriaAnswers();
setupAssocMetaData_ProfileAssessmentAnswers();
setupAssocMetaData_Candidate();
setupAssocMetaData_Job();
FIELD_AppProcessOption_Validators = (AttributeValidator[])setupAttribMetaData_AppProcessOption(validatorMapping).toArray (new AttributeValidator[0]);
......@@ -154,34 +144,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
// 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()
{
Map metaInfo = new HashMap ();
......@@ -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");
_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);
_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
_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");
_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;
......@@ -1232,10 +1190,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
result.add("AssessmentCriteriaAnswers");
result.add("CultureCriteriaAnswers");
result.add("ProfileAssessmentAnswers");
return result;
}
......@@ -1252,16 +1206,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
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);
}
......@@ -1275,16 +1219,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
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);
}
......@@ -1301,16 +1235,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return this.getAssessmentCriteriaAnswersCount();
}
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
return this.getCultureCriteriaAnswersCount();
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
return this.getProfileAssessmentAnswersCount();
}
return super.getMultiAssocCount(attribName);
}
......@@ -1327,16 +1251,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
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);
}
......@@ -1355,20 +1269,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return;
}
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
addToCultureCriteriaAnswers((CultureCriteriaAnswer)newElement);
return;
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
addToProfileAssessmentAnswers((Answer)newElement);
return;
}
super.addToMultiAssoc(attribName, newElement);
}
......@@ -1386,20 +1286,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return;
}
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
removeFromCultureCriteriaAnswers((CultureCriteriaAnswer)oldElement);
return;
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
removeFromProfileAssessmentAnswers((Answer)oldElement);
return;
}
super.removeFromMultiAssoc(attribName, oldElement);
}
......@@ -1414,18 +1300,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return;
}
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
_CultureCriteriaAnswers.__loadAssociation (elements);
return;
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
_ProfileAssessmentAnswers.__loadAssociation (elements);
return;
}
super.__loadMultiAssoc(attribName, elements);
}
......@@ -1439,16 +1313,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return _AssessmentCriteriaAnswers.isLoaded ();
}
if (MULTIPLEREFERENCE_CultureCriteriaAnswers.equals(attribName))
{
return _CultureCriteriaAnswers.isLoaded ();
}
if (MULTIPLEREFERENCE_ProfileAssessmentAnswers.equals(attribName))
{
return _ProfileAssessmentAnswers.isLoaded ();
}
return super.__isMultiAssocLoaded(attribName);
}
......@@ -1524,144 +1388,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
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 ()
......@@ -1702,18 +1428,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
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)
{
......@@ -1895,8 +1609,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
BaseJobApplication sourceJobApplication = (BaseJobApplication)(source);
_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
_Candidate.readExternalData(vals.get(SINGLEREFERENCE_Candidate));
_Job.readExternalData(vals.get(SINGLEREFERENCE_Job));
_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
vals.put (SINGLEREFERENCE_Candidate, _Candidate.writeExternalData());
vals.put (SINGLEREFERENCE_Job, _Job.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
// Compare multiple assocs
_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
visitor.visitAssociation (_Candidate);
visitor.visitAssociation (_Job);
visitor.visitAssociation (_AssessmentCriteriaAnswers);
visitor.visitAssociation (_CultureCriteriaAnswers);
visitor.visitAssociation (_ProfileAssessmentAnswers);
}
......@@ -2034,14 +1738,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
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
{
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))
{
return getWriteability_Candidate ();
......@@ -2685,14 +2373,6 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
return toAssessmentCriteriaAnswers ();
}
if (name.equals ("CultureCriteriaAnswers"))
{
return toCultureCriteriaAnswers ();
}
if (name.equals ("ProfileAssessmentAnswers"))
{
return toProfileAssessmentAnswers ();
}
if (name.equals ("AppProcessOption"))
{
return toAppProcessOption ();
......@@ -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));
}
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
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;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import oneit.objstore.MessageSource;
import oneit.objstore.ObjectTransaction;
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.process.ORMProcessState;
import oneit.utils.CollectionUtils;
import oneit.utils.DateDiff;
import oneit.utils.ObjectTransform;
import oneit.utils.StringUtils;
import oneit.utils.filter.Filter;
......@@ -78,10 +85,51 @@ public class Candidate extends BaseCandidate
return errorMsg;
}
public TestAnalysis getTestAnalysisFor(Level level)
{
Filter<TestAnalysis> testAnalysisFilter = TestAnalysis.SearchByAll().andLevel(new EqualsFilter(level));
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 @@
<MULTIPLEREFERENCE name="TestAnalysises" type="TestAnalysis" 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">
......
......@@ -5,8 +5,6 @@
<BUSINESSCLASS name="CultureCriteria" package="performa.orm">
<IMPORT value="performa.orm.types.*"/>
<MULTIPLEREFERENCE name="Answers" type="CultureCriteriaAnswer" backreferenceName="CultureCriteria"/>
<TABLE name="tl_culture_criteria" tablePrefix="object" polymorphic="FALSE">
<ATTRIB name="Importance" type="Importance" dbcol="importance" attribHelper="EnumeratedAttributeHelper" mandatory="true" defaultValue="Importance.DESIRABLE"/>
......
package performa.orm;
import java.util.SortedSet;
import oneit.utils.CollectionUtils;
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
}
//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 @@
<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="JobApplication" type="JobApplication" dbcol="job_application_id" mandatory="true" backreferenceName="CultureCriteriaAnswers"/>
<SINGLEREFERENCE name="Candidate" type="Candidate" dbcol="candidate_id" mandatory="true" backreferenceName="CultureCriteriaAnswers"/>
</TABLE>
......
......@@ -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 = "";
public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
......@@ -89,9 +89,9 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr
// Check for persistent sets already prefetched
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_JobApplication))
!tl_culture_criteria_answerPSet.containsAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_Candidate))
{
// We will need to retrieve it
idsToFetch.add (id.longValue());
......@@ -137,21 +137,11 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr
{
throw new RuntimeException ();
}
else if (refName.equals (CultureCriteriaAnswer.SINGLEREFERENCE_CultureCriteria))
else if (refName.equals (CultureCriteriaAnswer.SINGLEREFERENCE_Candidate))
{
String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_culture_criteria_answer " +
"WHERE " + SELECT_JOINS + "culture_criteria_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 = ?";
"WHERE " + SELECT_JOINS + "candidate_id = ?";
BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, new Object[] { _objectID.longID () }, null, false);
......@@ -181,10 +171,10 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr
{
int rowsUpdated = executeStatement (sqlMgr,
"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 ()) + " ",
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)
{
......@@ -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(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_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
{
executeStatement (sqlMgr,
"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 " +
" ( ?, ?, ?, ?, " + 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);
}
......
......@@ -6,9 +6,6 @@ import oneit.objstore.StorageException;
import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.objstore.rdbms.filters.IsNotNullFilter;
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.Filter;
import oneit.utils.math.NullArith;
......@@ -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
{
boolean safeRedirect = false;
......@@ -93,9 +75,10 @@ public class JobApplication extends BaseJobApplication
public boolean createCultureCriteriaObjects() throws FieldException
{
boolean safeRedirect = false;
Candidate candidate = getCandidate();
//to skip culture test
if(getAlreadyCompletedApplicationForCulture()!=null)
if(cultureCompleted())
{
return safeRedirect;
}
......@@ -104,9 +87,9 @@ public class JobApplication extends BaseJobApplication
{
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;
break;
......@@ -117,8 +100,9 @@ public class JobApplication extends BaseJobApplication
{
CultureCriteriaAnswer answer = CultureCriteriaAnswer.createCultureCriteriaAnswer(getTransaction());
addToCultureCriteriaAnswers(answer);
cultureCriteria.addToAnswers(answer);
candidate.addToCultureCriteriaAnswers(answer);
answer.setCultureElement(cultureCriteria.getCultureElement());
safeRedirect = true;
}
}
......@@ -126,17 +110,12 @@ public class JobApplication extends BaseJobApplication
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
{
boolean redirect = false;
List<Question> allQuestions = new ArrayList<>();
Candidate candidate = getCandidate();
for(Question question : questions)
{
......@@ -152,7 +131,7 @@ public class JobApplication extends BaseJobApplication
{
boolean available = false;
for(Answer answer : getProfileAssessmentAnswersSet())
for(Answer answer : candidate.getProfileAssessmentAnswersSet())
{
if(question.equals(answer.getQuestion()))
{
......@@ -165,7 +144,7 @@ public class JobApplication extends BaseJobApplication
{
Answer answer = Answer.createAnswer(getTransaction());
addToProfileAssessmentAnswers(answer);
candidate.addToProfileAssessmentAnswers(answer);
answer.setQuestion(question);
redirect = true;
}
......@@ -174,11 +153,12 @@ public class JobApplication extends BaseJobApplication
return redirect;
}
public Answer getAnswerForQuestion(Question question) throws FieldException
{
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
public boolean cultureCompleted()
{
int allAnswersCount = getCultureCriteriaAnswersCount();
if(allAnswersCount == getJob().getCultureCriteriasCount())
{
Filter filter = CultureCriteriaAnswer.SearchByAll().andSelectedQuestion(new IsNotNullFilter<>());
Collection selectedAnswers = pipelineJobApplication().toCultureCriteriaAnswers(filter).vals();
return (selectedAnswers.size() == allAnswersCount);
}
return false;
return getCandidate().cultureCompleted(getJob());
}
public boolean assessmentCompleted() //role
{
int allAnswersCount = getJob().getAllLeftQuestions(Arrays.asList(Question.searchAll(getTransaction()))).size();
if(allAnswersCount > 0)
{
Filter filter = Answer.SearchByAll().andAnswerNo(new IsNotNullFilter<>());
Collection selectedAnswers = pipelineJobApplication().toProfileAssessmentAnswers(filter).vals();
return (selectedAnswers.size() >= allAnswersCount);
}
return false;
return getCandidate().assessmentCompleted(getJob());
}
public int getActualQuestionNumber()
{
return pipelineJobApplication().toProfileAssessmentAnswers().uniqueVals().size() + 1;
return getCandidate().pipelineCandidate().toProfileAssessmentAnswers().uniqueVals().size() + 1;
}
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
return getJob() != null && isTrue(getJob().getIncludeAssessmentCriteria());
}
// TODO: Fix these hard coded values
@Override
public Integer getOverallSuitability()
......@@ -276,7 +238,7 @@ public class JobApplication extends BaseJobApplication
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
}
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()
{
return getAlreadyCompletedApplicationForRole() != null ? getAlreadyCompletedApplicationForRole().getProfileAssessmentAnswersSet() : getProfileAssessmentAnswersSet();
return getCandidate().getProfileAssessmentAnswersSet();
}
public Set<FactorClass> getSortedFactorClasses()
{
Set<FactorClass> factorClasses = new LinkedHashSet<>();
......@@ -405,7 +331,7 @@ public class JobApplication extends BaseJobApplication
}
}
if(!cultureCompleted() && getAlreadyCompletedApplicationForCulture()==null)
if(!cultureCompleted())
{
remainingTime += 7;
}
......@@ -413,7 +339,7 @@ public class JobApplication extends BaseJobApplication
//ROLE
remainingTime += getRoleTestRemainingTime() ;
if(!assessmentCompleted() && getAlreadyCompletedApplicationForRole()==null)
if(!assessmentCompleted())
{
remainingTime += 6;
}
......@@ -427,7 +353,7 @@ public class JobApplication extends BaseJobApplication
{
int remainingTime = 20;
if(assessmentCompleted() || getAlreadyCompletedApplicationForRole()!=null)
if(assessmentCompleted())
{
remainingTime -= 20;
}
......@@ -438,7 +364,7 @@ public class JobApplication extends BaseJobApplication
if(allAnswersCount > 0)
{
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)
{
......
......@@ -6,8 +6,6 @@
<IMPORT value="performa.orm.types.*"/>
<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="OverallSuitability" type="Integer"/>
......
......@@ -23,7 +23,7 @@ public class TestInput extends BaseTestInput
Set<Factor> levelFactors = pipelineTestInput().toLevel().toFactors().toFactor().uniqueVals();
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 Comparator[]{CollectionUtils.DEFAULT_COMPARATOR});
}
......
......@@ -230,13 +230,13 @@ public class AnalysisEngine
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");
//Preloading data
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> maxScoreMap = new HashMap();
......@@ -247,9 +247,10 @@ public class AnalysisEngine
maxScoreMap.put(cultureClass, 0);
}
for(CultureCriteriaAnswer answer : cultureCriteriaAnswers)
{
CultureCriteria criteria = answer.getCultureCriteria();
CultureCriteria criteria = answer.getCriteriaJob(job);
if(criteria != null && criteria.getImportance() != null && criteria.getImportance() != Importance.NOT_APPLICABLE)
{
......
......@@ -148,8 +148,7 @@
</div>
<div class="tab-pane" id="2a">
<%
JobApplication completeaApp = jobApplication.getAlreadyCompletedApplicationForCulture();
Map<CultureClass, Long> cultureFitData = AnalysisEngine.getCultureFit(completeaApp!=null ? completeaApp.getCultureCriteriaAnswersSet() : jobApplication.getCultureCriteriaAnswersSet());
Map<CultureClass, Long> cultureFitData = AnalysisEngine.getCultureFit(candidate.getCultureCriteriaAnswersSet(), job);
for(CultureClass cClass: cultureFitData.keySet())
{
......
......@@ -124,6 +124,7 @@
for(JobApplication jobApplication : sortedApplications)
{
Candidate candidate = jobApplication.getCandidate();
String appID = "app-id-" + jobApplication.getID().toString();
%>
<div class="<%= "appl-c-box " + (i == 0 ? " cb-one" : "")%> ">
......@@ -137,7 +138,7 @@
<div class="checkbox-list">
<input type="checkbox" name="IsSelected" value="<%= jobApplication.getObjectID().toString() %>" id="<%= appID %>" class="applicant" >
<label for="<%= appID %>">
<oneit:toString value="<%= jobApplication.getCandidate() %>" mode="EscapeHTML" />
<oneit:toString value="<%= candidate %>" mode="EscapeHTML" />
</label>
</div>
</div>
......@@ -185,8 +186,7 @@
</div>
<div class="detail-box">
<%
JobApplication completeaApp = jobApplication.getAlreadyCompletedApplicationForCulture();
Map<CultureClass, Long> cultureFitData = AnalysisEngine.getCultureFit(completeaApp!=null ? completeaApp.getCultureCriteriaAnswersSet() : jobApplication.getCultureCriteriaAnswersSet());
Map<CultureClass, Long> cultureFitData = AnalysisEngine.getCultureFit(candidate.getCultureCriteriaAnswersSet(), job);
for(CultureClass cClass: cultureFitData.keySet())
{
......
......@@ -27,25 +27,25 @@
jobApplication = JobApplication.createNewApplication(candidate, job);
}
//to store already completed culture or role data
Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture");
Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
if(alreadyCompletedCulture==null)
{
alreadyCompletedCulture = jobApplication.getAlreadyCompletedApplicationForCulture()!=null;
process.setAttribute("AlreadyCompletedCulture", alreadyCompletedCulture);
}
if(alreadyCompletedRole==null)
{
alreadyCompletedRole = jobApplication.getAlreadyCompletedApplicationForRole()!=null;
process.setAttribute("AlreadyCompletedRole", alreadyCompletedRole);
}
// //to store already completed culture or role data
// Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture");
// Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
//
// if(alreadyCompletedCulture==null)
// {
// alreadyCompletedCulture = jobApplication.getAlreadyCompletedApplicationForCulture()!=null;
// process.setAttribute("AlreadyCompletedCulture", alreadyCompletedCulture);
// }
//
// if(alreadyCompletedRole==null)
// {
// alreadyCompletedRole = jobApplication.getAlreadyCompletedApplicationForRole()!=null;
// process.setAttribute("AlreadyCompletedRole", alreadyCompletedRole);
// }
Boolean isSelectionComplete = jobApplication.selectionCompleted();
Boolean isCultureComplete = jobApplication.cultureCompleted() || alreadyCompletedCulture;
Boolean isAssesmentComplete = jobApplication.assessmentCompleted() || alreadyCompletedRole;
Boolean isCultureComplete = jobApplication.cultureCompleted();
Boolean isAssesmentComplete = jobApplication.assessmentCompleted();
if(!jobApplication.isIncludeAssessmentCriteria())
......
......@@ -12,11 +12,11 @@
String thirdPage = WebUtils.getSamePageInRenderMode(request, "JobMatchAssessment");
boolean includeAssessment = jobApplication.isIncludeAssessmentCriteria();
Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture");
Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
// Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture");
// Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
Boolean isSelectionComplete = jobApplication.selectionCompleted(); //REQ
Boolean isCultureComplete = jobApplication.cultureCompleted() || alreadyCompletedCulture;
Boolean isAssesmentComplete = jobApplication.assessmentCompleted() || alreadyCompletedRole;
Boolean isCultureComplete = jobApplication.cultureCompleted();
Boolean isAssesmentComplete = jobApplication.assessmentCompleted();
%>
<oneit:dynIncluded>
......
......@@ -10,6 +10,7 @@
String nextPage = WebUtils.getSamePageInRenderMode(request, "SubmitApplication");
JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication");
Job job = jobApplication.getJob();
Candidate candidate = jobApplication.getCandidate();
int questionNumber = process.getAttribute("QuestionNumber")!= null ? (int) process.getAttribute("QuestionNumber") : jobApplication.getQuestionNumber();
int actualNumber = process.getAttribute("ActualNumber")!= null ? (int) process.getAttribute("ActualNumber") : jobApplication.getActualQuestionNumber();
List<Question> totalQuestions = (List<Question>) process.getAttribute("TotalQuestions");
......
......@@ -12,10 +12,10 @@
String exitPage = WebUtils.getArticleLink(request, objTran, WebUtils.APPLY_JOB, "Page");
exitPage = exitPage + "&id=" + job.getID() + "&key=" + job.getRandomKey();
Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture");
Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
Boolean isCultureComplete = jobApplication.cultureCompleted() || alreadyCompletedCulture;
Boolean isAssesmentComplete = jobApplication.assessmentCompleted() || alreadyCompletedRole;
// Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture");
// Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
Boolean isCultureComplete = jobApplication.cultureCompleted();
Boolean isAssesmentComplete = jobApplication.assessmentCompleted();
boolean toRedirect = jobApplication.createAssessmentCriteriaObjects();
if(isCultureComplete && isAssesmentComplete)
......
......@@ -10,11 +10,12 @@
String nextPage = WebUtils.getSamePageInRenderMode(request, "JobMatchAssessment");
JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication");
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();
boolean toRedirect = jobApplication.createCultureCriteriaObjects();
Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
Boolean isAssesmentComplete = jobApplication.assessmentCompleted() || alreadyCompletedRole;
// Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
Boolean isAssesmentComplete = jobApplication.assessmentCompleted();
if(isAssesmentComplete)
{
......@@ -28,7 +29,7 @@
%><%@include file="/saferedirect.jsp" %><%
}
int total = jobApplication.getCultureCriteriaAnswersCount();
int total = candidate.getCultureCriteriaAnswersCount();
boolean isLast = total == cultureQuestionNo;
if(isLast)
......@@ -36,7 +37,7 @@
cultureQuestionNo = total -1;
}
CultureCriteriaAnswer answer = jobApplication.getSortedCultureCriteriaAnswers().get(cultureQuestionNo);
CultureCriteriaAnswer answer = candidate.getSortedCultureCriteriaAnswers().get(cultureQuestionNo);
String numberText = (cultureQuestionNo + 1) + "/" + total;
process.setAttribute("JobApplication", jobApplication);
......@@ -93,7 +94,7 @@
FormTag applicationForm = FormTag.getActiveFormTag(request);
FormBuilder formBuilder = applicationForm.getFormBuilder();
CultureCriteria criteria = answer.getCultureCriteria();
CultureCriteria criteria = answer.getCriteriaJob(job);
Collection<CultureElementQuestion> questions = criteria.pipelineCultureCriteria().toCultureElement().toQuestions().vals();
String optionKey = WebUtils.getRadioSingleAssocKey(request, answer, CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion);
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