package gw.exportimport.resolver
uses gw.api.locale.DisplayKey
uses gw.api.util.StateJurisdictionMappingUtil
uses gw.exportimport.ColumnInfo
uses gw.exportimport.CellData
uses gw.exportimport.ImportMetaData
uses java.util.Map
uses gw.api.extension.ExtensionInterfaces
/**
* Resolves the leaf of a {@link ColumnDataResolver} path as a
* {@link CPClassCode}. This exports the {@link CPClassCode#Code} value
* and resolves it back to a CPClassCode on import.
*/
@Export
class CPClassCodeColumnDataResolver extends AbstractColumnDataResolver {
construct(aColumnInfo : ColumnInfo) {
super(aColumnInfo)
}
override function resolveCellValue(bean : KeyableBean) : Object {
var resolvedBean = resolveBean(bean)
if (resolvedBean typeis CPClassCode) {
return resolvedBean.Code
}
return null
}
override function calculateCellValue(bean : KeyableBean, cellData : CellData, metaData : ImportMetaData, dependentData : Map) : CPClassCode {
var period = (bean as EffDated).BranchUntyped as PolicyPeriod
if (cellData.Data.NotBlank) {
var searchCriteria = ExtensionInterfaces.ICPClassCodeSearchCriteriaFactory.newInstance()
searchCriteria.Code = cellData.Data
var state = dependentData["State"] as State
if (state == null) {
createIssue(bean, cellData, metaData, DisplayKey.get("Import.Validation.Errors.MissingDependentDataState"))
}
var jurisdiction = StateJurisdictionMappingUtil.getJurisdictionMappingForState(state)
searchCriteria.EffectiveAsOfDate = ExtensionInterfaces.IPolicyPeriodExtensions.getCPLine(period).getReferenceDateForCurrentJob(jurisdiction)
var searchResults = searchCriteria.performSearch()
if (searchResults.Empty) {
createIssue(bean, cellData, metaData, DisplayKey.get("Import.Validation.Errors.NoClassCodeFound", cellData.Data, jurisdiction))
}
return searchResults.FirstResult
}
return null
}
}