package foundation.dao.bizlogic; import foundation.data.meta.field.Field; import foundation.util.Util; import foundation.variant.provider.IVariantsProvider; public abstract class ICodeProvider { public static ICodeProviderCreator providerCreator; public static ICodeProvider getInstance(Field field, String codeRule) { if (providerCreator == null || Util.isEmpty(codeRule)) { return null; } int pos = codeRule.indexOf("."); if (pos > 0) { codeRule = codeRule.substring(pos + 1, codeRule.length()); } return providerCreator.createCodeProvider(field, codeRule); } public abstract String getFieldName(); public abstract String nextval(String dynamic, IVariantsProvider... providers); }