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 CreateValue extends MethodOperation { 43 44 public static final String module = CreateValue.class.getName(); 45 46 ContextAccessor valueAcsr; 47 String doCacheClearStr; 48 49 public CreateValue(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 create-value a value was not found with the specified valueAcsr: " + valueAcsr + ", not creating"; 61 Debug.logWarning(errMsg, module); 62 if (methodContext.getMethodType() == MethodContext.EVENT) { 63 methodContext.putEnv(simpleMethod.getEventErrorMessageName(), errMsg); 64 methodContext.putEnv(simpleMethod.getEventResponseCodeName(), simpleMethod.getDefaultErrorCode()); 65 } else if (methodContext.getMethodType() == MethodContext.SERVICE) { 66 methodContext.putEnv(simpleMethod.getServiceErrorMessageName(), errMsg); 67 methodContext.putEnv(simpleMethod.getServiceResponseMessageName(), simpleMethod.getDefaultErrorCode()); 68 } 69 return false; 70 } 71 72 try { 73 methodContext.getDelegator().create(value, doCacheClear); 74 } catch (GenericEntityException e) { 75 Debug.logError(e, module); 76 String errMsg = "ERROR: Could not complete the " + simpleMethod.getShortDescription() + " process [problem creating the " + valueAcsr + " value: " + e.getMessage() + "]"; 77 if (methodContext.getMethodType() == MethodContext.EVENT) { 78 methodContext.putEnv(simpleMethod.getEventErrorMessageName(), errMsg); 79 methodContext.putEnv(simpleMethod.getEventResponseCodeName(), simpleMethod.getDefaultErrorCode()); 80 } else if (methodContext.getMethodType() == MethodContext.SERVICE) { 81 methodContext.putEnv(simpleMethod.getServiceErrorMessageName(), errMsg); 82 methodContext.putEnv(simpleMethod.getServiceResponseMessageName(), simpleMethod.getDefaultErrorCode()); 83 } 84 return false; 85 } 86 return true; 87 } 88 89 public String rawString() { 90 return "<create-value/>"; 92 } 93 public String expandedString(MethodContext methodContext) { 94 return this.rawString(); 96 } 97 } 98 | Popular Tags |