Commit c3c3aa15 by chenith Committed by Harsh Shah

Added ApplicationStatus to JobApplication.

parent fe2eee8c
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
<column name="object_last_updated_date" type="Date" nullable="false" length="22"/> <column name="object_last_updated_date" type="Date" nullable="false" length="22"/>
<column name="object_created_date" type="Date" nullable="false" length="22"/> <column name="object_created_date" type="Date" nullable="false" length="22"/>
<column name="cv" type="BLOB" nullable="false"/> <column name="cv" type="BLOB" nullable="false"/>
<column name="application_status" type="String" nullable="true" length="200"/>
<column name="candidate_id" type="Long" length="11" nullable="false"/> <column name="candidate_id" type="Long" length="11" nullable="false"/>
<column name="job_id" type="Long" length="11" nullable="false"/> <column name="job_id" type="Long" length="11" nullable="false"/>
</NODE> </NODE>
......
...@@ -9,6 +9,7 @@ CREATE TABLE tl_job_application ( ...@@ -9,6 +9,7 @@ CREATE TABLE tl_job_application (
object_created_date datetime DEFAULT getdate() NOT NULL object_created_date datetime DEFAULT getdate() NOT NULL
, ,
cv image NOT NULL, cv image NOT NULL,
application_status varchar(200) NULL,
candidate_id numeric(12) NOT NULL, candidate_id numeric(12) NOT NULL,
job_id numeric(12) NOT NULL job_id numeric(12) NOT NULL
); );
......
...@@ -10,6 +10,7 @@ CREATE TABLE tl_job_application ( ...@@ -10,6 +10,7 @@ CREATE TABLE tl_job_application (
object_created_date date DEFAULT SYSDATE NOT NULL object_created_date date DEFAULT SYSDATE NOT NULL
, ,
cv blob NOT NULL, cv blob NOT NULL,
application_status varchar2(200) NULL,
candidate_id number(12) NOT NULL, candidate_id number(12) NOT NULL,
job_id number(12) NOT NULL job_id number(12) NOT NULL
); );
......
...@@ -10,6 +10,7 @@ CREATE TABLE tl_job_application ( ...@@ -10,6 +10,7 @@ CREATE TABLE tl_job_application (
object_created_date timestamp DEFAULT NOW() NOT NULL object_created_date timestamp DEFAULT NOW() NOT NULL
, ,
cv bytea NOT NULL, cv bytea NOT NULL,
application_status varchar(200) NULL,
candidate_id numeric(12) NOT NULL, candidate_id numeric(12) NOT NULL,
job_id numeric(12) NOT NULL job_id numeric(12) NOT NULL
); );
......
...@@ -26,6 +26,8 @@ import oneit.utils.filter.Filter; ...@@ -26,6 +26,8 @@ import oneit.utils.filter.Filter;
import oneit.utils.transform.*; import oneit.utils.transform.*;
import oneit.utils.parsers.FieldException; import oneit.utils.parsers.FieldException;
import performa.orm.types.*;
public abstract class BaseJobApplication extends BaseBusinessClass public abstract class BaseJobApplication extends BaseBusinessClass
...@@ -39,6 +41,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -39,6 +41,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
// Static constants corresponding to field names // Static constants corresponding to field names
public static final String FIELD_CV = "CV"; public static final String FIELD_CV = "CV";
public static final String FIELD_ApplicationStatus = "ApplicationStatus";
public static final String SINGLEREFERENCE_Candidate = "Candidate"; public static final String SINGLEREFERENCE_Candidate = "Candidate";
public static final String BACKREF_Candidate = ""; public static final String BACKREF_Candidate = "";
public static final String SINGLEREFERENCE_Job = "Job"; public static final String SINGLEREFERENCE_Job = "Job";
...@@ -57,10 +60,12 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -57,10 +60,12 @@ public abstract class BaseJobApplication extends BaseBusinessClass
// Static constants corresponding to attribute helpers // Static constants corresponding to attribute helpers
private static final BLOBAttributeHelper HELPER_CV = BLOBAttributeHelper.INSTANCE; private static final BLOBAttributeHelper HELPER_CV = BLOBAttributeHelper.INSTANCE;
private static final EnumeratedAttributeHelper<JobApplication, ApplicationStatus> HELPER_ApplicationStatus = new EnumeratedAttributeHelper<JobApplication, ApplicationStatus> (ApplicationStatus.FACTORY_ApplicationStatus);
// Private attributes corresponding to business object data // Private attributes corresponding to business object data
private BinaryContent _CV; private BinaryContent _CV;
private ApplicationStatus _ApplicationStatus;
// Private attributes corresponding to single references // Private attributes corresponding to single references
...@@ -79,6 +84,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -79,6 +84,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
// Arrays of validators for each attribute // Arrays of validators for each attribute
private static final AttributeValidator[] FIELD_CV_Validators; private static final AttributeValidator[] FIELD_CV_Validators;
private static final AttributeValidator[] FIELD_ApplicationStatus_Validators;
// Arrays of behaviour decorators // Arrays of behaviour decorators
...@@ -103,6 +109,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -103,6 +109,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
setupAssocMetaData_Candidate(); setupAssocMetaData_Candidate();
setupAssocMetaData_Job(); setupAssocMetaData_Job();
FIELD_CV_Validators = (AttributeValidator[])setupAttribMetaData_CV(validatorMapping).toArray (new AttributeValidator[0]); FIELD_CV_Validators = (AttributeValidator[])setupAttribMetaData_CV(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_ApplicationStatus_Validators = (AttributeValidator[])setupAttribMetaData_ApplicationStatus(validatorMapping).toArray (new AttributeValidator[0]);
REFERENCE_JobApplication.initialiseReference (); REFERENCE_JobApplication.initialiseReference ();
...@@ -213,6 +220,26 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -213,6 +220,26 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return validators; return validators;
} }
// Meta Info setup
private static List setupAttribMetaData_ApplicationStatus(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("attribHelper", "EnumeratedAttributeHelper");
metaInfo.put ("dbcol", "application_status");
metaInfo.put ("defaultValue", "ApplicationStatus.DRAFT");
metaInfo.put ("name", "ApplicationStatus");
metaInfo.put ("type", "ApplicationStatus");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for JobApplication.ApplicationStatus:", metaInfo);
ATTRIBUTES_METADATA_JobApplication.put (FIELD_ApplicationStatus, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(JobApplication.class, "ApplicationStatus", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for JobApplication.ApplicationStatus:", validators);
return validators;
}
// END OF STATIC METADATA DEFINITION // END OF STATIC METADATA DEFINITION
...@@ -241,6 +268,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -241,6 +268,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_CV = (BinaryContent)(HELPER_CV.initialise (_CV)); _CV = (BinaryContent)(HELPER_CV.initialise (_CV));
_ApplicationStatus = (ApplicationStatus)(ApplicationStatus.DRAFT);
} }
...@@ -374,6 +402,104 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -374,6 +402,104 @@ public abstract class BaseJobApplication extends BaseBusinessClass
} }
} }
/**
* Get the attribute ApplicationStatus
*/
public ApplicationStatus getApplicationStatus ()
{
assertValid();
ApplicationStatus valToReturn = _ApplicationStatus;
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
valToReturn = bhd.getApplicationStatus ((JobApplication)this, valToReturn);
}
return valToReturn;
}
/**
* Called prior to the attribute changing. Subclasses need not call super. If a field exception
* is thrown, the attribute change will fail. The new value is different to the old value.
*/
protected void preApplicationStatusChange (ApplicationStatus newApplicationStatus) throws FieldException
{
}
/**
* Called after the attribute changes.
* If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back
*/
protected void postApplicationStatusChange () throws FieldException
{
}
public FieldWriteability getWriteability_ApplicationStatus ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute ApplicationStatus. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setApplicationStatus (ApplicationStatus newApplicationStatus) throws FieldException
{
boolean oldAndNewIdentical = HELPER_ApplicationStatus.compare (_ApplicationStatus, newApplicationStatus);
try
{
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
newApplicationStatus = bhd.setApplicationStatus ((JobApplication)this, newApplicationStatus);
oldAndNewIdentical = HELPER_ApplicationStatus.compare (_ApplicationStatus, newApplicationStatus);
}
if (FIELD_ApplicationStatus_Validators.length > 0)
{
Object newApplicationStatusObj = HELPER_ApplicationStatus.toObject (newApplicationStatus);
if (newApplicationStatusObj != null)
{
int loopMax = FIELD_ApplicationStatus_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_JobApplication.get (FIELD_ApplicationStatus);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_ApplicationStatus_Validators[v].checkAttribute (this, FIELD_ApplicationStatus, metadata, newApplicationStatusObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_ApplicationStatus () != FieldWriteability.FALSE, "Field ApplicationStatus is not writeable");
preApplicationStatusChange (newApplicationStatus);
markFieldChange (FIELD_ApplicationStatus);
_ApplicationStatus = newApplicationStatus;
postFieldChange (FIELD_ApplicationStatus);
postApplicationStatusChange ();
}
}
/** /**
...@@ -1283,6 +1409,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1283,6 +1409,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
tl_job_applicationPSet.setAttrib (FIELD_ObjectID, myID); tl_job_applicationPSet.setAttrib (FIELD_ObjectID, myID);
tl_job_applicationPSet.setAttrib (FIELD_CV, HELPER_CV.toObject (_CV)); // tl_job_applicationPSet.setAttrib (FIELD_CV, HELPER_CV.toObject (_CV)); //
tl_job_applicationPSet.setAttrib (FIELD_ApplicationStatus, HELPER_ApplicationStatus.toObject (_ApplicationStatus)); //
_Candidate.getPersistentSets (allSets); _Candidate.getPersistentSets (allSets);
_Job.getPersistentSets (allSets); _Job.getPersistentSets (allSets);
...@@ -1300,6 +1427,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1300,6 +1427,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
PersistentSet tl_job_applicationPSet = allSets.getPersistentSet (objectID, "tl_job_application"); PersistentSet tl_job_applicationPSet = allSets.getPersistentSet (objectID, "tl_job_application");
_CV = (BinaryContent)(HELPER_CV.fromObject (_CV, tl_job_applicationPSet.getAttrib (FIELD_CV))); // _CV = (BinaryContent)(HELPER_CV.fromObject (_CV, tl_job_applicationPSet.getAttrib (FIELD_CV))); //
_ApplicationStatus = (ApplicationStatus)(HELPER_ApplicationStatus.fromObject (_ApplicationStatus, tl_job_applicationPSet.getAttrib (FIELD_ApplicationStatus))); //
_Candidate.setFromPersistentSets (objectID, allSets); _Candidate.setFromPersistentSets (objectID, allSets);
_Job.setFromPersistentSets (objectID, allSets); _Job.setFromPersistentSets (objectID, allSets);
...@@ -1326,6 +1454,15 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1326,6 +1454,15 @@ public abstract class BaseJobApplication extends BaseBusinessClass
e.addException (ex); e.addException (ex);
} }
try
{
setApplicationStatus (otherJobApplication.getApplicationStatus ());
}
catch (FieldException ex)
{
e.addException (ex);
}
} }
} }
...@@ -1342,6 +1479,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1342,6 +1479,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
BaseJobApplication sourceJobApplication = (BaseJobApplication)(source); BaseJobApplication sourceJobApplication = (BaseJobApplication)(source);
_CV = sourceJobApplication._CV; _CV = sourceJobApplication._CV;
_ApplicationStatus = sourceJobApplication._ApplicationStatus;
} }
} }
...@@ -1404,6 +1542,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1404,6 +1542,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
super.readExternalData(vals); super.readExternalData(vals);
_CV = (BinaryContent)(HELPER_CV.readExternal (_CV, vals.get(FIELD_CV))); // _CV = (BinaryContent)(HELPER_CV.readExternal (_CV, vals.get(FIELD_CV))); //
_ApplicationStatus = (ApplicationStatus)(HELPER_ApplicationStatus.readExternal (_ApplicationStatus, vals.get(FIELD_ApplicationStatus))); //
_Candidate.readExternalData(vals.get(SINGLEREFERENCE_Candidate)); _Candidate.readExternalData(vals.get(SINGLEREFERENCE_Candidate));
_Job.readExternalData(vals.get(SINGLEREFERENCE_Job)); _Job.readExternalData(vals.get(SINGLEREFERENCE_Job));
_AssessmentCriteriaAnswers.readExternalData(vals.get(MULTIPLEREFERENCE_AssessmentCriteriaAnswers)); _AssessmentCriteriaAnswers.readExternalData(vals.get(MULTIPLEREFERENCE_AssessmentCriteriaAnswers));
...@@ -1421,6 +1560,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1421,6 +1560,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
super.writeExternalData(vals); super.writeExternalData(vals);
vals.put (FIELD_CV, HELPER_CV.writeExternal (_CV)); vals.put (FIELD_CV, HELPER_CV.writeExternal (_CV));
vals.put (FIELD_ApplicationStatus, HELPER_ApplicationStatus.writeExternal (_ApplicationStatus));
vals.put (SINGLEREFERENCE_Candidate, _Candidate.writeExternalData()); vals.put (SINGLEREFERENCE_Candidate, _Candidate.writeExternalData());
vals.put (SINGLEREFERENCE_Job, _Job.writeExternalData()); vals.put (SINGLEREFERENCE_Job, _Job.writeExternalData());
vals.put (MULTIPLEREFERENCE_AssessmentCriteriaAnswers, _AssessmentCriteriaAnswers.writeExternalData()); vals.put (MULTIPLEREFERENCE_AssessmentCriteriaAnswers, _AssessmentCriteriaAnswers.writeExternalData());
...@@ -1443,6 +1583,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1443,6 +1583,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
listener.notifyFieldChange(this, other, FIELD_CV, HELPER_CV.toObject(this._CV), HELPER_CV.toObject(otherJobApplication._CV)); listener.notifyFieldChange(this, other, FIELD_CV, HELPER_CV.toObject(this._CV), HELPER_CV.toObject(otherJobApplication._CV));
} }
if (!HELPER_ApplicationStatus.compare(this._ApplicationStatus, otherJobApplication._ApplicationStatus))
{
listener.notifyFieldChange(this, other, FIELD_ApplicationStatus, HELPER_ApplicationStatus.toObject(this._ApplicationStatus), HELPER_ApplicationStatus.toObject(otherJobApplication._ApplicationStatus));
}
// Compare single assocs // Compare single assocs
_Candidate.compare (otherJobApplication._Candidate, listener); _Candidate.compare (otherJobApplication._Candidate, listener);
...@@ -1471,6 +1615,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1471,6 +1615,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
super.visitAttributes (visitor); super.visitAttributes (visitor);
visitor.visitField(this, FIELD_CV, HELPER_CV.toObject(getCV())); visitor.visitField(this, FIELD_CV, HELPER_CV.toObject(getCV()));
visitor.visitField(this, FIELD_ApplicationStatus, HELPER_ApplicationStatus.toObject(getApplicationStatus()));
visitor.visitAssociation (_Candidate); visitor.visitAssociation (_Candidate);
visitor.visitAssociation (_Job); visitor.visitAssociation (_Job);
visitor.visitAssociation (_AssessmentCriteriaAnswers); visitor.visitAssociation (_AssessmentCriteriaAnswers);
...@@ -1533,6 +1678,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1533,6 +1678,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
return filter.matches (getCV ()); return filter.matches (getCV ());
} }
else if (attribName.equals (FIELD_ApplicationStatus))
{
return filter.matches (getApplicationStatus ());
}
else if (attribName.equals (SINGLEREFERENCE_Candidate)) else if (attribName.equals (SINGLEREFERENCE_Candidate))
{ {
return filter.matches (getCandidate ()); return filter.matches (getCandidate ());
...@@ -1578,6 +1727,12 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1578,6 +1727,12 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return this; return this;
} }
public SearchAll andApplicationStatus (QueryFilter<ApplicationStatus> filter)
{
filter.addFilter (context, "tl_job_application.application_status", "ApplicationStatus");
return this;
}
public SearchAll andCandidate (QueryFilter<Candidate> filter) public SearchAll andCandidate (QueryFilter<Candidate> filter)
{ {
filter.addFilter (context, "tl_job_application.candidate_id", "Candidate"); filter.addFilter (context, "tl_job_application.candidate_id", "Candidate");
...@@ -1659,6 +1814,12 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1659,6 +1814,12 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return this; return this;
} }
public SearchCandidateJob andApplicationStatus (QueryFilter<ApplicationStatus> filter)
{
filter.addFilter (context, "tl_job_application.application_status", "ApplicationStatus");
return this;
}
public SearchCandidateJob andCandidate (QueryFilter<Candidate> filter) public SearchCandidateJob andCandidate (QueryFilter<Candidate> filter)
{ {
filter.addFilter (context, "tl_job_application.candidate_id", "Candidate"); filter.addFilter (context, "tl_job_application.candidate_id", "Candidate");
...@@ -1710,6 +1871,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1710,6 +1871,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
return HELPER_CV.toObject (getCV ()); return HELPER_CV.toObject (getCV ());
} }
else if (attribName.equals (FIELD_ApplicationStatus))
{
return HELPER_ApplicationStatus.toObject (getApplicationStatus ());
}
else else
{ {
return super.getAttribute (attribName); return super.getAttribute (attribName);
...@@ -1727,6 +1892,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1727,6 +1892,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
return HELPER_CV; return HELPER_CV;
} }
else if (attribName.equals (FIELD_ApplicationStatus))
{
return HELPER_ApplicationStatus;
}
else else
{ {
return super.getAttributeHelper (attribName); return super.getAttributeHelper (attribName);
...@@ -1744,6 +1913,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1744,6 +1913,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
setCV ((BinaryContent)(HELPER_CV.fromObject (_CV, attribValue))); setCV ((BinaryContent)(HELPER_CV.fromObject (_CV, attribValue)));
} }
else if (attribName.equals (FIELD_ApplicationStatus))
{
setApplicationStatus ((ApplicationStatus)(HELPER_ApplicationStatus.fromObject (_ApplicationStatus, attribValue)));
}
else else
{ {
super.setAttribute (attribName, attribValue); super.setAttribute (attribName, attribValue);
...@@ -1768,6 +1941,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1768,6 +1941,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
return getWriteability_CV (); return getWriteability_CV ();
} }
else if (fieldName.equals (FIELD_ApplicationStatus))
{
return getWriteability_ApplicationStatus ();
}
else if (fieldName.equals (MULTIPLEREFERENCE_AssessmentCriteriaAnswers)) else if (fieldName.equals (MULTIPLEREFERENCE_AssessmentCriteriaAnswers))
{ {
return getWriteability_AssessmentCriteriaAnswers (); return getWriteability_AssessmentCriteriaAnswers ();
...@@ -1803,6 +1980,11 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1803,6 +1980,11 @@ public abstract class BaseJobApplication extends BaseBusinessClass
fields.add (FIELD_CV); fields.add (FIELD_CV);
} }
if (getWriteability_ApplicationStatus () != FieldWriteability.TRUE)
{
fields.add (FIELD_ApplicationStatus);
}
super.putUnwriteable (fields); super.putUnwriteable (fields);
} }
...@@ -1813,6 +1995,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1813,6 +1995,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
result.add(HELPER_CV.getAttribObject (getClass (), _CV, true, FIELD_CV)); result.add(HELPER_CV.getAttribObject (getClass (), _CV, true, FIELD_CV));
result.add(HELPER_ApplicationStatus.getAttribObject (getClass (), _ApplicationStatus, false, FIELD_ApplicationStatus));
return result; return result;
} }
...@@ -1899,6 +2082,24 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1899,6 +2082,24 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return newCV; return newCV;
} }
/**
* Get the attribute ApplicationStatus
*/
public ApplicationStatus getApplicationStatus (JobApplication obj, ApplicationStatus original)
{
return original;
}
/**
* Change the value set for attribute ApplicationStatus.
* May modify the field beforehand
* Occurs before validation.
*/
public ApplicationStatus setApplicationStatus (JobApplication obj, ApplicationStatus newApplicationStatus) throws FieldException
{
return newApplicationStatus;
}
} }
...@@ -1967,6 +2168,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1967,6 +2168,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
return toCV (); return toCV ();
} }
if (name.equals ("ApplicationStatus"))
{
return toApplicationStatus ();
}
if (name.equals ("Candidate")) if (name.equals ("Candidate"))
{ {
return toCandidate (); return toCandidate ();
...@@ -1982,6 +2187,8 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1982,6 +2187,8 @@ public abstract class BaseJobApplication extends BaseBusinessClass
public PipeLine<From, BinaryContent> toCV () { return pipe(new ORMAttributePipe<Me, BinaryContent>(FIELD_CV)); } public PipeLine<From, BinaryContent> toCV () { return pipe(new ORMAttributePipe<Me, BinaryContent>(FIELD_CV)); }
public PipeLine<From, ApplicationStatus> toApplicationStatus () { return pipe(new ORMAttributePipe<Me, ApplicationStatus>(FIELD_ApplicationStatus)); }
public Candidate.CandidatePipeLineFactory<From, Candidate> toCandidate () { return toCandidate (Filter.ALL); } public Candidate.CandidatePipeLineFactory<From, Candidate> toCandidate () { return toCandidate (Filter.ALL); }
public Candidate.CandidatePipeLineFactory<From, Candidate> toCandidate (Filter<Candidate> filter) public Candidate.CandidatePipeLineFactory<From, Candidate> toCandidate (Filter<Candidate> filter)
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
<ROOT xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='http://www.oneit.com.au/schemas/5.2/BusinessObject.xsd'> <ROOT xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='http://www.oneit.com.au/schemas/5.2/BusinessObject.xsd'>
<BUSINESSCLASS name="JobApplication" package="performa.orm"> <BUSINESSCLASS name="JobApplication" package="performa.orm">
<IMPORT value="performa.orm.types.*"/>
<MULTIPLEREFERENCE name="AssessmentCriteriaAnswers" type="AssessmentCriteriaAnswer" backreferenceName="JobApplication" /> <MULTIPLEREFERENCE name="AssessmentCriteriaAnswers" type="AssessmentCriteriaAnswer" backreferenceName="JobApplication" />
<MULTIPLEREFERENCE name="CultureCriteriaAnswers" type="CultureCriteriaAnswer" backreferenceName="JobApplication" /> <MULTIPLEREFERENCE name="CultureCriteriaAnswers" type="CultureCriteriaAnswer" backreferenceName="JobApplication" />
...@@ -11,6 +12,7 @@ ...@@ -11,6 +12,7 @@
<TABLE name="tl_job_application" tablePrefix="object" polymorphic="FALSE"> <TABLE name="tl_job_application" tablePrefix="object" polymorphic="FALSE">
<ATTRIB name="CV" type="BinaryContent" dbcol="cv" binaryHandler="loggedin" attribHelper="BLOBAttributeHelper" attribHelperInstance="BLOBAttributeHelper.INSTANCE" mandatory="true"/> <ATTRIB name="CV" type="BinaryContent" dbcol="cv" binaryHandler="loggedin" attribHelper="BLOBAttributeHelper" attribHelperInstance="BLOBAttributeHelper.INSTANCE" mandatory="true"/>
<ATTRIB name="ApplicationStatus" type="ApplicationStatus" dbcol="application_status" attribHelper="EnumeratedAttributeHelper" defaultValue="ApplicationStatus.DRAFT"/>
<SINGLEREFERENCE name="Candidate" type="Candidate" dbcol="candidate_id" backreferenceName="JobApplications" mandatory="true"/> <SINGLEREFERENCE name="Candidate" type="Candidate" dbcol="candidate_id" backreferenceName="JobApplications" mandatory="true"/>
<SINGLEREFERENCE name="Job" type="Job" dbcol="job_id" backreferenceName="JobApplications" mandatory="true"/> <SINGLEREFERENCE name="Job" type="Job" dbcol="job_id" backreferenceName="JobApplications" mandatory="true"/>
......
...@@ -14,6 +14,7 @@ import oneit.sql.*; ...@@ -14,6 +14,7 @@ import oneit.sql.*;
import oneit.utils.resource.*; import oneit.utils.resource.*;
import oneit.utils.*; import oneit.utils.*;
import oneit.utils.threading.*; import oneit.utils.threading.*;
import performa.orm.types.*;
...@@ -27,10 +28,12 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr ...@@ -27,10 +28,12 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
// Private attributes corresponding to business object data // Private attributes corresponding to business object data
private BinaryContent dummyCV; private BinaryContent dummyCV;
private ApplicationStatus dummyApplicationStatus;
// Static constants corresponding to attribute helpers // Static constants corresponding to attribute helpers
private static final BLOBAttributeHelper HELPER_CV = BLOBAttributeHelper.INSTANCE; private static final BLOBAttributeHelper HELPER_CV = BLOBAttributeHelper.INSTANCE;
private static final EnumeratedAttributeHelper HELPER_ApplicationStatus = new EnumeratedAttributeHelper (ApplicationStatus.FACTORY_ApplicationStatus);
...@@ -38,10 +41,11 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr ...@@ -38,10 +41,11 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
public JobApplicationPersistenceMgr () public JobApplicationPersistenceMgr ()
{ {
dummyCV = (BinaryContent)(HELPER_CV.initialise (dummyCV)); dummyCV = (BinaryContent)(HELPER_CV.initialise (dummyCV));
dummyApplicationStatus = (ApplicationStatus)(HELPER_ApplicationStatus.initialise (dummyApplicationStatus));
} }
private String SELECT_COLUMNS = "{PREFIX}tl_job_application.object_id as id, {PREFIX}tl_job_application.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_job_application.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_job_application.cv, {PREFIX}tl_job_application.candidate_id, {PREFIX}tl_job_application.job_id, 1 AS commasafe "; private String SELECT_COLUMNS = "{PREFIX}tl_job_application.object_id as id, {PREFIX}tl_job_application.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_job_application.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_job_application.cv, {PREFIX}tl_job_application.application_status, {PREFIX}tl_job_application.candidate_id, {PREFIX}tl_job_application.job_id, 1 AS commasafe ";
private String SELECT_JOINS = ""; private String SELECT_JOINS = "";
public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
...@@ -93,6 +97,7 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr ...@@ -93,6 +97,7 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
// Check for persistent sets already prefetched // Check for persistent sets already prefetched
if (false || !tl_job_applicationPSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) || if (false || !tl_job_applicationPSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) ||
!tl_job_applicationPSet.containsAttrib(JobApplication.FIELD_CV)|| !tl_job_applicationPSet.containsAttrib(JobApplication.FIELD_CV)||
!tl_job_applicationPSet.containsAttrib(JobApplication.FIELD_ApplicationStatus)||
!tl_job_applicationPSet.containsAttrib(JobApplication.SINGLEREFERENCE_Candidate)|| !tl_job_applicationPSet.containsAttrib(JobApplication.SINGLEREFERENCE_Candidate)||
!tl_job_applicationPSet.containsAttrib(JobApplication.SINGLEREFERENCE_Job)) !tl_job_applicationPSet.containsAttrib(JobApplication.SINGLEREFERENCE_Job))
{ {
...@@ -184,10 +189,10 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr ...@@ -184,10 +189,10 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
{ {
int rowsUpdated = executeStatement (sqlMgr, int rowsUpdated = executeStatement (sqlMgr,
"UPDATE {PREFIX}tl_job_application " + "UPDATE {PREFIX}tl_job_application " +
"SET cv = ?, candidate_id = ? , job_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " + "SET cv = ?, application_status = ?, candidate_id = ? , job_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"WHERE tl_job_application.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ", "WHERE tl_job_application.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ",
CollectionUtils.listEntry (HELPER_CV.getForSQL(dummyCV, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_CV))).listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Candidate)))).listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Job)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray()); CollectionUtils.listEntry (HELPER_CV.getForSQL(dummyCV, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_CV))).listEntry (HELPER_ApplicationStatus.getForSQL(dummyApplicationStatus, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_ApplicationStatus))).listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Candidate)))).listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Job)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
if (rowsUpdated != 1) if (rowsUpdated != 1)
{ {
...@@ -510,6 +515,7 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr ...@@ -510,6 +515,7 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
tl_job_applicationPSet.setAttrib(BaseBusinessClass.FIELD_ObjectCreated, r.getTimestamp ("CREATED_DATE")); tl_job_applicationPSet.setAttrib(BaseBusinessClass.FIELD_ObjectCreated, r.getTimestamp ("CREATED_DATE"));
tl_job_applicationPSet.setAttrib(JobApplication.FIELD_CV, HELPER_CV.getFromRS(dummyCV, r, "cv")); tl_job_applicationPSet.setAttrib(JobApplication.FIELD_CV, HELPER_CV.getFromRS(dummyCV, r, "cv"));
tl_job_applicationPSet.setAttrib(JobApplication.FIELD_ApplicationStatus, HELPER_ApplicationStatus.getFromRS(dummyApplicationStatus, r, "application_status"));
tl_job_applicationPSet.setAttrib(JobApplication.SINGLEREFERENCE_Candidate, r.getObject ("candidate_id")); tl_job_applicationPSet.setAttrib(JobApplication.SINGLEREFERENCE_Candidate, r.getObject ("candidate_id"));
tl_job_applicationPSet.setAttrib(JobApplication.SINGLEREFERENCE_Job, r.getObject ("job_id")); tl_job_applicationPSet.setAttrib(JobApplication.SINGLEREFERENCE_Job, r.getObject ("job_id"));
...@@ -529,10 +535,10 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr ...@@ -529,10 +535,10 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
{ {
executeStatement (sqlMgr, executeStatement (sqlMgr,
"INSERT INTO {PREFIX}tl_job_application " + "INSERT INTO {PREFIX}tl_job_application " +
" (cv, candidate_id, job_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " + " (cv, application_status, candidate_id, job_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " +
"VALUES " + "VALUES " +
" (?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")", " (?, ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")",
CollectionUtils.listEntry (HELPER_CV.getForSQL(dummyCV, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_CV))) .listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Candidate)))).listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Job)))) .listEntry (objectID.longID ()).toList().toArray()); CollectionUtils.listEntry (HELPER_CV.getForSQL(dummyCV, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_CV))).listEntry (HELPER_ApplicationStatus.getForSQL(dummyApplicationStatus, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_ApplicationStatus))) .listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Candidate)))).listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Job)))) .listEntry (objectID.longID ()).toList().toArray());
tl_job_applicationPSet.setStatus (PersistentSetStatus.PROCESSED); tl_job_applicationPSet.setStatus (PersistentSetStatus.PROCESSED);
} }
......
package performa.orm.types;
import java.util.*;
import oneit.utils.*;
/**
* This class was generated using constGen.bat.
* DO NOT MODIFY THIS CODE.
* Edit the associated .xml file, and regenerate this file
* constGen (directory) (file minus extension)
* e.g. constGen C:\...\sql FieldType
*/
public class ApplicationStatus extends AbstractEnumerated
{
public static final EnumeratedFactory FACTORY_ApplicationStatus = new ApplicationStatusFactory();
public static final ApplicationStatus DRAFT = new ApplicationStatus ("DRAFT", "DRAFT", "Draft", false);
public static final ApplicationStatus SUBMITTED = new ApplicationStatus ("SUBMITTED", "SUBMITTED", "Submitted", false);
private static final ApplicationStatus[] allApplicationStatuss =
new ApplicationStatus[] { DRAFT,SUBMITTED};
private static ApplicationStatus[] getAllApplicationStatuss ()
{
return allApplicationStatuss;
}
private ApplicationStatus (String name, String value, String description, boolean disabled)
{
super (name, value, description, disabled);
}
public static final Comparator COMPARE_BY_POSITION = new CompareEnumByPosition (allApplicationStatuss);
static
{
defineAdditionalData ();
}
public boolean isEqual (ApplicationStatus other)
{
return this.name.equals (other.name);
}
public Enumeration getAllInstances ()
{
return ApplicationStatus.getAll ();
}
private Object readResolve() throws java.io.ObjectStreamException
{
return ApplicationStatus.forName (this.name);
}
public EnumeratedFactory getFactory ()
{
return FACTORY_ApplicationStatus;
}
public static ApplicationStatus forName (String name)
{
if (name == null) { return null; }
ApplicationStatus[] all = getAllApplicationStatuss();
int enumIndex = AbstractEnumerated.getIndexForName (all, name);
return all[enumIndex];
}
public static ApplicationStatus forValue (String value)
{
if (value == null) { return null; }
ApplicationStatus[] all = getAllApplicationStatuss();
int enumIndex = AbstractEnumerated.getIndexForValue (getAllApplicationStatuss (), value);
return all[enumIndex];
}
public static java.util.Enumeration getAll ()
{
return AbstractEnumerated.getAll (getAllApplicationStatuss());
}
public static ApplicationStatus[] getApplicationStatusArray ()
{
return (ApplicationStatus[])getAllApplicationStatuss().clone ();
}
public static void defineAdditionalData ()
{
}
static class ApplicationStatusFactory implements EnumeratedFactory
{
public AbstractEnumerated getForName (String name)
{
return ApplicationStatus.forName (name);
}
public AbstractEnumerated getForValue (String name)
{
return ApplicationStatus.forValue (name);
}
public Enumeration getAll ()
{
return ApplicationStatus.getAll ();
}
}
public Map getAdditionalAttributes ()
{
Map attribs = new HashMap ();
return attribs;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<CONSTANT package="performa.orm.types" name="ApplicationStatus">
<VALUE name="DRAFT" value="DRAFT" description="Draft"/>
<VALUE name="SUBMITTED" value="SUBMITTED" description="Submitted"/>
</CONSTANT>
</ROOT>
\ 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_job_application</tableName>
<column name="application_status" type="String" nullable="true" length="200"/>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment