package foundation.state.approve; import foundation.dao.preload.Bucket; import foundation.state.StateMachineLoader; public class ApproveTemplateBucket extends Bucket { private static ApproveTemplateBucket instance; private ApproveTemplateBucket() { } public static synchronized ApproveTemplateBucket getInstance() { if (instance == null) { instance = new ApproveTemplateBucket(); } return instance; } public ApproveTemplate getOrLoad(String templateId) throws Exception { ApproveTemplate result = get(templateId); if (result != null) { return result; } synchronized (this) { result = get(templateId); if (result != null) { return result; } result = StateMachineLoader.loadOneApproveTemplate(templateId); if (result != null) { loadOne(templateId, result); } } return result; } }