1 24 package org.ofbiz.minilang.method.otherops; 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 Log extends MethodOperation { 41 42 public static final String module = Log.class.getName(); 43 44 String levelStr; 45 String message; 46 List methodStrings = null; 47 48 public Log(Element element, SimpleMethod simpleMethod) { 49 super(element, simpleMethod); 50 this.message = element.getAttribute("message"); 51 this.levelStr = element.getAttribute("level"); 52 53 List methodStringElements = UtilXml.childElementList(element); 54 if (methodStringElements.size() > 0) { 55 methodStrings = new LinkedList(); 56 57 Iterator methodStringIter = methodStringElements.iterator(); 58 while (methodStringIter.hasNext()) { 59 Element methodStringElement = (Element) methodStringIter.next(); 60 if ("string".equals(methodStringElement.getNodeName())) { 61 methodStrings.add(new StringString(methodStringElement, simpleMethod)); 62 } else if ("field".equals(methodStringElement.getNodeName())) { 63 methodStrings.add(new FieldString(methodStringElement, simpleMethod)); 64 } else { 65 Debug.logWarning("Found an unsupported tag under the log tag: " + methodStringElement.getNodeName() + "; ignoring", module); 67 } 68 } 69 } 70 } 71 72 public boolean exec(MethodContext methodContext) { 73 String levelStr = methodContext.expandString(this.levelStr); 74 String message = methodContext.expandString(this.message); 75 76 int level; 77 Integer levelInt = Debug.getLevelFromString(levelStr); 78 if (levelInt == null) { 79 Debug.logWarning("Specified level [" + levelStr + "] was not valid, using INFO", module); 80 level = Debug.INFO; 81 } else { 82 level = levelInt.intValue(); 83 } 84 85 if (!Debug.isOn(level)) { 87 return true; 88 } 89 90 StringBuffer buf = new StringBuffer (); 91 92 if (message != null) buf.append(message); 93 94 if (methodStrings != null) { 95 Iterator methodStringsIter = methodStrings.iterator(); 96 while (methodStringsIter.hasNext()) { 97 MethodString methodString = (MethodString) methodStringsIter.next(); 98 String strValue = methodString.getString(methodContext); 99 if (strValue != null) buf.append(strValue); 100 } 101 } 102 103 Debug.log(level, null, buf.toString(), module); 104 105 return true; 106 } 107 108 public String rawString() { 109 return "<log level=\"" + this.levelStr + "\" message=\"" + this.message + "\"/>"; 111 } 112 public String expandedString(MethodContext methodContext) { 113 return this.rawString(); 115 } 116 } 117 | Popular Tags |