Author: adrianc
Date: Sun Nov 2 14:03:02 2014 New Revision: 1636137 URL: http://svn.apache.org/r1636137 Log: Delegate most tree widget actions to ModelWidgetAction. Tree nodes will support an <actions> element like other widgets, but that is still a WIP. Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelActionVisitor.java ofbiz/trunk/framework/widget/src/org/ofbiz/widget/artifact/ArtifactInfoGatherer.java ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTree.java ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTreeAction.java Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelActionVisitor.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelActionVisitor.java?rev=1636137&r1=1636136&r2=1636137&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelActionVisitor.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelActionVisitor.java Sun Nov 2 14:03:02 2014 @@ -20,6 +20,7 @@ package org.ofbiz.widget; import org.ofbiz.widget.form.ModelFormAction; import org.ofbiz.widget.menu.ModelMenuAction; +import org.ofbiz.widget.tree.ModelTreeAction; /** * A <code>ModelWidgetAction</code> visitor. @@ -55,4 +56,12 @@ public interface ModelActionVisitor { void visit(ModelFormAction.EntityCondition entityCondition); void visit(ModelMenuAction.SetField setField); + + void visit(ModelTreeAction.Script script); + + void visit(ModelTreeAction.Service service); + + void visit(ModelTreeAction.EntityAnd entityAnd); + + void visit(ModelTreeAction.EntityCondition entityCondition); } Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/artifact/ArtifactInfoGatherer.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/artifact/ArtifactInfoGatherer.java?rev=1636137&r1=1636136&r2=1636137&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/artifact/ArtifactInfoGatherer.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/artifact/ArtifactInfoGatherer.java Sun Nov 2 14:03:02 2014 @@ -96,6 +96,7 @@ import org.ofbiz.widget.screen.ModelScre import org.ofbiz.widget.screen.ModelScreenWidget.Section; import org.ofbiz.widget.screen.ModelScreenWidget.Tree; import org.ofbiz.widget.tree.ModelTree; +import org.ofbiz.widget.tree.ModelTreeAction; /** * An object that gathers artifact information from screen widgets. @@ -293,7 +294,6 @@ public final class ArtifactInfoGatherer String screenLocation = modelScreen.getSourceLocation().concat("#").concat(modelScreen.getName()); infoContext.addScreenLocation(screenLocation); modelScreen.getSection().accept(this); - ; } @Override @@ -416,6 +416,22 @@ public final class ArtifactInfoGatherer public void visit(ModelTree modelTree) { } + @Override + public void visit(ModelTreeAction.EntityAnd entityAnd) { + } + + @Override + public void visit(ModelTreeAction.EntityCondition entityCondition) { + } + + @Override + public void visit(ModelTreeAction.Script script) { + } + + @Override + public void visit(ModelTreeAction.Service service) { + } + private class FieldInfoGatherer implements ModelFieldVisitor { private void addRequestLocations(String target, String urlMode) { Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTree.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTree.java?rev=1636137&r1=1636136&r2=1636137&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTree.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTree.java Sun Nov 2 14:03:02 2014 @@ -21,6 +21,7 @@ package org.ofbiz.widget.tree; import java.io.IOException; import java.io.StringWriter; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; @@ -50,6 +51,7 @@ import org.ofbiz.entity.model.ModelField import org.ofbiz.entity.util.EntityListIterator; import org.ofbiz.service.LocalDispatcher; import org.ofbiz.widget.ModelWidget; +import org.ofbiz.widget.ModelWidgetAction; import org.ofbiz.widget.ModelWidgetVisitor; import org.ofbiz.widget.WidgetWorker; import org.ofbiz.widget.screen.ModelScreen; @@ -67,21 +69,21 @@ public class ModelTree extends ModelWidg public static final String module = ModelTree.class.getName(); - protected String treeLocation; - protected String rootNodeName; + protected String defaultEntityName; + protected String defaultPkName; protected String defaultRenderStyle; protected FlexibleStringExpander defaultWrapStyleExdr; - protected List<ModelNode> nodeList = new ArrayList<ModelNode>(); - protected Map<String, ModelNode> nodeMap = new HashMap<String, ModelNode>(); protected Delegator delegator; protected LocalDispatcher dispatcher; protected FlexibleStringExpander expandCollapseRequestExdr; - protected FlexibleStringExpander trailNameExdr; + protected boolean forceChildCheck; + protected List<ModelNode> nodeList = new ArrayList<ModelNode>(); + protected Map<String, ModelNode> nodeMap = new HashMap<String, ModelNode>(); protected int openDepth; protected int postTrailOpenDepth; - protected String defaultEntityName; - protected String defaultPkName; - protected boolean forceChildCheck; + protected String rootNodeName; + protected FlexibleStringExpander trailNameExdr; + protected String treeLocation; // ===== CONSTRUCTORS ===== /** Default Constructor */ @@ -125,7 +127,6 @@ public class ModelTree extends ModelWidg if (nodeList.size() == 0) { throw new IllegalArgumentException("No node elements found for the tree definition with name: " + getName()); } - } public void setDefaultEntityName(String name) { @@ -272,31 +273,29 @@ public class ModelTree extends ModelWidg } - public static class ModelNode { + public static class ModelNode extends ModelWidget { - protected FlexibleStringExpander screenNameExdr; - protected FlexibleStringExpander screenLocationExdr; - protected String shareScope; + private final List<ModelWidgetAction> actions; + protected ModelTreeCondition condition; + protected String entityName; + protected String entryName; + protected String expandCollapseStyle; + protected Image image; protected Label label; protected Link link; - protected Image image; - protected List<ModelSubNode> subNodeList = new ArrayList<ModelSubNode>(); - protected List<ModelTreeAction> actions = new ArrayList<ModelTreeAction>(); - protected String name; protected ModelTree modelTree; + protected String name; + protected String pkName; + protected String renderStyle; + protected FlexibleStringExpander screenLocationExdr; + protected FlexibleStringExpander screenNameExdr; + protected String shareScope; + protected List<ModelSubNode> subNodeList = new ArrayList<ModelSubNode>(); protected List<Object []> subNodeValues; - protected String expandCollapseStyle; protected FlexibleStringExpander wrapStyleExdr; - protected ModelTreeCondition condition; - protected String renderStyle; - protected String entryName; - protected String entityName; - protected String pkName; - - public ModelNode() {} public ModelNode(Element nodeElement, ModelTree modelTree) { - + super(nodeElement); this.modelTree = modelTree; this.name = nodeElement.getAttribute("name"); this.expandCollapseStyle = nodeElement.getAttribute("expand-collapse-style"); @@ -306,21 +305,25 @@ public class ModelTree extends ModelWidg setEntityName(nodeElement.getAttribute("entity-name")); if (this.pkName == null || nodeElement.hasAttribute("join-field-name")) this.pkName = nodeElement.getAttribute("join-field-name"); - + ArrayList<ModelWidgetAction> actions = new ArrayList<ModelWidgetAction>(); + Element actionsElement = UtilXml.firstChildElement(nodeElement, "actions"); + if (actionsElement != null) { + actions.addAll(ModelTreeAction.readNodeActions(this, actionsElement)); + } Element actionElement = UtilXml.firstChildElement(nodeElement, "entity-one"); if (actionElement != null) { - actions.add(new ModelTreeAction.EntityOne(this, actionElement)); + actions.add(new ModelWidgetAction.EntityOne(this, actionElement)); } - actionElement = UtilXml.firstChildElement(nodeElement, "service"); if (actionElement != null) { actions.add(new ModelTreeAction.Service(this, actionElement)); } - actionElement = UtilXml.firstChildElement(nodeElement, "script"); if (actionElement != null) { actions.add(new ModelTreeAction.Script(this, actionElement)); } + actions.trimToSize(); + this.actions = Collections.unmodifiableList(actions); Element screenElement = UtilXml.firstChildElement(nodeElement, "include-screen"); if (screenElement != null) { @@ -547,9 +550,9 @@ public class ModelTree extends ModelWidg for (ModelSubNode subNode: subNodeList) { String nodeName = subNode.getNodeName(context); ModelNode node = modelTree.nodeMap.get(nodeName); - List<ModelTreeAction> subNodeActions = subNode.getActions(); + List<ModelWidgetAction> subNodeActions = subNode.getActions(); //if (Debug.infoOn()) Debug.logInfo(" context.currentValue:" + context.get("currentValue"), module); - ModelTreeAction.runSubActions(subNodeActions, context); + ModelWidgetAction.runSubActions(subNodeActions, context); // List dataFound = (List)context.get("dataFound"); Iterator<? extends Map<String, ? extends Object>> dataIter = subNode.getListIterator(); if (dataIter instanceof EntityListIterator) { @@ -693,40 +696,40 @@ public class ModelTree extends ModelWidg this.pkName = pkName; } - public static class ModelSubNode { + public static class ModelSubNode extends ModelWidget { + private final List<ModelWidgetAction> actions; protected ModelNode rootNode; protected FlexibleStringExpander nodeNameExdr; - protected List<ModelTreeAction> actions = new ArrayList<ModelTreeAction>(); protected ListIterator<? extends Map<String, ? extends Object>> listIterator; - public ModelSubNode() {} - - public ModelSubNode(Element nodeElement, ModelNode modelNode) { - + public ModelSubNode(Element subNodeElement, ModelNode modelNode) { + super(subNodeElement); this.rootNode = modelNode; - this.nodeNameExdr = FlexibleStringExpander.getInstance(nodeElement.getAttribute("node-name")); - - Element actionElement = UtilXml.firstChildElement(nodeElement, "entity-and"); + this.nodeNameExdr = FlexibleStringExpander.getInstance(subNodeElement.getAttribute("node-name")); + ArrayList<ModelWidgetAction> actions = new ArrayList<ModelWidgetAction>(); + Element actionsElement = UtilXml.firstChildElement(subNodeElement, "actions"); + if (actionsElement != null) { + actions.addAll(ModelTreeAction.readNodeActions(this, actionsElement)); + } + Element actionElement = UtilXml.firstChildElement(subNodeElement, "entity-and"); if (actionElement != null) { actions.add(new ModelTreeAction.EntityAnd(this, actionElement)); } - - actionElement = UtilXml.firstChildElement(nodeElement, "service"); + actionElement = UtilXml.firstChildElement(subNodeElement, "service"); if (actionElement != null) { actions.add(new ModelTreeAction.Service(this, actionElement)); } - - actionElement = UtilXml.firstChildElement(nodeElement, "entity-condition"); + actionElement = UtilXml.firstChildElement(subNodeElement, "entity-condition"); if (actionElement != null) { actions.add(new ModelTreeAction.EntityCondition(this, actionElement)); } - - actionElement = UtilXml.firstChildElement(nodeElement, "script"); + actionElement = UtilXml.firstChildElement(subNodeElement, "script"); if (actionElement != null) { actions.add(new ModelTreeAction.Script(this, actionElement)); } - + actions.trimToSize(); + this.actions = Collections.unmodifiableList(actions); } public ModelTree.ModelNode getNode() { @@ -737,7 +740,7 @@ public class ModelTree extends ModelWidg return this.nodeNameExdr.expandString(context); } - public List<ModelTreeAction> getActions() { + public List<ModelWidgetAction> getActions() { return actions; } @@ -748,6 +751,12 @@ public class ModelTree extends ModelWidg public ListIterator<? extends Map<String, ? extends Object>> getListIterator() { return listIterator; } + + @Override + public void accept(ModelWidgetVisitor visitor) { + // TODO Auto-generated method stub + + } } public static class Label { @@ -1106,6 +1115,12 @@ public class ModelTree extends ModelWidg } } } + + @Override + public void accept(ModelWidgetVisitor visitor) { + // TODO Auto-generated method stub + + } } @Override Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTreeAction.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTreeAction.java?rev=1636137&r1=1636136&r2=1636137&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTreeAction.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTreeAction.java Sun Nov 2 14:03:02 2014 @@ -18,19 +18,16 @@ *******************************************************************************/ package org.ofbiz.widget.tree; +import java.util.ArrayList; import java.util.HashMap; -import java.util.LinkedList; import java.util.List; import java.util.ListIterator; -import java.util.Locale; import java.util.Map; -import java.util.TimeZone; import java.util.regex.PatternSyntaxException; -import org.ofbiz.base.util.BshUtil; import org.ofbiz.base.util.Debug; import org.ofbiz.base.util.GeneralException; -import org.ofbiz.base.util.ObjectType; +import org.ofbiz.base.util.ScriptUtil; import org.ofbiz.base.util.UtilFormatOut; import org.ofbiz.base.util.UtilGenerics; import org.ofbiz.base.util.UtilValidate; @@ -40,177 +37,104 @@ import org.ofbiz.base.util.string.Flexib import org.ofbiz.entity.finder.ByAndFinder; import org.ofbiz.entity.finder.ByConditionFinder; import org.ofbiz.entity.finder.EntityFinderUtil; -import org.ofbiz.entity.finder.PrimaryKeyFinder; import org.ofbiz.entity.util.EntityListIterator; +import org.ofbiz.minilang.MiniLangException; +import org.ofbiz.minilang.SimpleMethod; +import org.ofbiz.minilang.method.MethodContext; +import org.ofbiz.service.DispatchContext; import org.ofbiz.service.GenericServiceException; import org.ofbiz.service.ModelService; +import org.ofbiz.widget.ModelActionVisitor; +import org.ofbiz.widget.ModelWidget; +import org.ofbiz.widget.ModelWidgetAction; +import org.ofbiz.widget.WidgetWorker; import org.w3c.dom.Document; import org.w3c.dom.Element; /** * Widget Library - Tree model class */ -public abstract class ModelTreeAction { +@SuppressWarnings("serial") +public abstract class ModelTreeAction extends ModelWidgetAction { + public static final String module = ModelTreeAction.class.getName(); protected ModelTree modelTree; - protected ModelTree.ModelNode modelNode; protected ModelTree.ModelNode.ModelSubNode modelSubNode; public ModelTreeAction(ModelTree.ModelNode modelNode, Element actionElement) { if (Debug.verboseOn()) Debug.logVerbose("Reading Tree action with name: " + actionElement.getNodeName(), module); - this.modelNode = modelNode; this.modelTree = modelNode.getModelTree(); } public ModelTreeAction(ModelTree.ModelNode.ModelSubNode modelSubNode, Element actionElement) { if (Debug.verboseOn()) Debug.logVerbose("Reading Tree action with name: " + actionElement.getNodeName(), module); this.modelSubNode = modelSubNode; - this.modelNode = this.modelSubNode.getNode(); - this.modelTree = this.modelNode.getModelTree(); + this.modelTree = modelSubNode.getNode().getModelTree(); } - public abstract void runAction(Map<String, Object> context); - -/* - public static List readSubActions(ModelTree.ModelNode modelNode, Element parentElement) { - List actions = new LinkedList(); - - List actionElementList = UtilXml.childElementList(parentElement); - Iterator actionElementIter = actionElementList.iterator(); - while (actionElementIter.hasNext()) { - Element actionElement = (Element) actionElementIter.next(); - if ("set".equals(actionElement.getNodeName())) { - actions.add(new SetField(modelTree, actionElement)); - } else if ("script".equals(actionElement.getNodeName())) { - actions.add(new Script(modelTree, actionElement)); - } else if ("service".equals(actionElement.getNodeName())) { - actions.add(new Service(modelTree, actionElement)); - } else if ("entity-one".equals(actionElement.getNodeName())) { - actions.add(new EntityOne(modelTree, actionElement)); - } else if ("entity-and".equals(actionElement.getNodeName())) { - actions.add(new EntityAnd(modelTree, actionElement)); - } else if ("entity-condition".equals(actionElement.getNodeName())) { - actions.add(new EntityCondition(modelTree, actionElement)); - } else { - throw new IllegalArgumentException("Action element not supported with name: " + actionElement.getNodeName()); - } + public static List<ModelWidgetAction> readNodeActions(ModelWidget modelNode, Element actionsElement) { + List<? extends Element> actionElementList = UtilXml.childElementList(actionsElement); + List<ModelWidgetAction> actions = new ArrayList<ModelWidgetAction>(actionElementList.size()); + for (Element actionElement : actionElementList) { + // TODO: Check for tree-specific actions + actions.add(ModelWidgetAction.toModelWidgetAction(modelNode, actionElement)); } - return actions; } - */ - - public static void runSubActions(List<? extends ModelTreeAction> actions, Map<String, Object> context) { - for (ModelTreeAction action: actions) { - if (Debug.verboseOn()) Debug.logVerbose("Running tree action " + action.getClass().getName(), module); - action.runAction(context); - } - } - - public static class SetField extends ModelTreeAction { - protected FlexibleMapAccessor<Object> field; - protected FlexibleMapAccessor<Object> fromField; - protected FlexibleStringExpander valueExdr; - protected FlexibleStringExpander globalExdr; - protected String type; - - public SetField(ModelTree.ModelNode modelNode, Element setElement) { - super (modelNode, setElement); - this.field = FlexibleMapAccessor.getInstance(setElement.getAttribute("field")); - this.fromField = FlexibleMapAccessor.getInstance(setElement.getAttribute("from-field")); - this.valueExdr = FlexibleStringExpander.getInstance(setElement.getAttribute("value")); - this.globalExdr = FlexibleStringExpander.getInstance(setElement.getAttribute("global")); - this.type = setElement.getAttribute("type"); - if (!this.fromField.isEmpty() && !this.valueExdr.isEmpty()) { - throw new IllegalArgumentException("Cannot specify a from-field [" + setElement.getAttribute("from-field") + "] and a value [" + setElement.getAttribute("value") + "] on the set action in a tree widget"); - } - } - - @SuppressWarnings("rawtypes") - @Override - public void runAction(Map<String, Object> context) { - String globalStr = this.globalExdr.expandString(context); - // default to false - boolean global = "true".equals(globalStr); - - Object newValue = null; - if (!this.fromField.isEmpty()) { - newValue = this.fromField.get(context); - } else if (!this.valueExdr.isEmpty()) { - newValue = this.valueExdr.expandString(context); - } - if (UtilValidate.isNotEmpty(this.type)) { - if ("NewMap".equals(this.type)) { - newValue = new HashMap(); - } else if ("NewList".equals(this.type)) { - newValue = new LinkedList(); - } else { - try { - newValue = ObjectType.simpleTypeConvert(newValue, this.type, null, (TimeZone) context.get("timeZone"), (Locale) context.get("locale"), true); - } catch (GeneralException e) { - String errMsg = "Could not convert field value for the field: [" + this.field.getOriginalName() + "] to the [" + this.type + "] type for the value [" + newValue + "]: " + e.toString(); - Debug.logError(e, errMsg, module); - throw new IllegalArgumentException(errMsg); - } - } - } - this.field.put(context, newValue); - - if (global) { - Map<String, Object> globalCtx = UtilGenerics.checkMap(context.get("globalContext")); - if (globalCtx != null) { - this.field.put(globalCtx, newValue); - } - } - - // this is a hack for backward compatibility with the JPublish page object - Map<String, Object> page = UtilGenerics.checkMap(context.get("page")); - if (page != null) { - this.field.put(page, newValue); - } - } - } public static class Script extends ModelTreeAction { protected String location; + protected String method; public Script(ModelTree.ModelNode modelNode, Element scriptElement) { super (modelNode, scriptElement); - this.location = scriptElement.getAttribute("location"); + String scriptLocation = scriptElement.getAttribute("location"); + this.location = WidgetWorker.getScriptLocation(scriptLocation); + this.method = WidgetWorker.getScriptMethodName(scriptLocation); } public Script(ModelTree.ModelNode.ModelSubNode modelSubNode, Element scriptElement) { super (modelSubNode, scriptElement); - this.location = scriptElement.getAttribute("location"); + String scriptLocation = scriptElement.getAttribute("location"); + this.location = WidgetWorker.getScriptLocation(scriptLocation); + this.method = WidgetWorker.getScriptMethodName(scriptLocation); } @Override public void runAction(Map<String, Object> context) { - if (location.endsWith(".bsh")) { + context.put("_LIST_ITERATOR_", null); + if (location.endsWith(".xml")) { + Map<String, Object> localContext = new HashMap<String, Object>(); + localContext.putAll(context); + DispatchContext ctx = WidgetWorker.getDispatcher(context).getDispatchContext(); + MethodContext methodContext = new MethodContext(ctx, localContext, null); try { - context.put("_LIST_ITERATOR_", null); - BshUtil.runBshAtLocation(location, context); - Object obj = context.get("_LIST_ITERATOR_"); - if (this.modelSubNode != null) { - if (obj != null && (obj instanceof EntityListIterator || obj instanceof ListIterator<?>)) { - ListIterator<? extends Map<String, ? extends Object>> listIt = UtilGenerics.cast(obj); - this.modelSubNode.setListIterator(listIt); - } else { - if (obj instanceof List<?>) { - List<? extends Map<String, ? extends Object>> list = UtilGenerics.checkList(obj); - this.modelSubNode.setListIterator(list.listIterator()); - } - } - } - } catch (GeneralException e) { - String errMsg = "Error running BSH script at location [" + location + "]: " + e.toString(); - Debug.logError(e, errMsg, module); - throw new IllegalArgumentException(errMsg); + SimpleMethod.runSimpleMethod(location, method, methodContext); + context.putAll(methodContext.getResults()); + } catch (MiniLangException e) { + throw new RuntimeException("Error running simple method at location [" + location + "]", e); } } else { - throw new IllegalArgumentException("For tree script actions the script type is not yet support for location:" + location); + ScriptUtil.executeScript(this.location, this.method, context); } + Object obj = context.get("_LIST_ITERATOR_"); + if (this.modelSubNode != null) { + if (obj != null && (obj instanceof EntityListIterator || obj instanceof ListIterator<?>)) { + ListIterator<? extends Map<String, ? extends Object>> listIt = UtilGenerics.cast(obj); + this.modelSubNode.setListIterator(listIt); + } else { + if (obj instanceof List<?>) { + List<? extends Map<String, ? extends Object>> list = UtilGenerics.checkList(obj); + this.modelSubNode.setListIterator(list.listIterator()); + } + } + } + } + + @Override + public void accept(ModelActionVisitor visitor) { + visitor.visit(this); } } @@ -323,31 +247,10 @@ public abstract class ModelTreeAction { throw new IllegalArgumentException(errMsg); } } - } - - public static class EntityOne extends ModelTreeAction { - protected PrimaryKeyFinder finder; - String valueName; - - public EntityOne(ModelTree.ModelNode modelNode, Element entityOneElement) { - super (modelNode, entityOneElement); - - this.valueName = UtilFormatOut.checkEmpty(entityOneElement.getAttribute("value"), entityOneElement.getAttribute("value-name")); - if (UtilValidate.isEmpty(this.valueName)) this.valueName = null; - entityOneElement.setAttribute("value", this.valueName); - - finder = new PrimaryKeyFinder(entityOneElement); - } @Override - public void runAction(Map<String, Object> context) { - try { - finder.runFind(context, this.modelTree.getDelegator()); - } catch (GeneralException e) { - String errMsg = "Error doing entity query by condition: " + e.toString(); - Debug.logError(e, errMsg, module); - throw new IllegalArgumentException(errMsg); - } + public void accept(ModelActionVisitor visitor) { + visitor.visit(this); } } @@ -389,6 +292,11 @@ public abstract class ModelTreeAction { throw new IllegalArgumentException(errMsg); } } + + @Override + public void accept(ModelActionVisitor visitor) { + visitor.visit(this); + } } public static class EntityCondition extends ModelTreeAction { @@ -429,5 +337,10 @@ public abstract class ModelTreeAction { throw new IllegalArgumentException(errMsg); } } + + @Override + public void accept(ModelActionVisitor visitor) { + visitor.visit(this); + } } } |
Free forum by Nabble | Edit this page |