Author: adrianc
Date: Wed May 16 18:04:30 2012
New Revision: 1339290
URL: http://svn.apache.org/viewvc?rev=1339290&view=rev
Log:
Added new class to model the Mini-language <fail-message> and <fail-property>
elements. Updated the <add-error> element to use the new class.
Added:
ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MessageElement.java
(with props)
Modified:
ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/AddError.java
Added:
ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MessageElement.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MessageElement.java?rev=1339290&view=auto
==============================================================================
---
ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MessageElement.java
(added)
+++
ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MessageElement.java
Wed May 16 18:04:30 2012
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+
*******************************************************************************/
+package org.ofbiz.minilang.method;
+
+import org.ofbiz.base.util.UtilProperties;
+import org.ofbiz.base.util.UtilXml;
+import org.ofbiz.base.util.string.FlexibleStringExpander;
+import org.ofbiz.minilang.MiniLangElement;
+import org.ofbiz.minilang.MiniLangException;
+import org.ofbiz.minilang.MiniLangValidate;
+import org.ofbiz.minilang.SimpleMethod;
+import org.w3c.dom.Element;
+
+/**
+ * Implements the <fail-message> and <fail-property> elements.
+ */
+public final class MessageElement extends MiniLangElement {
+
+ public static MessageElement fromParentElement(Element element,
SimpleMethod simpleMethod) throws MiniLangException {
+ Element childElement = UtilXml.firstChildElement(element,
"fail-message");
+ if (childElement != null) {
+ return new MessageElement(childElement, simpleMethod);
+ } else {
+ childElement = UtilXml.firstChildElement(element, "fail-property");
+ if (childElement != null) {
+ return new MessageElement(childElement, simpleMethod);
+ } else {
+ return null;
+ }
+ }
+ }
+
+ private final FlexibleStringExpander messageFse;
+ private final String propertykey;
+ private final String propertyResource;
+
+ public MessageElement(Element element, SimpleMethod simpleMethod) throws
MiniLangException {
+ super(element, simpleMethod);
+ if ("fail-message".equals(element.getTagName())) {
+ if (MiniLangValidate.validationOn()) {
+ MiniLangValidate.attributeNames(simpleMethod, element,
"message");
+ MiniLangValidate.requiredAttributes(simpleMethod, element,
"message");
+
MiniLangValidate.constantPlusExpressionAttributes(simpleMethod, element,
"message");
+ }
+ this.messageFse =
FlexibleStringExpander.getInstance(element.getAttribute("message"));
+ this.propertykey = null;
+ this.propertyResource = null;
+ } else {
+ if (MiniLangValidate.validationOn()) {
+ MiniLangValidate.attributeNames(simpleMethod, element,
"property", "resource");
+ MiniLangValidate.requiredAttributes(simpleMethod, element,
"property", "resource");
+ MiniLangValidate.constantAttributes(simpleMethod, element,
"property", "resource");
+ }
+ this.messageFse = null;
+ this.propertykey = element.getAttribute("property");
+ this.propertyResource = element.getAttribute("resource");
+ }
+ }
+
+ public String getMessage(MethodContext methodContext) {
+ if (messageFse != null) {
+ return messageFse.expandString(methodContext.getEnvMap());
+ } else {
+ return UtilProperties.getMessage(propertyResource, propertykey,
methodContext.getEnvMap(), methodContext.getLocale());
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ if (this.messageFse != null) {
+ sb.append("<fail-message
message=\"").append(this.messageFse).append("\" />");
+ }
+ if (this.propertykey != null) {
+ sb.append("<fail-property
property=\"").append(this.propertykey).append("
resource=\"").append(this.propertyResource).append("\" />");
+ }
+ return sb.toString();
+ }
+}
Propchange:
ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MessageElement.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/MessageElement.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Rev URL
Modified:
ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/AddError.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/AddError.java?rev=1339290&r1=1339289&r2=1339290&view=diff
==============================================================================
---
ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/AddError.java
(original)
+++
ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/AddError.java
Wed May 16 18:04:30 2012
@@ -22,13 +22,12 @@ import java.util.List;
import javolution.util.FastList;
-import org.ofbiz.base.util.UtilProperties;
-import org.ofbiz.base.util.UtilXml;
import org.ofbiz.base.util.collections.FlexibleMapAccessor;
import org.ofbiz.base.util.string.FlexibleStringExpander;
import org.ofbiz.minilang.MiniLangException;
import org.ofbiz.minilang.MiniLangValidate;
import org.ofbiz.minilang.SimpleMethod;
+import org.ofbiz.minilang.method.MessageElement;
import org.ofbiz.minilang.method.MethodContext;
import org.ofbiz.minilang.method.MethodOperation;
import org.w3c.dom.Element;
@@ -39,9 +38,7 @@ import org.w3c.dom.Element;
public final class AddError extends MethodOperation {
private final FlexibleMapAccessor<List<String>> errorListFma;
- private final FlexibleStringExpander messageFse;
- private final String propertykey;
- private final String propertyResource;
+ private final MessageElement messageElement;
public AddError(Element element, SimpleMethod simpleMethod) throws
MiniLangException {
super(element, simpleMethod);
@@ -52,50 +49,21 @@ public final class AddError extends Meth
MiniLangValidate.requireAnyChildElement(simpleMethod, element,
"fail-message", "fail-property");
}
errorListFma =
FlexibleMapAccessor.getInstance(MiniLangValidate.checkAttribute(element.getAttribute("error-list-name"),
"error_list"));
- Element childElement = UtilXml.firstChildElement(element,
"fail-message");
- if (childElement != null) {
- if (MiniLangValidate.validationOn()) {
- MiniLangValidate.attributeNames(simpleMethod, childElement,
"message");
- MiniLangValidate.requiredAttributes(simpleMethod,
childElement, "message");
-
MiniLangValidate.constantPlusExpressionAttributes(simpleMethod, childElement,
"message");
- }
- this.messageFse =
FlexibleStringExpander.getInstance(childElement.getAttribute("message"));
- this.propertykey = null;
- this.propertyResource = null;
- } else {
- childElement = UtilXml.firstChildElement(element, "fail-property");
- if (childElement != null) {
- if (MiniLangValidate.validationOn()) {
- MiniLangValidate.attributeNames(simpleMethod,
childElement, "property", "resource");
- MiniLangValidate.requiredAttributes(simpleMethod,
childElement, "property", "resource");
- MiniLangValidate.constantAttributes(simpleMethod,
childElement, "property", "resource");
- }
- this.messageFse = FlexibleStringExpander.getInstance(null);
- this.propertykey = childElement.getAttribute("property");
- this.propertyResource = childElement.getAttribute("resource");
- } else {
- this.messageFse = FlexibleStringExpander.getInstance(null);
- this.propertykey = null;
- this.propertyResource = null;
- }
- }
+ messageElement = MessageElement.fromParentElement(element,
simpleMethod);
}
@Override
public boolean exec(MethodContext methodContext) throws MiniLangException {
- String message = null;
- if (!this.messageFse.isEmpty()) {
- message = this.messageFse.expandString(methodContext.getEnvMap());
- } else if (this.propertyResource != null) {
- message = UtilProperties.getMessage(this.propertyResource,
this.propertykey, methodContext.getEnvMap(), methodContext.getLocale());
- }
- if (message != null) {
- List<String> messages =
errorListFma.get(methodContext.getEnvMap());
- if (messages == null) {
- messages = FastList.newInstance();
+ if (messageElement != null) {
+ String message = messageElement.getMessage(methodContext);
+ if (message != null) {
+ List<String> messages =
errorListFma.get(methodContext.getEnvMap());
+ if (messages == null) {
+ messages = FastList.newInstance();
+ errorListFma.put(methodContext.getEnvMap(), messages);
+ }
+ messages.add(message);
}
- errorListFma.put(methodContext.getEnvMap(), messages);
- messages.add(message);
}
return true;
}
@@ -116,14 +84,11 @@ public final class AddError extends Meth
if (!"error_list".equals(this.errorListFma.getOriginalName())) {
sb.append("error-list-name=\"").append(this.errorListFma).append("\"");
}
- sb.append(">");
- if (!this.messageFse.isEmpty()) {
- sb.append("<fail-message
message=\"").append(this.messageFse).append("\" />");
- }
- if (this.propertykey != null) {
- sb.append("<fail-property
property=\"").append(this.propertykey).append("
resource=\"").append(this.propertyResource).append("\" />");
+ if (messageElement != null) {
+ sb.append(">").append(messageElement).append("</add-error>");
+ } else {
+ sb.append("/>");
}
- sb.append("</add-error>");
return sb.toString();
}