1 24 package org.ofbiz.minilang.method.entityops; 25 26 import org.ofbiz.base.util.Debug; 27 import org.ofbiz.entity.GenericEntityException; 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 StoreValue extends MethodOperation { 43 44 public static final String module = StoreValue.class.getName(); 45 46 ContextAccessor valueAcsr; 47 String doCacheClearStr; 48 49 public StoreValue(Element element, SimpleMethod simpleMethod) { 50 super(element, simpleMethod); 51 valueAcsr = new ContextAccessor(element.getAttribute("value-name")); 52 doCacheClearStr = element.getAttribute("do-cache-clear"); 53 } 54 55 public boolean exec(MethodContext methodContext) { 56 boolean doCacheClear = !"false".equals(methodContext.expandString(doCacheClearStr)); 57 58 GenericValue value = (GenericValue) valueAcsr.get(methodContext); 59 if (value == null) { 60 String errMsg = "In store-value a value was not found with the specified valueAcsr: " + valueAcsr + ", not storing"; 61 62 Debug.logWarning(errMsg, module); 63 if (methodContext.getMethodType() == MethodContext.EVENT) { 64 methodContext.putEnv(simpleMethod.getEventErrorMessageName(), errMsg); 65 methodContext.putEnv(simpleMethod.getEventResponseCodeName(), simpleMethod.getDefaultErrorCode()); 66 } else if (methodContext.getMethodType() == MethodContext.SERVICE) { 67 methodContext.putEnv(simpleMethod.getServiceErrorMessageName(), errMsg); 68 methodContext.putEnv(simpleMethod.getServiceResponseMessageName(), simpleMethod.getDefaultErrorCode()); 69 } 70 return false; 71 } 72 73 try { 74 methodContext.getDelegator().store(value, doCacheClear); 75 } catch (GenericEntityException e) { 76 Debug.logError(e, module); 77 String errMsg = "ERROR: Could not complete the " + simpleMethod.getShortDescription() + " process [problem storing the " + valueAcsr + " value: " + e.getMessage() + "]"; 78 79 if (methodContext.getMethodType() == MethodContext.EVENT) { 80 methodContext.putEnv(simpleMethod.getEventErrorMessageName(), errMsg); 81 methodContext.putEnv(simpleMethod.getEventResponseCodeName(), simpleMethod.getDefaultErrorCode()); 82 } else if (methodContext.getMethodType() == MethodContext.SERVICE) { 83 methodContext.putEnv(simpleMethod.getServiceErrorMessageName(), errMsg); 84 methodContext.putEnv(simpleMethod.getServiceResponseMessageName(), simpleMethod.getDefaultErrorCode()); 85 } 86 return false; 87 } 88 return true; 89 } 90 91 public String rawString() { 92 return "<store-value/>"; 94 } 95 public String expandedString(MethodContext methodContext) { 96 return this.rawString(); 98 } 99 } 100 | Popular Tags |