1 24 package org.ofbiz.minilang.method.entityops; 25 26 import org.ofbiz.base.util.Debug; 27 import org.ofbiz.base.util.UtilValidate; 28 import org.ofbiz.entity.GenericValue; 29 import org.ofbiz.minilang.SimpleMethod; 30 import org.ofbiz.minilang.method.ContextAccessor; 31 import org.ofbiz.minilang.method.MethodContext; 32 import org.ofbiz.minilang.method.MethodOperation; 33 import org.w3c.dom.Element ; 34 35 42 public class MakeNextSeqId extends MethodOperation { 43 44 public static final String module = MakeNextSeqId.class.getName(); 45 46 String seqFieldName; 47 ContextAccessor valueAcsr; 48 String numericPaddingStr; 49 String incrementByStr; 50 51 public MakeNextSeqId(Element element, SimpleMethod simpleMethod) { 52 super(element, simpleMethod); 53 seqFieldName = element.getAttribute("seq-field-name"); 54 valueAcsr = new ContextAccessor(element.getAttribute("value-name")); 55 56 numericPaddingStr = element.getAttribute("numeric-padding"); 57 incrementByStr = element.getAttribute("increment-by"); 58 } 59 60 public boolean exec(MethodContext methodContext) { 61 String seqFieldName = methodContext.expandString(this.seqFieldName); 62 String numericPaddingStr = methodContext.expandString(this.numericPaddingStr); 63 String incrementByStr = methodContext.expandString(this.incrementByStr); 64 int numericPadding = 5; 65 int incrementBy = 1; 66 try { 67 if (UtilValidate.isNotEmpty(numericPaddingStr)) { 68 numericPadding = Integer.parseInt(numericPaddingStr); 69 } 70 } catch (Exception e) { 71 Debug.logError(e, "numeric-padding format invalid for [" + numericPaddingStr + "]", module); 72 } 73 try { 74 if (UtilValidate.isNotEmpty(incrementByStr)) { 75 incrementBy = Integer.parseInt(incrementByStr); 76 } 77 } catch (Exception e) { 78 Debug.logError(e, "increment-by format invalid for [" + incrementByStr + "]", module); 79 } 80 81 GenericValue value = (GenericValue) valueAcsr.get(methodContext); 82 methodContext.getDelegator().setNextSubSeqId(value, seqFieldName, numericPadding, incrementBy); 83 84 return true; 85 } 86 87 public String rawString() { 88 return "<make-next-seq-id/>"; 90 } 91 public String expandedString(MethodContext methodContext) { 92 return this.rawString(); 94 } 95 } 96 | Popular Tags |