package jnpf.elnService.cross;
|
|
import jnpf.elnEntity.field.ElnFieldVersionEntity;
|
import jnpf.elnEntity.template.ElnTemplateBindingEntity;
|
|
/** Eligibility is deliberately narrow for the first cross-template tracer bullet. */
|
public final class ElnCrossTemplateScalarReferencePolicy {
|
|
private ElnCrossTemplateScalarReferencePolicy() {
|
}
|
|
public static boolean isEligible(String targetTemplateId, String sourceTemplateId,
|
String sourceTemplateStatus, String fieldScope,
|
ElnFieldVersionEntity version,
|
ElnTemplateBindingEntity binding) {
|
return targetTemplateId != null && !targetTemplateId.equals(sourceTemplateId)
|
&& "PUBLISHED".equals(sourceTemplateStatus)
|
&& "GLOBAL".equals(fieldScope)
|
&& version != null && "PUBLISHED".equals(version.getBizStatus())
|
&& isSupportedScalar(version.getShujuLeixing())
|
&& binding != null && "ACTIVE".equals(binding.getBangdingZhuangtai())
|
&& "PRIMARY".equals(binding.getKongjianJuese())
|
&& (binding.getRepeatGroupCode() == null || binding.getRepeatGroupCode().trim().isEmpty());
|
}
|
|
public static boolean isSupportedScalar(String dataType) {
|
return "TEXT".equals(dataType) || "TEXTAREA".equals(dataType)
|
|| "DECIMAL".equals(dataType) || "DATE".equals(dataType)
|
|| "DATETIME".equals(dataType) || "SELECT".equals(dataType)
|
|| "CHECKBOX".equals(dataType);
|
}
|
}
|