1 24 package org.ofbiz.minilang.method.callops; 25 26 import java.util.*; 27 28 import org.w3c.dom.*; 29 import org.ofbiz.base.util.*; 30 import org.ofbiz.minilang.*; 31 import org.ofbiz.minilang.method.*; 32 33 40 public class AddError extends MethodOperation { 41 String message = null; 42 String propertyResource = null; 43 boolean isProperty = false; 44 45 ContextAccessor errorListAcsr; 46 47 public AddError(Element element, SimpleMethod simpleMethod) { 48 super(element, simpleMethod); 49 errorListAcsr = new ContextAccessor(element.getAttribute("error-list-name"), "error_list"); 50 51 Element failMessage = UtilXml.firstChildElement(element, "fail-message"); 52 Element failProperty = UtilXml.firstChildElement(element, "fail-property"); 53 54 if (failMessage != null) { 55 this.message = failMessage.getAttribute("message"); 56 this.isProperty = false; 57 } else if (failProperty != null) { 58 this.propertyResource = failProperty.getAttribute("resource"); 59 this.message = failProperty.getAttribute("property"); 60 this.isProperty = true; 61 } 62 } 63 64 public boolean exec(MethodContext methodContext) { 65 boolean hasPermission = false; 66 67 List messages = (List) errorListAcsr.get(methodContext); 68 if (messages == null) { 69 messages = new LinkedList(); 70 errorListAcsr.put(methodContext, messages); 71 } 72 73 this.addMessage(messages, methodContext.getLoader(), methodContext); 74 return true; 75 } 76 77 public void addMessage(List messages, ClassLoader loader, MethodContext methodContext) { 78 String message = methodContext.expandString(this.message); 79 String propertyResource = methodContext.expandString(this.propertyResource); 80 81 if (!isProperty && message != null) { 82 messages.add(message); 83 } else if (isProperty && propertyResource != null && message != null) { 85 String propMsg = UtilProperties.getMessage(propertyResource, message, methodContext.getEnvMap(), methodContext.getLocale()); 87 88 if (propMsg == null || propMsg.length() == 0) { 89 messages.add("Simple Method error occurred, but no message was found, sorry."); 90 } else { 91 messages.add(methodContext.expandString(propMsg)); 92 } 93 } else { 95 messages.add("Simple Method error occurred, but no message was found, sorry."); 96 } 98 } 99 100 public String rawString() { 101 return "<add-error/>"; 103 } 104 public String expandedString(MethodContext methodContext) { 105 return this.rawString(); 107 } 108 } 109 | Popular Tags |