Commit 05cd3958 by chenith Committed by Harsh Shah

Updated job applications sorting by rank.

parent 308a11cd
......@@ -45,6 +45,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
public static final String FIELD_SubmittedDate = "SubmittedDate";
public static final String FIELD_IsSelected = "IsSelected";
public static final String FIELD_AppProcessOption = "AppProcessOption";
public static final String FIELD_OverallSuitability = "OverallSuitability";
public static final String SINGLEREFERENCE_Candidate = "Candidate";
public static final String BACKREF_Candidate = "";
public static final String SINGLEREFERENCE_Job = "Job";
......@@ -67,6 +68,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
private static final DefaultAttributeHelper<JobApplication> HELPER_SubmittedDate = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<JobApplication> HELPER_IsSelected = DefaultAttributeHelper.INSTANCE;
private static final EnumeratedAttributeHelper<JobApplication, AppProcessOption> HELPER_AppProcessOption = new EnumeratedAttributeHelper<JobApplication, AppProcessOption> (AppProcessOption.FACTORY_AppProcessOption);
private static final DefaultAttributeHelper<JobApplication> HELPER_OverallSuitability = DefaultAttributeHelper.INSTANCE;
// Private attributes corresponding to business object data
......@@ -75,6 +77,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
private Date _SubmittedDate;
private Boolean _IsSelected;
private AppProcessOption _AppProcessOption;
private Integer _OverallSuitability;
// Private attributes corresponding to single references
......@@ -94,6 +97,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
// Arrays of validators for each attribute
private static final AttributeValidator[] FIELD_IsSelected_Validators;
private static final AttributeValidator[] FIELD_AppProcessOption_Validators;
private static final AttributeValidator[] FIELD_OverallSuitability_Validators;
private static final AttributeValidator[] FIELD_CV_Validators;
private static final AttributeValidator[] FIELD_ApplicationStatus_Validators;
private static final AttributeValidator[] FIELD_SubmittedDate_Validators;
......@@ -122,6 +126,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
setupAssocMetaData_Job();
FIELD_IsSelected_Validators = (AttributeValidator[])setupAttribMetaData_IsSelected(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_AppProcessOption_Validators = (AttributeValidator[])setupAttribMetaData_AppProcessOption(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_OverallSuitability_Validators = (AttributeValidator[])setupAttribMetaData_OverallSuitability(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]);
FIELD_SubmittedDate_Validators = (AttributeValidator[])setupAttribMetaData_SubmittedDate(validatorMapping).toArray (new AttributeValidator[0]);
......@@ -250,6 +255,23 @@ public abstract class BaseJobApplication extends BaseBusinessClass
}
// Meta Info setup
private static List setupAttribMetaData_OverallSuitability(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("name", "OverallSuitability");
metaInfo.put ("type", "Integer");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for JobApplication.OverallSuitability:", metaInfo);
ATTRIBUTES_METADATA_JobApplication.put (FIELD_OverallSuitability, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(JobApplication.class, "OverallSuitability", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for JobApplication.OverallSuitability:", validators);
return validators;
}
// Meta Info setup
private static List setupAttribMetaData_CV(Map validatorMapping)
{
Map metaInfo = new HashMap ();
......@@ -341,6 +363,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_SubmittedDate = (Date)(HELPER_SubmittedDate.initialise (_SubmittedDate));
_IsSelected = (Boolean)(Boolean.FALSE);
_AppProcessOption = (AppProcessOption)(HELPER_AppProcessOption.initialise (_AppProcessOption));
_OverallSuitability = (Integer)(HELPER_OverallSuitability.initialise (_OverallSuitability));
}
......@@ -865,6 +888,104 @@ public abstract class BaseJobApplication extends BaseBusinessClass
}
}
/**
* Get the attribute OverallSuitability
*/
public Integer getOverallSuitability ()
{
assertValid();
Integer valToReturn = _OverallSuitability;
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
valToReturn = bhd.getOverallSuitability ((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 preOverallSuitabilityChange (Integer newOverallSuitability) 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 postOverallSuitabilityChange () throws FieldException
{
}
public FieldWriteability getWriteability_OverallSuitability ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute OverallSuitability. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setOverallSuitability (Integer newOverallSuitability) throws FieldException
{
boolean oldAndNewIdentical = HELPER_OverallSuitability.compare (_OverallSuitability, newOverallSuitability);
try
{
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
newOverallSuitability = bhd.setOverallSuitability ((JobApplication)this, newOverallSuitability);
oldAndNewIdentical = HELPER_OverallSuitability.compare (_OverallSuitability, newOverallSuitability);
}
if (FIELD_OverallSuitability_Validators.length > 0)
{
Object newOverallSuitabilityObj = HELPER_OverallSuitability.toObject (newOverallSuitability);
if (newOverallSuitabilityObj != null)
{
int loopMax = FIELD_OverallSuitability_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_JobApplication.get (FIELD_OverallSuitability);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_OverallSuitability_Validators[v].checkAttribute (this, FIELD_OverallSuitability, metadata, newOverallSuitabilityObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_OverallSuitability () != FieldWriteability.FALSE, "Field OverallSuitability is not writeable");
preOverallSuitabilityChange (newOverallSuitability);
markFieldChange (FIELD_OverallSuitability);
_OverallSuitability = newOverallSuitability;
postFieldChange (FIELD_OverallSuitability);
postOverallSuitabilityChange ();
}
}
/**
......@@ -1859,6 +1980,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_SubmittedDate = sourceJobApplication._SubmittedDate;
_IsSelected = sourceJobApplication._IsSelected;
_AppProcessOption = sourceJobApplication._AppProcessOption;
_OverallSuitability = sourceJobApplication._OverallSuitability;
}
}
......@@ -1925,6 +2047,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_SubmittedDate = (Date)(HELPER_SubmittedDate.readExternal (_SubmittedDate, vals.get(FIELD_SubmittedDate))); //
_IsSelected = (Boolean)(HELPER_IsSelected.readExternal (_IsSelected, vals.get(FIELD_IsSelected))); //
_AppProcessOption = (AppProcessOption)(HELPER_AppProcessOption.readExternal (_AppProcessOption, vals.get(FIELD_AppProcessOption))); //
_OverallSuitability = (Integer)(HELPER_OverallSuitability.readExternal (_OverallSuitability, vals.get(FIELD_OverallSuitability))); //
_Candidate.readExternalData(vals.get(SINGLEREFERENCE_Candidate));
_Job.readExternalData(vals.get(SINGLEREFERENCE_Job));
_AssessmentCriteriaAnswers.readExternalData(vals.get(MULTIPLEREFERENCE_AssessmentCriteriaAnswers));
......@@ -1946,6 +2069,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
vals.put (FIELD_SubmittedDate, HELPER_SubmittedDate.writeExternal (_SubmittedDate));
vals.put (FIELD_IsSelected, HELPER_IsSelected.writeExternal (_IsSelected));
vals.put (FIELD_AppProcessOption, HELPER_AppProcessOption.writeExternal (_AppProcessOption));
vals.put (FIELD_OverallSuitability, HELPER_OverallSuitability.writeExternal (_OverallSuitability));
vals.put (SINGLEREFERENCE_Candidate, _Candidate.writeExternalData());
vals.put (SINGLEREFERENCE_Job, _Job.writeExternalData());
vals.put (MULTIPLEREFERENCE_AssessmentCriteriaAnswers, _AssessmentCriteriaAnswers.writeExternalData());
......@@ -1997,6 +2121,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
visitor.visitField(this, FIELD_IsSelected, HELPER_IsSelected.toObject(getIsSelected()));
visitor.visitField(this, FIELD_AppProcessOption, HELPER_AppProcessOption.toObject(getAppProcessOption()));
visitor.visitField(this, FIELD_OverallSuitability, HELPER_OverallSuitability.toObject(getOverallSuitability()));
}
......@@ -2295,6 +2420,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
return HELPER_AppProcessOption.toObject (getAppProcessOption ());
}
else if (attribName.equals (FIELD_OverallSuitability))
{
return HELPER_OverallSuitability.toObject (getOverallSuitability ());
}
else
{
return super.getAttribute (attribName);
......@@ -2328,6 +2457,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
return HELPER_AppProcessOption;
}
else if (attribName.equals (FIELD_OverallSuitability))
{
return HELPER_OverallSuitability;
}
else
{
return super.getAttributeHelper (attribName);
......@@ -2361,6 +2494,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
setAppProcessOption ((AppProcessOption)(HELPER_AppProcessOption.fromObject (_AppProcessOption, attribValue)));
}
else if (attribName.equals (FIELD_OverallSuitability))
{
setOverallSuitability ((Integer)(HELPER_OverallSuitability.fromObject (_OverallSuitability, attribValue)));
}
else
{
super.setAttribute (attribName, attribValue);
......@@ -2421,6 +2558,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
return getWriteability_AppProcessOption ();
}
else if (fieldName.equals (FIELD_OverallSuitability))
{
return getWriteability_OverallSuitability ();
}
else
{
return super.getWriteable (fieldName);
......@@ -2456,6 +2597,11 @@ public abstract class BaseJobApplication extends BaseBusinessClass
fields.add (FIELD_AppProcessOption);
}
if (getWriteability_OverallSuitability () != FieldWriteability.TRUE)
{
fields.add (FIELD_OverallSuitability);
}
super.putUnwriteable (fields);
}
......@@ -2470,6 +2616,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
result.add(HELPER_SubmittedDate.getAttribObject (getClass (), _SubmittedDate, false, FIELD_SubmittedDate));
result.add(HELPER_IsSelected.getAttribObject (getClass (), _IsSelected, false, FIELD_IsSelected));
result.add(HELPER_AppProcessOption.getAttribObject (getClass (), _AppProcessOption, false, FIELD_AppProcessOption));
result.add(HELPER_OverallSuitability.getAttribObject (getClass (), _OverallSuitability, false, FIELD_OverallSuitability));
return result;
}
......@@ -2628,6 +2775,24 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return newAppProcessOption;
}
/**
* Get the attribute OverallSuitability
*/
public Integer getOverallSuitability (JobApplication obj, Integer original)
{
return original;
}
/**
* Change the value set for attribute OverallSuitability.
* May modify the field beforehand
* Occurs before validation.
*/
public Integer setOverallSuitability (JobApplication obj, Integer newOverallSuitability) throws FieldException
{
return newOverallSuitability;
}
}
......@@ -2700,6 +2865,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
return toAppProcessOption ();
}
if (name.equals ("OverallSuitability"))
{
return toOverallSuitability ();
}
if (name.equals ("CV"))
{
return toCV ();
......@@ -2730,6 +2899,8 @@ public abstract class BaseJobApplication extends BaseBusinessClass
public PipeLine<From, AppProcessOption> toAppProcessOption () { return pipe(new ORMAttributePipe<Me, AppProcessOption>(FIELD_AppProcessOption)); }
public PipeLine<From, Integer> toOverallSuitability () { return pipe(new ORMAttributePipe<Me, Integer>(FIELD_OverallSuitability)); }
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)); }
......@@ -2781,6 +2952,11 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return true;
}
if(CollectionUtils.equals(attribName, "OverallSuitability"))
{
return true;
}
return super.isTransientAttrib(attribName);
}
......
......@@ -165,7 +165,8 @@ public class JobApplication extends BaseJobApplication
}
// TODO: Fix these hard coded values
public int getOverallSuitability()
@Override
public Integer getOverallSuitability()
{
return 85;
}
......
......@@ -11,6 +11,7 @@
<TRANSIENT name="IsSelected" type="Boolean" defaultValue="Boolean.FALSE"/>
<TRANSIENT name="AppProcessOption" type="AppProcessOption" attribHelper="EnumeratedAttributeHelper"/>
<TRANSIENT name="OverallSuitability" type="Integer"/>
<TABLE name="tl_job_application" tablePrefix="object" polymorphic="FALSE">
......
......@@ -148,12 +148,11 @@ public class Utils
transform = JobApplication.pipesJobApplication().toSubmittedDate();
comparator = CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR);
}
// TODO : sort by rank
// else if(appSortOption==AppSortOption.RANK)
// {
// transform = JobApplication.pipesJobApplication().toSubmittedDate();
// comparator = CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR);
// }
else if(appSortOption==AppSortOption.RANK)
{
transform = JobApplication.pipesJobApplication().toOverallSuitability();
comparator = CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR);
}
else if(appSortOption==AppSortOption.ALPHA_A_Z)
{
transform = JobApplication.pipesJobApplication().toCandidate().toUser().toFirstName();
......
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