Commit f562b95f by Harsh Shah

Application ranking logic, Role Fit graph issue sorted

parent 5d25e9da
...@@ -71,6 +71,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -71,6 +71,7 @@ public abstract class BaseJob extends BaseBusinessClass
public static final String FIELD_AssessmentTemplateName = "AssessmentTemplateName"; public static final String FIELD_AssessmentTemplateName = "AssessmentTemplateName";
public static final String FIELD_CultureTemplateName = "CultureTemplateName"; public static final String FIELD_CultureTemplateName = "CultureTemplateName";
public static final String FIELD_AppProcessOption = "AppProcessOption"; public static final String FIELD_AppProcessOption = "AppProcessOption";
public static final String FIELD_RankingCompleted = "RankingCompleted";
public static final String SINGLEREFERENCE_AssessmentTemplate = "AssessmentTemplate"; public static final String SINGLEREFERENCE_AssessmentTemplate = "AssessmentTemplate";
public static final String SINGLEREFERENCE_CultureTemplate = "CultureTemplate"; public static final String SINGLEREFERENCE_CultureTemplate = "CultureTemplate";
public static final String SINGLEREFERENCE_JobTemplate = "JobTemplate"; public static final String SINGLEREFERENCE_JobTemplate = "JobTemplate";
...@@ -116,6 +117,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -116,6 +117,7 @@ public abstract class BaseJob extends BaseBusinessClass
private static final DefaultAttributeHelper<Job> HELPER_AssessmentTemplateName = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper<Job> HELPER_AssessmentTemplateName = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<Job> HELPER_CultureTemplateName = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper<Job> HELPER_CultureTemplateName = DefaultAttributeHelper.INSTANCE;
private static final EnumeratedAttributeHelper<Job, AppProcessOption> HELPER_AppProcessOption = new EnumeratedAttributeHelper<Job, AppProcessOption> (AppProcessOption.FACTORY_AppProcessOption); private static final EnumeratedAttributeHelper<Job, AppProcessOption> HELPER_AppProcessOption = new EnumeratedAttributeHelper<Job, AppProcessOption> (AppProcessOption.FACTORY_AppProcessOption);
private static final DefaultAttributeHelper<Job> HELPER_RankingCompleted = DefaultAttributeHelper.INSTANCE;
// Private attributes corresponding to business object data // Private attributes corresponding to business object data
...@@ -146,6 +148,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -146,6 +148,7 @@ public abstract class BaseJob extends BaseBusinessClass
private String _AssessmentTemplateName; private String _AssessmentTemplateName;
private String _CultureTemplateName; private String _CultureTemplateName;
private AppProcessOption _AppProcessOption; private AppProcessOption _AppProcessOption;
private Boolean _RankingCompleted;
// Private attributes corresponding to single references // Private attributes corresponding to single references
...@@ -178,6 +181,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -178,6 +181,7 @@ public abstract class BaseJob extends BaseBusinessClass
private static final AttributeValidator[] FIELD_AssessmentTemplateName_Validators; private static final AttributeValidator[] FIELD_AssessmentTemplateName_Validators;
private static final AttributeValidator[] FIELD_CultureTemplateName_Validators; private static final AttributeValidator[] FIELD_CultureTemplateName_Validators;
private static final AttributeValidator[] FIELD_AppProcessOption_Validators; private static final AttributeValidator[] FIELD_AppProcessOption_Validators;
private static final AttributeValidator[] FIELD_RankingCompleted_Validators;
private static final AttributeValidator[] FIELD_JobTitle_Validators; private static final AttributeValidator[] FIELD_JobTitle_Validators;
private static final AttributeValidator[] FIELD_JobDescription_Validators; private static final AttributeValidator[] FIELD_JobDescription_Validators;
private static final AttributeValidator[] FIELD_JobStatus_Validators; private static final AttributeValidator[] FIELD_JobStatus_Validators;
...@@ -229,6 +233,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -229,6 +233,7 @@ public abstract class BaseJob extends BaseBusinessClass
FIELD_AssessmentTemplateName_Validators = (AttributeValidator[])setupAttribMetaData_AssessmentTemplateName(validatorMapping).toArray (new AttributeValidator[0]); FIELD_AssessmentTemplateName_Validators = (AttributeValidator[])setupAttribMetaData_AssessmentTemplateName(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_CultureTemplateName_Validators = (AttributeValidator[])setupAttribMetaData_CultureTemplateName(validatorMapping).toArray (new AttributeValidator[0]); FIELD_CultureTemplateName_Validators = (AttributeValidator[])setupAttribMetaData_CultureTemplateName(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_AppProcessOption_Validators = (AttributeValidator[])setupAttribMetaData_AppProcessOption(validatorMapping).toArray (new AttributeValidator[0]); FIELD_AppProcessOption_Validators = (AttributeValidator[])setupAttribMetaData_AppProcessOption(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_RankingCompleted_Validators = (AttributeValidator[])setupAttribMetaData_RankingCompleted(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_JobTitle_Validators = (AttributeValidator[])setupAttribMetaData_JobTitle(validatorMapping).toArray (new AttributeValidator[0]); FIELD_JobTitle_Validators = (AttributeValidator[])setupAttribMetaData_JobTitle(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_JobDescription_Validators = (AttributeValidator[])setupAttribMetaData_JobDescription(validatorMapping).toArray (new AttributeValidator[0]); FIELD_JobDescription_Validators = (AttributeValidator[])setupAttribMetaData_JobDescription(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_JobStatus_Validators = (AttributeValidator[])setupAttribMetaData_JobStatus(validatorMapping).toArray (new AttributeValidator[0]); FIELD_JobStatus_Validators = (AttributeValidator[])setupAttribMetaData_JobStatus(validatorMapping).toArray (new AttributeValidator[0]);
...@@ -581,6 +586,23 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -581,6 +586,23 @@ public abstract class BaseJob extends BaseBusinessClass
} }
// Meta Info setup // Meta Info setup
private static List setupAttribMetaData_RankingCompleted(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("name", "RankingCompleted");
metaInfo.put ("type", "Boolean");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for Job.RankingCompleted:", metaInfo);
ATTRIBUTES_METADATA_Job.put (FIELD_RankingCompleted, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(Job.class, "RankingCompleted", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for Job.RankingCompleted:", validators);
return validators;
}
// Meta Info setup
private static List setupAttribMetaData_JobTitle(Map validatorMapping) private static List setupAttribMetaData_JobTitle(Map validatorMapping)
{ {
Map metaInfo = new HashMap (); Map metaInfo = new HashMap ();
...@@ -925,6 +947,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -925,6 +947,7 @@ public abstract class BaseJob extends BaseBusinessClass
_AssessmentTemplateName = (String)(HELPER_AssessmentTemplateName.initialise (_AssessmentTemplateName)); _AssessmentTemplateName = (String)(HELPER_AssessmentTemplateName.initialise (_AssessmentTemplateName));
_CultureTemplateName = (String)(HELPER_CultureTemplateName.initialise (_CultureTemplateName)); _CultureTemplateName = (String)(HELPER_CultureTemplateName.initialise (_CultureTemplateName));
_AppProcessOption = (AppProcessOption)(HELPER_AppProcessOption.initialise (_AppProcessOption)); _AppProcessOption = (AppProcessOption)(HELPER_AppProcessOption.initialise (_AppProcessOption));
_RankingCompleted = (Boolean)(HELPER_RankingCompleted.initialise (_RankingCompleted));
} }
...@@ -3617,6 +3640,104 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -3617,6 +3640,104 @@ public abstract class BaseJob extends BaseBusinessClass
} }
} }
/**
* Get the attribute RankingCompleted
*/
public Boolean getRankingCompleted ()
{
assertValid();
Boolean valToReturn = _RankingCompleted;
for (JobBehaviourDecorator bhd : Job_BehaviourDecorators)
{
valToReturn = bhd.getRankingCompleted ((Job)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 preRankingCompletedChange (Boolean newRankingCompleted) 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 postRankingCompletedChange () throws FieldException
{
}
public FieldWriteability getWriteability_RankingCompleted ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute RankingCompleted. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setRankingCompleted (Boolean newRankingCompleted) throws FieldException
{
boolean oldAndNewIdentical = HELPER_RankingCompleted.compare (_RankingCompleted, newRankingCompleted);
try
{
for (JobBehaviourDecorator bhd : Job_BehaviourDecorators)
{
newRankingCompleted = bhd.setRankingCompleted ((Job)this, newRankingCompleted);
oldAndNewIdentical = HELPER_RankingCompleted.compare (_RankingCompleted, newRankingCompleted);
}
if (FIELD_RankingCompleted_Validators.length > 0)
{
Object newRankingCompletedObj = HELPER_RankingCompleted.toObject (newRankingCompleted);
if (newRankingCompletedObj != null)
{
int loopMax = FIELD_RankingCompleted_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_Job.get (FIELD_RankingCompleted);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_RankingCompleted_Validators[v].checkAttribute (this, FIELD_RankingCompleted, metadata, newRankingCompletedObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_RankingCompleted () != FieldWriteability.FALSE, "Field RankingCompleted is not writeable");
preRankingCompletedChange (newRankingCompleted);
markFieldChange (FIELD_RankingCompleted);
_RankingCompleted = newRankingCompleted;
postFieldChange (FIELD_RankingCompleted);
postRankingCompletedChange ();
}
}
/** /**
...@@ -5043,6 +5164,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -5043,6 +5164,7 @@ public abstract class BaseJob extends BaseBusinessClass
_AssessmentTemplateName = sourceJob._AssessmentTemplateName; _AssessmentTemplateName = sourceJob._AssessmentTemplateName;
_CultureTemplateName = sourceJob._CultureTemplateName; _CultureTemplateName = sourceJob._CultureTemplateName;
_AppProcessOption = sourceJob._AppProcessOption; _AppProcessOption = sourceJob._AppProcessOption;
_RankingCompleted = sourceJob._RankingCompleted;
} }
} }
...@@ -5132,6 +5254,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -5132,6 +5254,7 @@ public abstract class BaseJob extends BaseBusinessClass
_AssessmentTemplateName = (String)(HELPER_AssessmentTemplateName.readExternal (_AssessmentTemplateName, vals.get(FIELD_AssessmentTemplateName))); // _AssessmentTemplateName = (String)(HELPER_AssessmentTemplateName.readExternal (_AssessmentTemplateName, vals.get(FIELD_AssessmentTemplateName))); //
_CultureTemplateName = (String)(HELPER_CultureTemplateName.readExternal (_CultureTemplateName, vals.get(FIELD_CultureTemplateName))); // _CultureTemplateName = (String)(HELPER_CultureTemplateName.readExternal (_CultureTemplateName, vals.get(FIELD_CultureTemplateName))); //
_AppProcessOption = (AppProcessOption)(HELPER_AppProcessOption.readExternal (_AppProcessOption, vals.get(FIELD_AppProcessOption))); // _AppProcessOption = (AppProcessOption)(HELPER_AppProcessOption.readExternal (_AppProcessOption, vals.get(FIELD_AppProcessOption))); //
_RankingCompleted = (Boolean)(HELPER_RankingCompleted.readExternal (_RankingCompleted, vals.get(FIELD_RankingCompleted))); //
_AssessmentTemplate.readExternalData(vals.get(SINGLEREFERENCE_AssessmentTemplate)); _AssessmentTemplate.readExternalData(vals.get(SINGLEREFERENCE_AssessmentTemplate));
_CultureTemplate.readExternalData(vals.get(SINGLEREFERENCE_CultureTemplate)); _CultureTemplate.readExternalData(vals.get(SINGLEREFERENCE_CultureTemplate));
_JobTemplate.readExternalData(vals.get(SINGLEREFERENCE_JobTemplate)); _JobTemplate.readExternalData(vals.get(SINGLEREFERENCE_JobTemplate));
...@@ -5178,6 +5301,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -5178,6 +5301,7 @@ public abstract class BaseJob extends BaseBusinessClass
vals.put (FIELD_AssessmentTemplateName, HELPER_AssessmentTemplateName.writeExternal (_AssessmentTemplateName)); vals.put (FIELD_AssessmentTemplateName, HELPER_AssessmentTemplateName.writeExternal (_AssessmentTemplateName));
vals.put (FIELD_CultureTemplateName, HELPER_CultureTemplateName.writeExternal (_CultureTemplateName)); vals.put (FIELD_CultureTemplateName, HELPER_CultureTemplateName.writeExternal (_CultureTemplateName));
vals.put (FIELD_AppProcessOption, HELPER_AppProcessOption.writeExternal (_AppProcessOption)); vals.put (FIELD_AppProcessOption, HELPER_AppProcessOption.writeExternal (_AppProcessOption));
vals.put (FIELD_RankingCompleted, HELPER_RankingCompleted.writeExternal (_RankingCompleted));
vals.put (SINGLEREFERENCE_AssessmentTemplate, _AssessmentTemplate.writeExternalData()); vals.put (SINGLEREFERENCE_AssessmentTemplate, _AssessmentTemplate.writeExternalData());
vals.put (SINGLEREFERENCE_CultureTemplate, _CultureTemplate.writeExternalData()); vals.put (SINGLEREFERENCE_CultureTemplate, _CultureTemplate.writeExternalData());
vals.put (SINGLEREFERENCE_JobTemplate, _JobTemplate.writeExternalData()); vals.put (SINGLEREFERENCE_JobTemplate, _JobTemplate.writeExternalData());
...@@ -5293,6 +5417,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -5293,6 +5417,7 @@ public abstract class BaseJob extends BaseBusinessClass
visitor.visitField(this, FIELD_AssessmentTemplateName, HELPER_AssessmentTemplateName.toObject(getAssessmentTemplateName())); visitor.visitField(this, FIELD_AssessmentTemplateName, HELPER_AssessmentTemplateName.toObject(getAssessmentTemplateName()));
visitor.visitField(this, FIELD_CultureTemplateName, HELPER_CultureTemplateName.toObject(getCultureTemplateName())); visitor.visitField(this, FIELD_CultureTemplateName, HELPER_CultureTemplateName.toObject(getCultureTemplateName()));
visitor.visitField(this, FIELD_AppProcessOption, HELPER_AppProcessOption.toObject(getAppProcessOption())); visitor.visitField(this, FIELD_AppProcessOption, HELPER_AppProcessOption.toObject(getAppProcessOption()));
visitor.visitField(this, FIELD_RankingCompleted, HELPER_RankingCompleted.toObject(getRankingCompleted()));
} }
...@@ -5898,6 +6023,10 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -5898,6 +6023,10 @@ public abstract class BaseJob extends BaseBusinessClass
{ {
return HELPER_AppProcessOption.toObject (getAppProcessOption ()); return HELPER_AppProcessOption.toObject (getAppProcessOption ());
} }
else if (attribName.equals (FIELD_RankingCompleted))
{
return HELPER_RankingCompleted.toObject (getRankingCompleted ());
}
else else
{ {
return super.getAttribute (attribName); return super.getAttribute (attribName);
...@@ -6019,6 +6148,10 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -6019,6 +6148,10 @@ public abstract class BaseJob extends BaseBusinessClass
{ {
return HELPER_AppProcessOption; return HELPER_AppProcessOption;
} }
else if (attribName.equals (FIELD_RankingCompleted))
{
return HELPER_RankingCompleted;
}
else else
{ {
return super.getAttributeHelper (attribName); return super.getAttributeHelper (attribName);
...@@ -6140,6 +6273,10 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -6140,6 +6273,10 @@ public abstract class BaseJob extends BaseBusinessClass
{ {
setAppProcessOption ((AppProcessOption)(HELPER_AppProcessOption.fromObject (_AppProcessOption, attribValue))); setAppProcessOption ((AppProcessOption)(HELPER_AppProcessOption.fromObject (_AppProcessOption, attribValue)));
} }
else if (attribName.equals (FIELD_RankingCompleted))
{
setRankingCompleted ((Boolean)(HELPER_RankingCompleted.fromObject (_RankingCompleted, attribValue)));
}
else else
{ {
super.setAttribute (attribName, attribValue); super.setAttribute (attribName, attribValue);
...@@ -6288,6 +6425,10 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -6288,6 +6425,10 @@ public abstract class BaseJob extends BaseBusinessClass
{ {
return getWriteability_AppProcessOption (); return getWriteability_AppProcessOption ();
} }
else if (fieldName.equals (FIELD_RankingCompleted))
{
return getWriteability_RankingCompleted ();
}
else if (fieldName.equals (SINGLEREFERENCE_AssessmentTemplate)) else if (fieldName.equals (SINGLEREFERENCE_AssessmentTemplate))
{ {
return getWriteability_AssessmentTemplate (); return getWriteability_AssessmentTemplate ();
...@@ -6445,6 +6586,11 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -6445,6 +6586,11 @@ public abstract class BaseJob extends BaseBusinessClass
fields.add (FIELD_AppProcessOption); fields.add (FIELD_AppProcessOption);
} }
if (getWriteability_RankingCompleted () != FieldWriteability.TRUE)
{
fields.add (FIELD_RankingCompleted);
}
super.putUnwriteable (fields); super.putUnwriteable (fields);
} }
...@@ -6481,6 +6627,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -6481,6 +6627,7 @@ public abstract class BaseJob extends BaseBusinessClass
result.add(HELPER_AssessmentTemplateName.getAttribObject (getClass (), _AssessmentTemplateName, false, FIELD_AssessmentTemplateName)); result.add(HELPER_AssessmentTemplateName.getAttribObject (getClass (), _AssessmentTemplateName, false, FIELD_AssessmentTemplateName));
result.add(HELPER_CultureTemplateName.getAttribObject (getClass (), _CultureTemplateName, false, FIELD_CultureTemplateName)); result.add(HELPER_CultureTemplateName.getAttribObject (getClass (), _CultureTemplateName, false, FIELD_CultureTemplateName));
result.add(HELPER_AppProcessOption.getAttribObject (getClass (), _AppProcessOption, false, FIELD_AppProcessOption)); result.add(HELPER_AppProcessOption.getAttribObject (getClass (), _AppProcessOption, false, FIELD_AppProcessOption));
result.add(HELPER_RankingCompleted.getAttribObject (getClass (), _RankingCompleted, false, FIELD_RankingCompleted));
return result; return result;
} }
...@@ -7017,6 +7164,24 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -7017,6 +7164,24 @@ public abstract class BaseJob extends BaseBusinessClass
return newAppProcessOption; return newAppProcessOption;
} }
/**
* Get the attribute RankingCompleted
*/
public Boolean getRankingCompleted (Job obj, Boolean original)
{
return original;
}
/**
* Change the value set for attribute RankingCompleted.
* May modify the field beforehand
* Occurs before validation.
*/
public Boolean setRankingCompleted (Job obj, Boolean newRankingCompleted) throws FieldException
{
return newRankingCompleted;
}
} }
...@@ -7129,6 +7294,10 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -7129,6 +7294,10 @@ public abstract class BaseJob extends BaseBusinessClass
{ {
return toAppProcessOption (); return toAppProcessOption ();
} }
if (name.equals ("RankingCompleted"))
{
return toRankingCompleted ();
}
if (name.equals ("AssessmentTemplate")) if (name.equals ("AssessmentTemplate"))
{ {
return toAssessmentTemplate (); return toAssessmentTemplate ();
...@@ -7239,6 +7408,8 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -7239,6 +7408,8 @@ public abstract class BaseJob extends BaseBusinessClass
public PipeLine<From, AppProcessOption> toAppProcessOption () { return pipe(new ORMAttributePipe<Me, AppProcessOption>(FIELD_AppProcessOption)); } public PipeLine<From, AppProcessOption> toAppProcessOption () { return pipe(new ORMAttributePipe<Me, AppProcessOption>(FIELD_AppProcessOption)); }
public PipeLine<From, Boolean> toRankingCompleted () { return pipe(new ORMAttributePipe<Me, Boolean>(FIELD_RankingCompleted)); }
public PipeLine<From, String> toJobTitle () { return pipe(new ORMAttributePipe<Me, String>(FIELD_JobTitle)); } public PipeLine<From, String> toJobTitle () { return pipe(new ORMAttributePipe<Me, String>(FIELD_JobTitle)); }
public PipeLine<From, String> toJobDescription () { return pipe(new ORMAttributePipe<Me, String>(FIELD_JobDescription)); } public PipeLine<From, String> toJobDescription () { return pipe(new ORMAttributePipe<Me, String>(FIELD_JobDescription)); }
...@@ -7382,6 +7553,11 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -7382,6 +7553,11 @@ public abstract class BaseJob extends BaseBusinessClass
return true; return true;
} }
if(CollectionUtils.equals(attribName, "RankingCompleted"))
{
return true;
}
return super.isTransientAttrib(attribName); return super.isTransientAttrib(attribName);
} }
......
...@@ -44,7 +44,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -44,7 +44,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
public static final String FIELD_ApplicationStatus = "ApplicationStatus"; public static final String FIELD_ApplicationStatus = "ApplicationStatus";
public static final String FIELD_SubmittedDate = "SubmittedDate"; public static final String FIELD_SubmittedDate = "SubmittedDate";
public static final String FIELD_AppProcessOption = "AppProcessOption"; public static final String FIELD_AppProcessOption = "AppProcessOption";
public static final String FIELD_OverallSuitability = "OverallSuitability"; public static final String FIELD_OverallRank = "OverallRank";
public static final String FIELD_RoleFit = "RoleFit";
public static final String FIELD_RequirementFit = "RequirementFit";
public static final String FIELD_CultureFit = "CultureFit";
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";
...@@ -62,7 +65,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -62,7 +65,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
private static final EnumeratedAttributeHelper<JobApplication, ApplicationStatus> HELPER_ApplicationStatus = new EnumeratedAttributeHelper<JobApplication, ApplicationStatus> (ApplicationStatus.FACTORY_ApplicationStatus); private static final EnumeratedAttributeHelper<JobApplication, ApplicationStatus> HELPER_ApplicationStatus = new EnumeratedAttributeHelper<JobApplication, ApplicationStatus> (ApplicationStatus.FACTORY_ApplicationStatus);
private static final DefaultAttributeHelper<JobApplication> HELPER_SubmittedDate = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper<JobApplication> HELPER_SubmittedDate = DefaultAttributeHelper.INSTANCE;
private static final EnumeratedAttributeHelper<JobApplication, AppProcessOption> HELPER_AppProcessOption = new EnumeratedAttributeHelper<JobApplication, AppProcessOption> (AppProcessOption.FACTORY_AppProcessOption); 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 static final DefaultAttributeHelper<JobApplication> HELPER_OverallRank = DefaultAttributeHelper.INSTANCE;
private static final BLOBAttributeHelper HELPER_RoleFit = BLOBAttributeHelper.INSTANCE;
private static final BLOBAttributeHelper HELPER_RequirementFit = BLOBAttributeHelper.INSTANCE;
private static final BLOBAttributeHelper HELPER_CultureFit = BLOBAttributeHelper.INSTANCE;
// Private attributes corresponding to business object data // Private attributes corresponding to business object data
...@@ -70,7 +76,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -70,7 +76,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
private ApplicationStatus _ApplicationStatus; private ApplicationStatus _ApplicationStatus;
private Date _SubmittedDate; private Date _SubmittedDate;
private AppProcessOption _AppProcessOption; private AppProcessOption _AppProcessOption;
private Integer _OverallSuitability; private Integer _OverallRank;
private Map _RoleFit;
private Map _RequirementFit;
private Map _CultureFit;
// Private attributes corresponding to single references // Private attributes corresponding to single references
...@@ -87,7 +96,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -87,7 +96,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
// Arrays of validators for each attribute // Arrays of validators for each attribute
private static final AttributeValidator[] FIELD_AppProcessOption_Validators; private static final AttributeValidator[] FIELD_AppProcessOption_Validators;
private static final AttributeValidator[] FIELD_OverallSuitability_Validators; private static final AttributeValidator[] FIELD_OverallRank_Validators;
private static final AttributeValidator[] FIELD_RoleFit_Validators;
private static final AttributeValidator[] FIELD_RequirementFit_Validators;
private static final AttributeValidator[] FIELD_CultureFit_Validators;
private static final AttributeValidator[] FIELD_CV_Validators; private static final AttributeValidator[] FIELD_CV_Validators;
private static final AttributeValidator[] FIELD_ApplicationStatus_Validators; private static final AttributeValidator[] FIELD_ApplicationStatus_Validators;
private static final AttributeValidator[] FIELD_SubmittedDate_Validators; private static final AttributeValidator[] FIELD_SubmittedDate_Validators;
...@@ -111,7 +123,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -111,7 +123,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
setupAssocMetaData_Candidate(); setupAssocMetaData_Candidate();
setupAssocMetaData_Job(); setupAssocMetaData_Job();
FIELD_AppProcessOption_Validators = (AttributeValidator[])setupAttribMetaData_AppProcessOption(validatorMapping).toArray (new AttributeValidator[0]); FIELD_AppProcessOption_Validators = (AttributeValidator[])setupAttribMetaData_AppProcessOption(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_OverallSuitability_Validators = (AttributeValidator[])setupAttribMetaData_OverallSuitability(validatorMapping).toArray (new AttributeValidator[0]); FIELD_OverallRank_Validators = (AttributeValidator[])setupAttribMetaData_OverallRank(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_RoleFit_Validators = (AttributeValidator[])setupAttribMetaData_RoleFit(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_RequirementFit_Validators = (AttributeValidator[])setupAttribMetaData_RequirementFit(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_CultureFit_Validators = (AttributeValidator[])setupAttribMetaData_CultureFit(validatorMapping).toArray (new AttributeValidator[0]);
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]); FIELD_ApplicationStatus_Validators = (AttributeValidator[])setupAttribMetaData_ApplicationStatus(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_SubmittedDate_Validators = (AttributeValidator[])setupAttribMetaData_SubmittedDate(validatorMapping).toArray (new AttributeValidator[0]); FIELD_SubmittedDate_Validators = (AttributeValidator[])setupAttribMetaData_SubmittedDate(validatorMapping).toArray (new AttributeValidator[0]);
...@@ -194,18 +209,75 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -194,18 +209,75 @@ public abstract class BaseJobApplication extends BaseBusinessClass
} }
// Meta Info setup // Meta Info setup
private static List setupAttribMetaData_OverallSuitability(Map validatorMapping) private static List setupAttribMetaData_OverallRank(Map validatorMapping)
{ {
Map metaInfo = new HashMap (); Map metaInfo = new HashMap ();
metaInfo.put ("name", "OverallSuitability"); metaInfo.put ("name", "OverallRank");
metaInfo.put ("type", "Integer"); metaInfo.put ("type", "Integer");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for JobApplication.OverallSuitability:", metaInfo); LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for JobApplication.OverallRank:", metaInfo);
ATTRIBUTES_METADATA_JobApplication.put (FIELD_OverallSuitability, Collections.unmodifiableMap (metaInfo)); ATTRIBUTES_METADATA_JobApplication.put (FIELD_OverallRank, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(JobApplication.class, "OverallSuitability", metaInfo, validatorMapping); List validators = BaseBusinessClass.getAttribValidators(JobApplication.class, "OverallRank", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for JobApplication.OverallSuitability:", validators); LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for JobApplication.OverallRank:", validators);
return validators;
}
// Meta Info setup
private static List setupAttribMetaData_RoleFit(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("attribHelper", "BLOBAttributeHelper");
metaInfo.put ("attribHelperInstance", "BLOBAttributeHelper.INSTANCE");
metaInfo.put ("name", "RoleFit");
metaInfo.put ("type", "Map");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for JobApplication.RoleFit:", metaInfo);
ATTRIBUTES_METADATA_JobApplication.put (FIELD_RoleFit, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(JobApplication.class, "RoleFit", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for JobApplication.RoleFit:", validators);
return validators;
}
// Meta Info setup
private static List setupAttribMetaData_RequirementFit(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("attribHelper", "BLOBAttributeHelper");
metaInfo.put ("attribHelperInstance", "BLOBAttributeHelper.INSTANCE");
metaInfo.put ("name", "RequirementFit");
metaInfo.put ("type", "Map");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for JobApplication.RequirementFit:", metaInfo);
ATTRIBUTES_METADATA_JobApplication.put (FIELD_RequirementFit, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(JobApplication.class, "RequirementFit", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for JobApplication.RequirementFit:", validators);
return validators;
}
// Meta Info setup
private static List setupAttribMetaData_CultureFit(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("attribHelper", "BLOBAttributeHelper");
metaInfo.put ("attribHelperInstance", "BLOBAttributeHelper.INSTANCE");
metaInfo.put ("name", "CultureFit");
metaInfo.put ("type", "Map");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for JobApplication.CultureFit:", metaInfo);
ATTRIBUTES_METADATA_JobApplication.put (FIELD_CultureFit, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(JobApplication.class, "CultureFit", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for JobApplication.CultureFit:", validators);
return validators; return validators;
} }
...@@ -302,7 +374,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -302,7 +374,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_ApplicationStatus = (ApplicationStatus)(ApplicationStatus.DRAFT); _ApplicationStatus = (ApplicationStatus)(ApplicationStatus.DRAFT);
_SubmittedDate = (Date)(HELPER_SubmittedDate.initialise (_SubmittedDate)); _SubmittedDate = (Date)(HELPER_SubmittedDate.initialise (_SubmittedDate));
_AppProcessOption = (AppProcessOption)(HELPER_AppProcessOption.initialise (_AppProcessOption)); _AppProcessOption = (AppProcessOption)(HELPER_AppProcessOption.initialise (_AppProcessOption));
_OverallSuitability = (Integer)(HELPER_OverallSuitability.initialise (_OverallSuitability)); _OverallRank = (Integer)(HELPER_OverallRank.initialise (_OverallRank));
_RoleFit = (Map)(HELPER_RoleFit.initialise (_RoleFit));
_RequirementFit = (Map)(HELPER_RequirementFit.initialise (_RequirementFit));
_CultureFit = (Map)(HELPER_CultureFit.initialise (_CultureFit));
} }
...@@ -727,16 +802,114 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -727,16 +802,114 @@ public abstract class BaseJobApplication extends BaseBusinessClass
} }
/** /**
* Get the attribute OverallSuitability * Get the attribute OverallRank
*/
public Integer getOverallRank ()
{
assertValid();
Integer valToReturn = _OverallRank;
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
valToReturn = bhd.getOverallRank ((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 preOverallRankChange (Integer newOverallRank) 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 postOverallRankChange () throws FieldException
{
}
public FieldWriteability getWriteability_OverallRank ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute OverallRank. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setOverallRank (Integer newOverallRank) throws FieldException
{
boolean oldAndNewIdentical = HELPER_OverallRank.compare (_OverallRank, newOverallRank);
try
{
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
newOverallRank = bhd.setOverallRank ((JobApplication)this, newOverallRank);
oldAndNewIdentical = HELPER_OverallRank.compare (_OverallRank, newOverallRank);
}
if (FIELD_OverallRank_Validators.length > 0)
{
Object newOverallRankObj = HELPER_OverallRank.toObject (newOverallRank);
if (newOverallRankObj != null)
{
int loopMax = FIELD_OverallRank_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_JobApplication.get (FIELD_OverallRank);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_OverallRank_Validators[v].checkAttribute (this, FIELD_OverallRank, metadata, newOverallRankObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_OverallRank () != FieldWriteability.FALSE, "Field OverallRank is not writeable");
preOverallRankChange (newOverallRank);
markFieldChange (FIELD_OverallRank);
_OverallRank = newOverallRank;
postFieldChange (FIELD_OverallRank);
postOverallRankChange ();
}
}
/**
* Get the attribute RoleFit
*/ */
public Integer getOverallSuitability () public Map getRoleFit ()
{ {
assertValid(); assertValid();
Integer valToReturn = _OverallSuitability; Map valToReturn = _RoleFit;
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators) for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{ {
valToReturn = bhd.getOverallSuitability ((JobApplication)this, valToReturn); valToReturn = bhd.getRoleFit ((JobApplication)this, valToReturn);
} }
return valToReturn; return valToReturn;
...@@ -748,7 +921,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -748,7 +921,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
* Called prior to the attribute changing. Subclasses need not call super. If a field exception * 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. * is thrown, the attribute change will fail. The new value is different to the old value.
*/ */
protected void preOverallSuitabilityChange (Integer newOverallSuitability) throws FieldException protected void preRoleFitChange (Map newRoleFit) throws FieldException
{ {
} }
...@@ -758,46 +931,46 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -758,46 +931,46 @@ public abstract class BaseJobApplication extends BaseBusinessClass
* If a field exception is thrown, the value is still changed, however it * If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back * may lead to the TX being rolled back
*/ */
protected void postOverallSuitabilityChange () throws FieldException protected void postRoleFitChange () throws FieldException
{ {
} }
public FieldWriteability getWriteability_OverallSuitability () public FieldWriteability getWriteability_RoleFit ()
{ {
return getFieldWritabilityUtil (FieldWriteability.TRUE); return getFieldWritabilityUtil (FieldWriteability.TRUE);
} }
/** /**
* Set the attribute OverallSuitability. Checks to ensure a new value * Set the attribute RoleFit. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute. * has been supplied. If so, marks the field as altered and sets the attribute.
*/ */
public void setOverallSuitability (Integer newOverallSuitability) throws FieldException public void setRoleFit (Map newRoleFit) throws FieldException
{ {
boolean oldAndNewIdentical = HELPER_OverallSuitability.compare (_OverallSuitability, newOverallSuitability); boolean oldAndNewIdentical = HELPER_RoleFit.compare (_RoleFit, newRoleFit);
try try
{ {
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators) for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{ {
newOverallSuitability = bhd.setOverallSuitability ((JobApplication)this, newOverallSuitability); newRoleFit = bhd.setRoleFit ((JobApplication)this, newRoleFit);
oldAndNewIdentical = HELPER_OverallSuitability.compare (_OverallSuitability, newOverallSuitability); oldAndNewIdentical = HELPER_RoleFit.compare (_RoleFit, newRoleFit);
} }
if (FIELD_OverallSuitability_Validators.length > 0) if (FIELD_RoleFit_Validators.length > 0)
{ {
Object newOverallSuitabilityObj = HELPER_OverallSuitability.toObject (newOverallSuitability); Object newRoleFitObj = HELPER_RoleFit.toObject (newRoleFit);
if (newOverallSuitabilityObj != null) if (newRoleFitObj != null)
{ {
int loopMax = FIELD_OverallSuitability_Validators.length; int loopMax = FIELD_RoleFit_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_JobApplication.get (FIELD_OverallSuitability); Map metadata = (Map)ATTRIBUTES_METADATA_JobApplication.get (FIELD_RoleFit);
for (int v = 0 ; v < loopMax ; ++v) for (int v = 0 ; v < loopMax ; ++v)
{ {
FIELD_OverallSuitability_Validators[v].checkAttribute (this, FIELD_OverallSuitability, metadata, newOverallSuitabilityObj); FIELD_RoleFit_Validators[v].checkAttribute (this, FIELD_RoleFit, metadata, newRoleFitObj);
} }
} }
} }
...@@ -815,12 +988,208 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -815,12 +988,208 @@ public abstract class BaseJobApplication extends BaseBusinessClass
if (!oldAndNewIdentical) if (!oldAndNewIdentical)
{ {
assertValid(); assertValid();
Debug.assertion (getWriteability_OverallSuitability () != FieldWriteability.FALSE, "Field OverallSuitability is not writeable"); Debug.assertion (getWriteability_RoleFit () != FieldWriteability.FALSE, "Field RoleFit is not writeable");
preOverallSuitabilityChange (newOverallSuitability); preRoleFitChange (newRoleFit);
markFieldChange (FIELD_OverallSuitability); markFieldChange (FIELD_RoleFit);
_OverallSuitability = newOverallSuitability; _RoleFit = newRoleFit;
postFieldChange (FIELD_OverallSuitability); postFieldChange (FIELD_RoleFit);
postOverallSuitabilityChange (); postRoleFitChange ();
}
}
/**
* Get the attribute RequirementFit
*/
public Map getRequirementFit ()
{
assertValid();
Map valToReturn = _RequirementFit;
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
valToReturn = bhd.getRequirementFit ((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 preRequirementFitChange (Map newRequirementFit) 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 postRequirementFitChange () throws FieldException
{
}
public FieldWriteability getWriteability_RequirementFit ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute RequirementFit. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setRequirementFit (Map newRequirementFit) throws FieldException
{
boolean oldAndNewIdentical = HELPER_RequirementFit.compare (_RequirementFit, newRequirementFit);
try
{
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
newRequirementFit = bhd.setRequirementFit ((JobApplication)this, newRequirementFit);
oldAndNewIdentical = HELPER_RequirementFit.compare (_RequirementFit, newRequirementFit);
}
if (FIELD_RequirementFit_Validators.length > 0)
{
Object newRequirementFitObj = HELPER_RequirementFit.toObject (newRequirementFit);
if (newRequirementFitObj != null)
{
int loopMax = FIELD_RequirementFit_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_JobApplication.get (FIELD_RequirementFit);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_RequirementFit_Validators[v].checkAttribute (this, FIELD_RequirementFit, metadata, newRequirementFitObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_RequirementFit () != FieldWriteability.FALSE, "Field RequirementFit is not writeable");
preRequirementFitChange (newRequirementFit);
markFieldChange (FIELD_RequirementFit);
_RequirementFit = newRequirementFit;
postFieldChange (FIELD_RequirementFit);
postRequirementFitChange ();
}
}
/**
* Get the attribute CultureFit
*/
public Map getCultureFit ()
{
assertValid();
Map valToReturn = _CultureFit;
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
valToReturn = bhd.getCultureFit ((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 preCultureFitChange (Map newCultureFit) 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 postCultureFitChange () throws FieldException
{
}
public FieldWriteability getWriteability_CultureFit ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute CultureFit. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setCultureFit (Map newCultureFit) throws FieldException
{
boolean oldAndNewIdentical = HELPER_CultureFit.compare (_CultureFit, newCultureFit);
try
{
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
newCultureFit = bhd.setCultureFit ((JobApplication)this, newCultureFit);
oldAndNewIdentical = HELPER_CultureFit.compare (_CultureFit, newCultureFit);
}
if (FIELD_CultureFit_Validators.length > 0)
{
Object newCultureFitObj = HELPER_CultureFit.toObject (newCultureFit);
if (newCultureFitObj != null)
{
int loopMax = FIELD_CultureFit_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_JobApplication.get (FIELD_CultureFit);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_CultureFit_Validators[v].checkAttribute (this, FIELD_CultureFit, metadata, newCultureFitObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_CultureFit () != FieldWriteability.FALSE, "Field CultureFit is not writeable");
preCultureFitChange (newCultureFit);
markFieldChange (FIELD_CultureFit);
_CultureFit = newCultureFit;
postFieldChange (FIELD_CultureFit);
postCultureFitChange ();
} }
} }
...@@ -1573,7 +1942,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1573,7 +1942,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_ApplicationStatus = sourceJobApplication._ApplicationStatus; _ApplicationStatus = sourceJobApplication._ApplicationStatus;
_SubmittedDate = sourceJobApplication._SubmittedDate; _SubmittedDate = sourceJobApplication._SubmittedDate;
_AppProcessOption = sourceJobApplication._AppProcessOption; _AppProcessOption = sourceJobApplication._AppProcessOption;
_OverallSuitability = sourceJobApplication._OverallSuitability; _OverallRank = sourceJobApplication._OverallRank;
_RoleFit = sourceJobApplication._RoleFit;
_RequirementFit = sourceJobApplication._RequirementFit;
_CultureFit = sourceJobApplication._CultureFit;
} }
} }
...@@ -1637,7 +2009,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1637,7 +2009,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_ApplicationStatus = (ApplicationStatus)(HELPER_ApplicationStatus.readExternal (_ApplicationStatus, vals.get(FIELD_ApplicationStatus))); // _ApplicationStatus = (ApplicationStatus)(HELPER_ApplicationStatus.readExternal (_ApplicationStatus, vals.get(FIELD_ApplicationStatus))); //
_SubmittedDate = (Date)(HELPER_SubmittedDate.readExternal (_SubmittedDate, vals.get(FIELD_SubmittedDate))); // _SubmittedDate = (Date)(HELPER_SubmittedDate.readExternal (_SubmittedDate, vals.get(FIELD_SubmittedDate))); //
_AppProcessOption = (AppProcessOption)(HELPER_AppProcessOption.readExternal (_AppProcessOption, vals.get(FIELD_AppProcessOption))); // _AppProcessOption = (AppProcessOption)(HELPER_AppProcessOption.readExternal (_AppProcessOption, vals.get(FIELD_AppProcessOption))); //
_OverallSuitability = (Integer)(HELPER_OverallSuitability.readExternal (_OverallSuitability, vals.get(FIELD_OverallSuitability))); // _OverallRank = (Integer)(HELPER_OverallRank.readExternal (_OverallRank, vals.get(FIELD_OverallRank))); //
_RoleFit = (Map)(HELPER_RoleFit.readExternal (_RoleFit, vals.get(FIELD_RoleFit))); //
_RequirementFit = (Map)(HELPER_RequirementFit.readExternal (_RequirementFit, vals.get(FIELD_RequirementFit))); //
_CultureFit = (Map)(HELPER_CultureFit.readExternal (_CultureFit, vals.get(FIELD_CultureFit))); //
_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));
...@@ -1656,7 +2031,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1656,7 +2031,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
vals.put (FIELD_ApplicationStatus, HELPER_ApplicationStatus.writeExternal (_ApplicationStatus)); vals.put (FIELD_ApplicationStatus, HELPER_ApplicationStatus.writeExternal (_ApplicationStatus));
vals.put (FIELD_SubmittedDate, HELPER_SubmittedDate.writeExternal (_SubmittedDate)); vals.put (FIELD_SubmittedDate, HELPER_SubmittedDate.writeExternal (_SubmittedDate));
vals.put (FIELD_AppProcessOption, HELPER_AppProcessOption.writeExternal (_AppProcessOption)); vals.put (FIELD_AppProcessOption, HELPER_AppProcessOption.writeExternal (_AppProcessOption));
vals.put (FIELD_OverallSuitability, HELPER_OverallSuitability.writeExternal (_OverallSuitability)); vals.put (FIELD_OverallRank, HELPER_OverallRank.writeExternal (_OverallRank));
vals.put (FIELD_RoleFit, HELPER_RoleFit.writeExternal (_RoleFit));
vals.put (FIELD_RequirementFit, HELPER_RequirementFit.writeExternal (_RequirementFit));
vals.put (FIELD_CultureFit, HELPER_CultureFit.writeExternal (_CultureFit));
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());
...@@ -1703,7 +2081,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1703,7 +2081,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
super.visitAttributes (visitor); super.visitAttributes (visitor);
visitor.visitField(this, FIELD_AppProcessOption, HELPER_AppProcessOption.toObject(getAppProcessOption())); visitor.visitField(this, FIELD_AppProcessOption, HELPER_AppProcessOption.toObject(getAppProcessOption()));
visitor.visitField(this, FIELD_OverallSuitability, HELPER_OverallSuitability.toObject(getOverallSuitability())); visitor.visitField(this, FIELD_OverallRank, HELPER_OverallRank.toObject(getOverallRank()));
visitor.visitField(this, FIELD_RoleFit, HELPER_RoleFit.toObject(getRoleFit()));
visitor.visitField(this, FIELD_RequirementFit, HELPER_RequirementFit.toObject(getRequirementFit()));
visitor.visitField(this, FIELD_CultureFit, HELPER_CultureFit.toObject(getCultureFit()));
} }
...@@ -2014,9 +2395,21 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -2014,9 +2395,21 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
return HELPER_AppProcessOption.toObject (getAppProcessOption ()); return HELPER_AppProcessOption.toObject (getAppProcessOption ());
} }
else if (attribName.equals (FIELD_OverallSuitability)) else if (attribName.equals (FIELD_OverallRank))
{
return HELPER_OverallRank.toObject (getOverallRank ());
}
else if (attribName.equals (FIELD_RoleFit))
{
return HELPER_RoleFit.toObject (getRoleFit ());
}
else if (attribName.equals (FIELD_RequirementFit))
{
return HELPER_RequirementFit.toObject (getRequirementFit ());
}
else if (attribName.equals (FIELD_CultureFit))
{ {
return HELPER_OverallSuitability.toObject (getOverallSuitability ()); return HELPER_CultureFit.toObject (getCultureFit ());
} }
else else
{ {
...@@ -2047,9 +2440,21 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -2047,9 +2440,21 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
return HELPER_AppProcessOption; return HELPER_AppProcessOption;
} }
else if (attribName.equals (FIELD_OverallSuitability)) else if (attribName.equals (FIELD_OverallRank))
{ {
return HELPER_OverallSuitability; return HELPER_OverallRank;
}
else if (attribName.equals (FIELD_RoleFit))
{
return HELPER_RoleFit;
}
else if (attribName.equals (FIELD_RequirementFit))
{
return HELPER_RequirementFit;
}
else if (attribName.equals (FIELD_CultureFit))
{
return HELPER_CultureFit;
} }
else else
{ {
...@@ -2080,9 +2485,21 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -2080,9 +2485,21 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
setAppProcessOption ((AppProcessOption)(HELPER_AppProcessOption.fromObject (_AppProcessOption, attribValue))); setAppProcessOption ((AppProcessOption)(HELPER_AppProcessOption.fromObject (_AppProcessOption, attribValue)));
} }
else if (attribName.equals (FIELD_OverallSuitability)) else if (attribName.equals (FIELD_OverallRank))
{
setOverallRank ((Integer)(HELPER_OverallRank.fromObject (_OverallRank, attribValue)));
}
else if (attribName.equals (FIELD_RoleFit))
{
setRoleFit ((Map)(HELPER_RoleFit.fromObject (_RoleFit, attribValue)));
}
else if (attribName.equals (FIELD_RequirementFit))
{
setRequirementFit ((Map)(HELPER_RequirementFit.fromObject (_RequirementFit, attribValue)));
}
else if (attribName.equals (FIELD_CultureFit))
{ {
setOverallSuitability ((Integer)(HELPER_OverallSuitability.fromObject (_OverallSuitability, attribValue))); setCultureFit ((Map)(HELPER_CultureFit.fromObject (_CultureFit, attribValue)));
} }
else else
{ {
...@@ -2132,9 +2549,21 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -2132,9 +2549,21 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
return getWriteability_AppProcessOption (); return getWriteability_AppProcessOption ();
} }
else if (fieldName.equals (FIELD_OverallSuitability)) else if (fieldName.equals (FIELD_OverallRank))
{
return getWriteability_OverallRank ();
}
else if (fieldName.equals (FIELD_RoleFit))
{ {
return getWriteability_OverallSuitability (); return getWriteability_RoleFit ();
}
else if (fieldName.equals (FIELD_RequirementFit))
{
return getWriteability_RequirementFit ();
}
else if (fieldName.equals (FIELD_CultureFit))
{
return getWriteability_CultureFit ();
} }
else else
{ {
...@@ -2166,9 +2595,24 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -2166,9 +2595,24 @@ public abstract class BaseJobApplication extends BaseBusinessClass
fields.add (FIELD_AppProcessOption); fields.add (FIELD_AppProcessOption);
} }
if (getWriteability_OverallSuitability () != FieldWriteability.TRUE) if (getWriteability_OverallRank () != FieldWriteability.TRUE)
{
fields.add (FIELD_OverallRank);
}
if (getWriteability_RoleFit () != FieldWriteability.TRUE)
{
fields.add (FIELD_RoleFit);
}
if (getWriteability_RequirementFit () != FieldWriteability.TRUE)
{
fields.add (FIELD_RequirementFit);
}
if (getWriteability_CultureFit () != FieldWriteability.TRUE)
{ {
fields.add (FIELD_OverallSuitability); fields.add (FIELD_CultureFit);
} }
...@@ -2184,7 +2628,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -2184,7 +2628,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
result.add(HELPER_ApplicationStatus.getAttribObject (getClass (), _ApplicationStatus, true, FIELD_ApplicationStatus)); result.add(HELPER_ApplicationStatus.getAttribObject (getClass (), _ApplicationStatus, true, FIELD_ApplicationStatus));
result.add(HELPER_SubmittedDate.getAttribObject (getClass (), _SubmittedDate, false, FIELD_SubmittedDate)); result.add(HELPER_SubmittedDate.getAttribObject (getClass (), _SubmittedDate, false, FIELD_SubmittedDate));
result.add(HELPER_AppProcessOption.getAttribObject (getClass (), _AppProcessOption, false, FIELD_AppProcessOption)); result.add(HELPER_AppProcessOption.getAttribObject (getClass (), _AppProcessOption, false, FIELD_AppProcessOption));
result.add(HELPER_OverallSuitability.getAttribObject (getClass (), _OverallSuitability, false, FIELD_OverallSuitability)); result.add(HELPER_OverallRank.getAttribObject (getClass (), _OverallRank, false, FIELD_OverallRank));
result.add(HELPER_RoleFit.getAttribObject (getClass (), _RoleFit, false, FIELD_RoleFit));
result.add(HELPER_RequirementFit.getAttribObject (getClass (), _RequirementFit, false, FIELD_RequirementFit));
result.add(HELPER_CultureFit.getAttribObject (getClass (), _CultureFit, false, FIELD_CultureFit));
return result; return result;
} }
...@@ -2326,21 +2773,75 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -2326,21 +2773,75 @@ public abstract class BaseJobApplication extends BaseBusinessClass
} }
/** /**
* Get the attribute OverallSuitability * Get the attribute OverallRank
*/
public Integer getOverallRank (JobApplication obj, Integer original)
{
return original;
}
/**
* Change the value set for attribute OverallRank.
* May modify the field beforehand
* Occurs before validation.
*/ */
public Integer getOverallSuitability (JobApplication obj, Integer original) public Integer setOverallRank (JobApplication obj, Integer newOverallRank) throws FieldException
{
return newOverallRank;
}
/**
* Get the attribute RoleFit
*/
public Map getRoleFit (JobApplication obj, Map original)
{ {
return original; return original;
} }
/** /**
* Change the value set for attribute OverallSuitability. * Change the value set for attribute RoleFit.
* May modify the field beforehand * May modify the field beforehand
* Occurs before validation. * Occurs before validation.
*/ */
public Integer setOverallSuitability (JobApplication obj, Integer newOverallSuitability) throws FieldException public Map setRoleFit (JobApplication obj, Map newRoleFit) throws FieldException
{ {
return newOverallSuitability; return newRoleFit;
}
/**
* Get the attribute RequirementFit
*/
public Map getRequirementFit (JobApplication obj, Map original)
{
return original;
}
/**
* Change the value set for attribute RequirementFit.
* May modify the field beforehand
* Occurs before validation.
*/
public Map setRequirementFit (JobApplication obj, Map newRequirementFit) throws FieldException
{
return newRequirementFit;
}
/**
* Get the attribute CultureFit
*/
public Map getCultureFit (JobApplication obj, Map original)
{
return original;
}
/**
* Change the value set for attribute CultureFit.
* May modify the field beforehand
* Occurs before validation.
*/
public Map setCultureFit (JobApplication obj, Map newCultureFit) throws FieldException
{
return newCultureFit;
} }
} }
...@@ -2403,9 +2904,21 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -2403,9 +2904,21 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
return toAppProcessOption (); return toAppProcessOption ();
} }
if (name.equals ("OverallSuitability")) if (name.equals ("OverallRank"))
{ {
return toOverallSuitability (); return toOverallRank ();
}
if (name.equals ("RoleFit"))
{
return toRoleFit ();
}
if (name.equals ("RequirementFit"))
{
return toRequirementFit ();
}
if (name.equals ("CultureFit"))
{
return toCultureFit ();
} }
if (name.equals ("CV")) if (name.equals ("CV"))
{ {
...@@ -2435,7 +2948,13 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -2435,7 +2948,13 @@ public abstract class BaseJobApplication extends BaseBusinessClass
public PipeLine<From, AppProcessOption> toAppProcessOption () { return pipe(new ORMAttributePipe<Me, AppProcessOption>(FIELD_AppProcessOption)); } 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, Integer> toOverallRank () { return pipe(new ORMAttributePipe<Me, Integer>(FIELD_OverallRank)); }
public PipeLine<From, Map> toRoleFit () { return pipe(new ORMAttributePipe<Me, Map>(FIELD_RoleFit)); }
public PipeLine<From, Map> toRequirementFit () { return pipe(new ORMAttributePipe<Me, Map>(FIELD_RequirementFit)); }
public PipeLine<From, Map> toCultureFit () { return pipe(new ORMAttributePipe<Me, Map>(FIELD_CultureFit)); }
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)); }
...@@ -2471,7 +2990,22 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -2471,7 +2990,22 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return true; return true;
} }
if(CollectionUtils.equals(attribName, "OverallSuitability")) if(CollectionUtils.equals(attribName, "OverallRank"))
{
return true;
}
if(CollectionUtils.equals(attribName, "RoleFit"))
{
return true;
}
if(CollectionUtils.equals(attribName, "RequirementFit"))
{
return true;
}
if(CollectionUtils.equals(attribName, "CultureFit"))
{ {
return true; return true;
} }
......
...@@ -14,7 +14,7 @@ import oneit.utils.filter.CollectionFilter; ...@@ -14,7 +14,7 @@ import oneit.utils.filter.CollectionFilter;
import oneit.utils.filter.Filter; import oneit.utils.filter.Filter;
import oneit.utils.parsers.FieldException; import oneit.utils.parsers.FieldException;
import performa.orm.types.*; import performa.orm.types.*;
import performa.utils.Utils; import performa.utils.*;
public class Job extends BaseJob public class Job extends BaseJob
...@@ -92,28 +92,34 @@ public class Job extends BaseJob ...@@ -92,28 +92,34 @@ public class Job extends BaseJob
return super.getWriteability_JobStatus(); return super.getWriteability_JobStatus();
} }
public void calculateRoleFitForRanking() throws FieldException
public Boolean jobDetailsCompleted()
{
return getJobTitle() != null && getJobDescription() != null;
}
public Boolean assessmentCompleted()
{
return Boolean.TRUE;
}
public Boolean cultureCompleted()
{ {
return Boolean.FALSE; if(!isTrue(getRankingCompleted()))
{
//Preloading data
pipelineJob().toJobApplications().toCandidate().toTestAnalysises().toCandidateClassScores().uniqueVals();
pipelineJob().toJobApplications().toCandidate().toCultureCriteriaAnswers().toSelectedQuestion().toNarratives().toCultureElementRating().uniqueVals();
pipelineJob().toJobApplications().toCandidate().toCultureCriteriaAnswers().toCultureElement().uniqueVals();
pipelineJob().toLevel().toLevelClassCriterias().toFactorClass().uniqueVals();
pipelineJob().toLevel().toClassNormalisations().uniqueVals();
pipelineJob().toLevel().toLevelNormalisations().uniqueVals();
List<JobApplication> sortedApplications = ObjstoreUtils.sort(getSubmittedApplications(),
new ObjectTransform[]{JobApplicationRoleFitTransform.INSTANCE, JobApplicationCultureFitTransform.INSTANCE},
new Comparator[]{CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR), CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR)});
for(JobApplication jobApplication : getSubmittedApplications())
{
jobApplication.setOverallRank(sortedApplications.indexOf(jobApplication) + 1);
}
}
setRankingCompleted(true);
} }
public Boolean jobDetailsCompleted()
public Boolean jobMatchCompleted()
{ {
return Boolean.TRUE; return getJobTitle() != null && getJobDescription() != null;
} }
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
<TRANSIENT name="AssessmentTemplateName" type="String"/> <TRANSIENT name="AssessmentTemplateName" type="String"/>
<TRANSIENT name="CultureTemplateName" type="String"/> <TRANSIENT name="CultureTemplateName" type="String"/>
<TRANSIENT name="AppProcessOption" type="AppProcessOption" attribHelper="EnumeratedAttributeHelper"/> <TRANSIENT name="AppProcessOption" type="AppProcessOption" attribHelper="EnumeratedAttributeHelper"/>
<TRANSIENT name="RankingCompleted" type="Boolean" />
<TRANSIENTSINGLE name="AssessmentTemplate" type="AssessmentCriteriaTemplate" /> <TRANSIENTSINGLE name="AssessmentTemplate" type="AssessmentCriteriaTemplate" />
<TRANSIENTSINGLE name="CultureTemplate" type="CultureCriteriaTemplate" /> <TRANSIENTSINGLE name="CultureTemplate" type="CultureCriteriaTemplate" />
......
package performa.orm; package performa.orm;
import java.util.*; import java.util.*;
import oneit.logging.LoggingArea; import oneit.logging.*;
import oneit.objstore.*; import oneit.objstore.*;
import oneit.objstore.rdbms.filters.EqualsFilter; import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.objstore.rdbms.filters.IsNotNullFilter; import oneit.objstore.rdbms.filters.IsNotNullFilter;
...@@ -236,33 +236,89 @@ public class JobApplication extends BaseJobApplication ...@@ -236,33 +236,89 @@ public class JobApplication extends BaseJobApplication
{ {
return getJob() != null && isTrue(getJob().getIncludeAssessmentCriteria()); return getJob() != null && isTrue(getJob().getIncludeAssessmentCriteria());
} }
// TODO: Fix these hard coded values
@Override @Override
public Integer getOverallSuitability() public Map getRoleFit()
{ {
return 1; if(super.getRoleFit() == null && getCandidate() != null && getJob() != null && getJob().getLevel() != null)
{
try
{
setRoleFit(AnalysisEngine.getRoleFitSuitability(getCandidate(), getJob().getLevel()));
}
catch (FieldException ex)
{
LogMgr.log(LOG, LogLevel.PROCESSING1, ex, "Error occured when setting RoleFit for " + this);
}
}
return super.getRoleFit();
} }
@Override
public Double getJobMatchPercentage() //ROLE public Map getCultureFit()
{ {
return AnalysisEngine.getRoleFitSuitability(getCandidate(), getJob().getLevel()).get(null); if(super.getCultureFit() == null && getCandidate() != null && getJob() != null && getJob().getLevel() != null)
{
try
{
setCultureFit(AnalysisEngine.getCultureFit(getCandidate().getCultureCriteriaAnswersSet(), getJob()));
}
catch (FieldException ex)
{
LogMgr.log(LOG, LogLevel.PROCESSING1, ex, "Error occured when setting CultureFit for " + this);
}
}
return super.getCultureFit();
} }
@Override
public int getCulturePercentage() public Map getRequirementFit()
{ {
return AnalysisEngine.getCultureFit(getCandidate().getCultureCriteriaAnswersSet(), getJob()).get(null).intValue(); if(super.getRequirementFit() == null)
{
try
{
setRequirementFit(AnalysisEngine.getRequirementFit(getAssessmentCriteriaAnswersSet()));
}
catch (FieldException ex)
{
LogMgr.log(LOG, LogLevel.PROCESSING1, ex, "Error occured when setting RequirementFit for " + this);
}
}
return super.getRequirementFit();
}
@Override
public Integer getOverallRank()
{
if(getJob() != null)
{
try
{
getJob().calculateRoleFitForRanking();
}
catch (FieldException ex)
{
LogMgr.log(LOG, LogLevel.PROCESSING1, ex, "Error occured when setting OverallRank for " + this);
}
}
return super.getOverallRank();
} }
public Double getRoleFitScore()
{
return getRoleFit() != null ? (Double)getRoleFit().get(null) : 0d;
}
public int getCriteriaPercentage () //REQ public Long getCultureFitScore()
{ {
return AnalysisEngine.getRequirementFit(getAssessmentCriteriaAnswersSet()).get(null).intValue(); return getCultureFit() != null ? (Long) getCultureFit().get(null) : 0;
} }
public Long getRequirementFitScore()
{
return getRequirementFit() != null ? (Long) getRequirementFit().get(null) : 0;
}
public List<AppProcessOption> getValidProcessOptions() public List<AppProcessOption> getValidProcessOptions()
{ {
......
...@@ -8,7 +8,10 @@ ...@@ -8,7 +8,10 @@
<MULTIPLEREFERENCE name="AssessmentCriteriaAnswers" type="AssessmentCriteriaAnswer" backreferenceName="JobApplication" /> <MULTIPLEREFERENCE name="AssessmentCriteriaAnswers" type="AssessmentCriteriaAnswer" backreferenceName="JobApplication" />
<TRANSIENT name="AppProcessOption" type="AppProcessOption" attribHelper="EnumeratedAttributeHelper"/> <TRANSIENT name="AppProcessOption" type="AppProcessOption" attribHelper="EnumeratedAttributeHelper"/>
<TRANSIENT name="OverallSuitability" type="Integer"/> <TRANSIENT name="OverallRank" type="Integer" />
<TRANSIENT name="RoleFit" type="Map" attribHelper="BLOBAttributeHelper" attribHelperInstance="BLOBAttributeHelper.INSTANCE"/>
<TRANSIENT name="RequirementFit" type="Map" attribHelper="BLOBAttributeHelper" attribHelperInstance="BLOBAttributeHelper.INSTANCE"/>
<TRANSIENT name="CultureFit" type="Map" attribHelper="BLOBAttributeHelper" attribHelperInstance="BLOBAttributeHelper.INSTANCE"/>
<TABLE name="tl_job_application" tablePrefix="object" polymorphic="FALSE"> <TABLE name="tl_job_application" tablePrefix="object" polymorphic="FALSE">
......
package performa.utils;
import oneit.utils.ObjectTransform;
import performa.orm.JobApplication;
/**
*
* @author Harsh
*/
public class JobApplicationCultureFitTransform implements ObjectTransform<JobApplication, Long>
{
public static final JobApplicationCultureFitTransform INSTANCE = new JobApplicationCultureFitTransform();
@Override
public Long transform(JobApplication original)
{
if(original == null)
{
return null;
}
return original.getCultureFitScore();
}
}
\ No newline at end of file
package performa.utils;
import oneit.utils.ObjectTransform;
import performa.orm.JobApplication;
/**
*
* @author Harsh
*/
public class JobApplicationRoleFitTransform implements ObjectTransform<JobApplication, Double>
{
public static final JobApplicationRoleFitTransform INSTANCE = new JobApplicationRoleFitTransform();
@Override
public Double transform(JobApplication original)
{
if(original == null)
{
return null;
}
return original.getRoleFitScore();
}
}
\ No newline at end of file
...@@ -164,17 +164,17 @@ public class Utils ...@@ -164,17 +164,17 @@ public class Utils
if(appSortOption==AppSortOption.OLDEST) if(appSortOption==AppSortOption.OLDEST)
{ {
transform = JobApplication.pipesJobApplication().toSubmittedDate(); transform = JobApplication.pipesJobApplication().toSubmittedDate();
comparator = CollectionUtils.DEFAULT_COMPARATOR; comparator = CollectionUtils.DEFAULT_COMPARATOR_NULLS_FIRST;
} }
else if(appSortOption==AppSortOption.NEWEST) else if(appSortOption==AppSortOption.NEWEST)
{ {
transform = JobApplication.pipesJobApplication().toSubmittedDate(); transform = JobApplication.pipesJobApplication().toSubmittedDate();
comparator = CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR); comparator = CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR_NULLS_FIRST);
} }
else if(appSortOption==AppSortOption.RANK) else if(appSortOption==AppSortOption.RANK)
{ {
transform = JobApplication.pipesJobApplication().toOverallSuitability(); transform = JobApplication.pipesJobApplication().toOverallRank();
comparator = CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR); comparator = CollectionUtils.DEFAULT_COMPARATOR_NULLS_FIRST;
} }
else if(appSortOption==AppSortOption.ALPHA_A_Z) else if(appSortOption==AppSortOption.ALPHA_A_Z)
{ {
...@@ -188,8 +188,8 @@ public class Utils ...@@ -188,8 +188,8 @@ public class Utils
} }
return ObjstoreUtils.sort( Arrays.asList(applications), return ObjstoreUtils.sort( Arrays.asList(applications),
new ObjectTransform[]{transform}, new ObjectTransform[]{transform},
new Comparator[]{comparator}); new Comparator[]{comparator});
} }
......
...@@ -29,9 +29,9 @@ ...@@ -29,9 +29,9 @@
for(JobApplication jobApplication : applications) for(JobApplication jobApplication : applications)
{ {
String jobMatch = FormatUtils.stringify(jobApplication.getJobMatchPercentage(), "TwoDPDouble", "0"); String roleFit = FormatUtils.stringify(jobApplication.getRoleFitScore(), "PercentageWholeNumber", "0");
String culture = FormatUtils.stringify(jobApplication.getCulturePercentage(), "PercentageWholeNumber", "0"); String culture = FormatUtils.stringify(jobApplication.getCultureFitScore(), "PercentageWholeNumber", "0");
String criteria = FormatUtils.stringify(jobApplication.getCriteriaPercentage(), "PercentageWholeNumber", "0"); String criteria = FormatUtils.stringify(jobApplication.getRequirementFitScore(), "PercentageWholeNumber", "0");
String appID = "app-id-" + jobApplication.getID().toString(); String appID = "app-id-" + jobApplication.getID().toString();
%> %>
<div class="appli-row" id="<%= jobApplication.getID() %>"> <div class="appli-row" id="<%= jobApplication.getID() %>">
...@@ -57,14 +57,14 @@ ...@@ -57,14 +57,14 @@
</div> </div>
<!--TODO: logic needed to be worked out. Added to note that there are three colors--> <!--TODO: logic needed to be worked out. Added to note that there are three colors-->
<div class="<%= "appli-percent-no " + (j == 0 ? "first green" : (j < 3 ? "blue" : "grey" ))%>"> <div class="<%= "appli-percent-no " + (j == 0 ? "first green" : (j < 3 ? "blue" : "grey" ))%>">
<oneit:toString value="<%= jobApplication.getOverallSuitability() %>" mode="Integer" /> <oneit:toString value="<%= jobApplication.getOverallRank() %>" mode="Integer" />
</div> </div>
</div> </div>
<div class="appli-jcs appli-l eq-second-height"> <div class="appli-jcs appli-l eq-second-height">
<span class="appli-view-bar"> <span class="appli-view-bar">
<div class="progress"> <div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="<%= jobMatch %>" aria-valuemin="0" aria-valuemax="100" <div class="progress-bar" role="progressbar" aria-valuenow="<%= roleFit %>" aria-valuemin="0" aria-valuemax="100"
style="<%= "width: " + jobMatch %>"> style="<%= "width: " + roleFit %>">
</div> </div>
</div> </div>
</span> </span>
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<oneit:dynIncluded> <oneit:dynIncluded>
<% <%
Map<FactorClass, Double> roleScoreMap = AnalysisEngine.getRoleFitSuitability(candidate, job.getLevel()); Map<FactorClass, Double> roleScoreMap = (Map<FactorClass, Double>)jobApplication.getRoleFit();
%> %>
<script> <script>
function tabToggle(tab) { function tabToggle(tab) {
...@@ -74,19 +74,19 @@ ...@@ -74,19 +74,19 @@
<div class="col-sm-4 col-xs-12 text-center" href="#1a" data-toggle="tab" id="progress1" onClick="tabToggle('#tab1')"> <div class="col-sm-4 col-xs-12 text-center" href="#1a" data-toggle="tab" id="progress1" onClick="tabToggle('#tab1')">
<label class="progress-label">role fit</label> <label class="progress-label">role fit</label>
<div class="percent-green fixed-width"> <div class="percent-green fixed-width">
<p style="display:none;"><oneit:toString value="<%= roleScoreMap.get(null) %>" mode="TwoDPDouble" nullValue="0"/></p> <p style="display:none;"><oneit:toString value="<%= jobApplication.getRoleFitScore() %>" mode="TwoDPDouble" nullValue="0"/></p>
</div> </div>
</div> </div>
<div class="col-sm-4 col-xs-12 text-center" href="#2a" data-toggle="tab" id="progress2" onClick="tabToggle('#tab2')"> <div class="col-sm-4 col-xs-12 text-center" href="#2a" data-toggle="tab" id="progress2" onClick="tabToggle('#tab2')">
<label class="progress-label">culture fit</label> <label class="progress-label">culture fit</label>
<div class="percent-green fixed-width"> <div class="percent-green fixed-width">
<p style="display:none;"><oneit:toString value="<%= jobApplication.getCulturePercentage() %>" mode="PercentageWholeNumber" /></p> <p style="display:none;"><oneit:toString value="<%= jobApplication.getCultureFitScore() %>" mode="PercentageWholeNumber" /></p>
</div> </div>
</div> </div>
<div class="col-sm-4 col-xs-12 text-center" href="#3a" data-toggle="tab" id="progress3" onClick="tabToggle('#tab3')"> <div class="col-sm-4 col-xs-12 text-center" href="#3a" data-toggle="tab" id="progress3" onClick="tabToggle('#tab3')">
<label class="progress-label">requirements</label> <label class="progress-label">requirements</label>
<div class="percent-blue fixed-width"> <div class="percent-blue fixed-width">
<p style="display:none;"><oneit:toString value="<%= jobApplication.getCriteriaPercentage() %>" mode="PercentageWholeNumber" /></p> <p style="display:none;"><oneit:toString value="<%= jobApplication.getRequirementFitScore() %>" mode="PercentageWholeNumber" /></p>
</div> </div>
</div> </div>
</div> </div>
...@@ -163,7 +163,7 @@ ...@@ -163,7 +163,7 @@
</div> </div>
<div class="tab-pane" id="2a"> <div class="tab-pane" id="2a">
<% <%
Map<CultureClass, Long> cultureFitData = AnalysisEngine.getCultureFit(candidate.getCultureCriteriaAnswersSet(), job); Map<CultureClass, Long> cultureFitData = (Map<CultureClass, Long>)jobApplication.getCultureFit();
for(CultureClass cClass: cultureFitData.keySet()) for(CultureClass cClass: cultureFitData.keySet())
{ {
...@@ -236,7 +236,7 @@ ...@@ -236,7 +236,7 @@
</div> </div>
<div class="tab-pane" id="3a"> <div class="tab-pane" id="3a">
<% <%
Map<Importance, Long> requirementFitData = AnalysisEngine.getRequirementFit(jobApplication.getAssessmentCriteriaAnswersSet()); Map<Importance, Long> requirementFitData = (Map<Importance, Long>)jobApplication.getRequirementFit();
for(Importance importance: requirementFitData.keySet()) for(Importance importance: requirementFitData.keySet())
{ {
...@@ -317,7 +317,7 @@ ...@@ -317,7 +317,7 @@
<div class="app-right-b"> <div class="app-right-b">
<div class="overall-suit">overall rank</div> <div class="overall-suit">overall rank</div>
<div class="big-percentage"> <div class="big-percentage">
<oneit:toString value="<%= jobApplication.getOverallSuitability() %>" mode="Integer" /> <oneit:toString value="<%= jobApplication.getOverallRank() %>" mode="Integer" />
</div> </div>
</div> </div>
<div class="applicant-contact-info"> <div class="applicant-contact-info">
......
...@@ -127,7 +127,7 @@ ...@@ -127,7 +127,7 @@
Candidate candidate = jobApplication.getCandidate(); Candidate candidate = jobApplication.getCandidate();
String appID = "app-id-" + jobApplication.getID().toString(); String appID = "app-id-" + jobApplication.getID().toString();
Map<FactorClass, Double> roleScoreMap = AnalysisEngine.getRoleFitSuitability(candidate, job.getLevel()); Map<FactorClass, Double> roleScoreMap = (Map<FactorClass, Double>)jobApplication.getRoleFit();
%> %>
<div class="<%= "appl-c-box " + (i == 0 ? " cb-one" : "")%> "> <div class="<%= "appl-c-box " + (i == 0 ? " cb-one" : "")%> ">
<oneit:button value=" " name="gotoPage" skin="link" <oneit:button value=" " name="gotoPage" skin="link"
...@@ -148,14 +148,14 @@ ...@@ -148,14 +148,14 @@
<div class="overall-suitablity grid-suitability"> <div class="overall-suitablity grid-suitability">
<!--TODO: need to work on the logic. just added to demonstrate that there are 3 different colors for this--> <!--TODO: need to work on the logic. just added to demonstrate that there are 3 different colors for this-->
<div class="<%= "over-all " + (i == 0 ? "f-60 green" : (i < 3 ? "blue" : "gray"))%>"> <div class="<%= "over-all " + (i == 0 ? "f-60 green" : (i < 3 ? "blue" : "gray"))%>">
<oneit:toString value="<%= jobApplication.getOverallSuitability() %>" mode="Integer" /> <oneit:toString value="<%= jobApplication.getOverallRank() %>" mode="Integer" />
</div> </div>
<div class="<%= "overall " + (i == 0 ? "f-60" : "")%>">overall rank</div> <div class="<%= "overall " + (i == 0 ? "f-60" : "")%>">overall rank</div>
</div> </div>
<div class="jcc-box"> <div class="jcc-box">
<div class="job-match jcc"> <div class="job-match jcc">
<img src="images/app-job-match-icon.svg"> Role fit <img src="images/app-job-match-icon.svg"> Role fit
<span><oneit:toString value="<%= jobApplication.getJobMatchPercentage() %>" mode="TwoDPDouble" /></span> <span><oneit:toString value="<%= jobApplication.getRoleFitScore() %>" mode="TwoDPDouble" /></span>
</div> </div>
<div class="detail-box"> <div class="detail-box">
<% <%
...@@ -181,13 +181,13 @@ ...@@ -181,13 +181,13 @@
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap()) .mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>"> .toMap() %>">
<oneit:toString value="<%= jobApplication.getCulturePercentage() %>" mode="PercentageWholeNumber" /> <oneit:toString value="<%= jobApplication.getCultureFitScore() %>" mode="PercentageWholeNumber" />
</oneit:button> </oneit:button>
</span> </span>
</div> </div>
<div class="detail-box"> <div class="detail-box">
<% <%
Map<CultureClass, Long> cultureFitData = AnalysisEngine.getCultureFit(candidate.getCultureCriteriaAnswersSet(), job); Map<CultureClass, Long> cultureFitData = (Map<CultureClass, Long>)jobApplication.getCultureFit();
for(CultureClass cClass: cultureFitData.keySet()) for(CultureClass cClass: cultureFitData.keySet())
{ {
...@@ -211,13 +211,13 @@ ...@@ -211,13 +211,13 @@
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap()) .mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>"> .toMap() %>">
<oneit:toString value="<%= jobApplication.getCriteriaPercentage() %>" mode="PercentageWholeNumber" /> <oneit:toString value="<%= jobApplication.getRequirementFitScore() %>" mode="PercentageWholeNumber" />
</oneit:button> </oneit:button>
</span> </span>
</div> </div>
<div class="detail-box"> <div class="detail-box">
<% <%
Map<Importance, Long> requirementFitData = AnalysisEngine.getRequirementFit(jobApplication.getAssessmentCriteriaAnswersSet()); Map<Importance, Long> requirementFitData = (Map<Importance, Long>)jobApplication.getRequirementFit();
for(Importance importance: requirementFitData.keySet()) for(Importance importance: requirementFitData.keySet())
{ {
......
...@@ -140,7 +140,7 @@ ...@@ -140,7 +140,7 @@
<div class="overall-suitablity"> <div class="overall-suitablity">
<div class="<%= "overall " + (index == 0 ? "f-60" : "")%>">overall rank</div> <div class="<%= "overall " + (index == 0 ? "f-60" : "")%>">overall rank</div>
<div class="<%= "over-all " + (index == 0 ? "f-60 green" : (index < 3 ? "blue" : "gray"))%> "> <div class="<%= "over-all " + (index == 0 ? "f-60 green" : (index < 3 ? "blue" : "gray"))%> ">
<oneit:toString value="<%= jobApplication.getOverallSuitability() %>" mode="Integer" /> <oneit:toString value="<%= jobApplication.getOverallRank() %>" mode="Integer" />
</div> </div>
</div> </div>
<div class="jcc-box"> <div class="jcc-box">
...@@ -151,7 +151,7 @@ ...@@ -151,7 +151,7 @@
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap()) .mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>"> .toMap() %>">
<oneit:toString value="<%= jobApplication.getJobMatchPercentage() %>" mode="TwoDPDouble" /> <oneit:toString value="<%= jobApplication.getRoleFitScore() %>" mode="TwoDPDouble" />
</oneit:button> </oneit:button>
</span> </span>
</div> </div>
...@@ -162,7 +162,7 @@ ...@@ -162,7 +162,7 @@
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap()) .mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>"> .toMap() %>">
<oneit:toString value="<%= jobApplication.getCulturePercentage() %>" mode="PercentageWholeNumber" /> <oneit:toString value="<%= jobApplication.getCultureFitScore() %>" mode="PercentageWholeNumber" />
</oneit:button> </oneit:button>
</span> </span>
</div> </div>
...@@ -173,7 +173,7 @@ ...@@ -173,7 +173,7 @@
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap()) .mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>"> .toMap() %>">
<oneit:toString value="<%= jobApplication.getCriteriaPercentage() %>" mode="PercentageWholeNumber" /> <oneit:toString value="<%= jobApplication.getRequirementFitScore() %>" mode="PercentageWholeNumber" />
</oneit:button> </oneit:button>
</span> </span>
</div> </div>
......
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