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); } }