package foundation.code.segment; import foundation.code.CodeRule; import foundation.code.SegmentCreator; import foundation.persist.NamedSQL; import foundation.persist.SQLRunner; import foundation.variant.provider.IVariantsProvider; public class NoSegment extends SegmentCreator { public static String SQLName_NextVal = "code_next_sequence"; public static String SQLName_CurrVal = "code_curr_sequence"; private String ruleCode; private NamedSQL nextvalSQL; private NamedSQL currvalSQL; private String cachedValue; public NoSegment() { } @Override protected void init(CodeRule rule) { ruleCode = rule.getCode(); try { nextvalSQL = NamedSQL.getInstance(SQLName_NextVal); nextvalSQL.setParam("code", ruleCode); currvalSQL = NamedSQL.getInstance(SQLName_CurrVal); currvalSQL.setParam("code", ruleCode); } catch(Exception e) { e.printStackTrace(); } } @Override public String getNextSequenceValue(String dynamic, IVariantsProvider... entitys) { try { int value = SQLRunner.getInteger(nextvalSQL); String result = String.valueOf(value); result = format(result); cachedValue = result; return result; } catch (Exception e) { return null; } } @Override public String getCurrSequenceValue(String dynamic, IVariantsProvider... entitys) { try { int value = SQLRunner.getInteger(nextvalSQL); String result = String.valueOf(value); result = format(result); cachedValue = result; return result; } catch (Exception e) { return null; } } @Override public String getTempValue(String dynamic, IVariantsProvider... entitys) { String result = format("#"); return result; } @Override protected void setCodeRule(CodeRule codeRule) { ruleCode = codeRule.getCode(); super.setCodeRule(codeRule); } @Override public String toString() { return codeRule.getCode() + " : " + cachedValue; } }