From ca0b06add3375a05529cc7228f648901062bb783 Mon Sep 17 00:00:00 2001 From: willemc Date: Fri, 16 Feb 2007 02:42:36 +0100 Subject: [PATCH] [svn r190] updated x4o --- lib/idcanet-x4o-bin.jar | Bin 50558 -> 54436 bytes .../foei/core/impl/X2OExecutorImpl.java | 2 +- .../foei/core/x4o/BindAttributeHandler.java | 3 +- .../foei/core/x4o/IdAttributeHandler.java | 3 +- .../foei/core/x4o/ObjectBindingElement.java | 70 +------------- .../foei/core/x4o/SetParameterElement.java | 88 ------------------ .../foei/server/config/FoeiConfigParser.java | 68 -------------- .../config/FoeiContextXMLTagHandler.java | 66 ------------- 8 files changed, 6 insertions(+), 294 deletions(-) delete mode 100644 src/com/idcanet/foei/core/x4o/SetParameterElement.java delete mode 100644 src/com/idcanet/foei/server/config/FoeiConfigParser.java delete mode 100644 src/com/idcanet/foei/server/config/FoeiContextXMLTagHandler.java diff --git a/lib/idcanet-x4o-bin.jar b/lib/idcanet-x4o-bin.jar index 6acdeb1f7aa69f9c62c97defce38adece5806cbe..c016f1cfbfab01246677a7991357e541821dd5d5 100644 GIT binary patch delta 32751 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 delta 29306 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 F{{gOdL9qY; diff --git a/src/com/idcanet/foei/core/impl/X2OExecutorImpl.java b/src/com/idcanet/foei/core/impl/X2OExecutorImpl.java index 9499610..179278d 100644 --- a/src/com/idcanet/foei/core/impl/X2OExecutorImpl.java +++ b/src/com/idcanet/foei/core/impl/X2OExecutorImpl.java @@ -67,7 +67,7 @@ public class X2OExecutorImpl implements X2OExecutor { // config parser FoeiProcess foeiProcess = FoeiProcessFactory.getFoeiProcess(); X4OParser parser = new X4OParser("foei"); - parser.getParsingContext().getProperties().putAll(foeiProcess.getFoeiContext().getStartProperties()); + parser.getElementContext().getProperties().putAll(foeiProcess.getFoeiContext().getStartProperties()); logger.info("Executing X2O Parsing."); diff --git a/src/com/idcanet/foei/core/x4o/BindAttributeHandler.java b/src/com/idcanet/foei/core/x4o/BindAttributeHandler.java index 8045374..b2baff5 100644 --- a/src/com/idcanet/foei/core/x4o/BindAttributeHandler.java +++ b/src/com/idcanet/foei/core/x4o/BindAttributeHandler.java @@ -47,7 +47,8 @@ public class BindAttributeHandler extends AbstractElementParameterHandler { * @see com.idca.foei.xml.x2o.eld.GlobalParameterHandler#doParameter(java.lang.Object, java.lang.String) */ @Override - public void doParameterStartTag(Element element,String parameterValue) throws Exception { + public void doParameterStartTag(Element element) throws Exception { + String parameterValue = element.getAttributes().get(getParameterName()); String[] port = parameterValue.split(":"); if(port.length!=2) { return; diff --git a/src/com/idcanet/foei/core/x4o/IdAttributeHandler.java b/src/com/idcanet/foei/core/x4o/IdAttributeHandler.java index d876b7c..454d3cf 100644 --- a/src/com/idcanet/foei/core/x4o/IdAttributeHandler.java +++ b/src/com/idcanet/foei/core/x4o/IdAttributeHandler.java @@ -43,8 +43,9 @@ public class IdAttributeHandler extends AbstractElementParameterHandler { * @see com.idca.foei.xml.x2o.eld.GlobalParameterHandler#doParameter(java.lang.Object, java.lang.String) */ @Override - public void doParameterStartTag(Element element,String parameterValue) throws Exception { + public void doParameterStartTag(Element element) throws Exception { // add to objext context + String parameterValue = element.getAttributes().get(getParameterName()); if(element.getElementObject()==null | "".equals(parameterValue)) { parameterValue= "auto."+Integer.toHexString(element.getElementObject().hashCode()); //logger.finest("Generated auto id: "+parameterValue); diff --git a/src/com/idcanet/foei/core/x4o/ObjectBindingElement.java b/src/com/idcanet/foei/core/x4o/ObjectBindingElement.java index f34757b..660c9f3 100644 --- a/src/com/idcanet/foei/core/x4o/ObjectBindingElement.java +++ b/src/com/idcanet/foei/core/x4o/ObjectBindingElement.java @@ -43,11 +43,7 @@ import org.xml.sax.Attributes; * @version 1.0 Mar 2, 2006 */ public class ObjectBindingElement extends AbstractElement { - - /** The Object which is configed */ - //private Object parentObject = null; - //private Object childObject = null; - + private String outputID = null; private String outputPort = null; private String inputID = null; @@ -82,69 +78,5 @@ public class ObjectBindingElement extends AbstractElement { throw new ElementException("Could not find EventPort from outputPort"); } foei.addBinding(outputEventPort,inputEventPort); - - - /* - if(outputID==null) { - //outputID = foei.getObjectConfigurator().getParameter(parentObject,"id").toString(); - } - if(outputPort==null) { - if(parentObject instanceof EventOutput) { - EventOutput eventOutput = (EventOutput)parentObject; - if(eventOutput.getOutputPorts().size()>0) { - EventPort port = (EventPort)eventOutput.getOutputPorts().get(0); - outputPort = port.getName(); - } else { - // no output ports - throw new ElementException("parentObject(EventOutput) is no output ports defined"); - } - } else { - // np EventOutput .. - throw new ElementException("parentObject: "+parentObject+" is not an EventOutput"); - } - } - */ } - - // HACK routines - /* - public String getOutputID() { - return outputID; - } - public String getOutputPort() { - return outputPort; - } - */ - - public void doElementEnd() { - /* - FoeiProcess foei = FoeiProcessFactory.getFoeiProcess(); - if(inputID!=null & inputPort!=null & outputID!=null & outputPort!=null) { - // Add binding - foei.addBinding() - foeiInstance.getObjectBindingsManager().addBinding(outputID,outputPort,inputID,inputPort); - } else { - System.err.println("Coudn't addbinding: inID="+inputID+" inPort="+inputPort+" outID="+outputID+" outPort="+outputPort); - } - */ - } - - - //------------------ ElementObject - - /** - * Get the object this elements configs. - * @return The object this Element controlles - */ - /* - public Object getElementObject() { - return parentObject; - //return object; - } - - public void setElementObject(Object object) { - // TODO: this is an quich hack see FoeiTagHandler - //this.object=object; - } - */ } \ No newline at end of file diff --git a/src/com/idcanet/foei/core/x4o/SetParameterElement.java b/src/com/idcanet/foei/core/x4o/SetParameterElement.java deleted file mode 100644 index c9d976c..0000000 --- a/src/com/idcanet/foei/core/x4o/SetParameterElement.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2004-2006 IDCA. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - * following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and - * the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions - * and the following disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY IDCA AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IDCA OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the authors and - * should not be interpreted as representing official policies, either expressed or implied, of IDCA. - */ - -package com.idcanet.foei.core.x4o; - - -import org.xml.sax.Attributes; - -import com.idcanet.x4o.element.AbstractElement; -import com.idcanet.x4o.element.ElementException; - -/** - * - * - * @author Willem Cazander - * @version 1.0 Mar 2, 2006 - */ -public class SetParameterElement extends AbstractElement { - /** The Object which is configed */ - private Object object = null; - - private Object eventObject = null; - private String parameterName = null; - private Object parameterValue = null; - - public SetParameterElement() { - } - - /** - * Do the element - */ - public void doElementStart(Attributes attributes) throws ElementException - { - // the EventObject for the parent element is also this its elementObject. - Object o = getParent().getElementObject(); - /* - if(!(o instanceof EventObject)) { - throw new ElementException("parent ElementObject is not EventObject"); - } - eventObject = (EventObject)o; - */ - parameterName = attributes.getValue("name"); - parameterValue = attributes.getValue("value"); - } - - public void doElementEnd() - { - - } - - - //------------------ ElementObject - - /** - * Get the object this elements configs. - * @return The object this Element controlles - */ - public Object getElementObject() { - return object; - } - - public void setElementObject(Object object) { - this.object=object; - } -} \ No newline at end of file diff --git a/src/com/idcanet/foei/server/config/FoeiConfigParser.java b/src/com/idcanet/foei/server/config/FoeiConfigParser.java deleted file mode 100644 index 9dcda09..0000000 --- a/src/com/idcanet/foei/server/config/FoeiConfigParser.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2004-2006 IDCA. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - * following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and - * the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions - * and the following disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY IDCA AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IDCA OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the authors and - * should not be interpreted as representing official policies, either expressed or implied, of IDCA. - */ - -package com.idcanet.foei.server.config; - - -import java.io.IOException; -import java.io.InputStream; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import org.xml.sax.SAXException; - -import com.idcanet.x4o.xml.AbstractXMLParser; -import com.idcanet.x4o.xml.XMLHandler; - -/** - * Parses the foei-config.xml file - * - * - * @author Willem Cazander - * @version 1.0 Jun 23, 2006 - */ -public class FoeiConfigParser extends AbstractXMLParser { - - /** - * Parsesn the input stream as a X2O document - */ - public void parse(InputStream inputStream) throws ParserConfigurationException,SAXException,IOException { - XMLHandler handler = new XMLHandler(); - - /* - X2OTagHandler xth = new X2OTagHandler(rootTag,parsingContext); - xth.setDebug(debug); - handler.addXMLTagHandler(xth); - */ - - SAXParserFactory factory = SAXParserFactory.newInstance(); - factory.setNamespaceAware(true); - SAXParser saxParser = factory.newSAXParser(); - saxParser.parse(inputStream,handler); - } -} \ No newline at end of file diff --git a/src/com/idcanet/foei/server/config/FoeiContextXMLTagHandler.java b/src/com/idcanet/foei/server/config/FoeiContextXMLTagHandler.java deleted file mode 100644 index 09179ea..0000000 --- a/src/com/idcanet/foei/server/config/FoeiContextXMLTagHandler.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2004-2006 IDCA. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - * following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and - * the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions - * and the following disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY IDCA AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IDCA OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the authors and - * should not be interpreted as representing official policies, either expressed or implied, of IDCA. - */ - -package com.idcanet.foei.server.config; - - -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; - -import com.idcanet.x4o.xml.AbstractXMLTagHandler; - -/** - * - * - * - * @author Willem Cazander - * @version 1.0 Jun 23, 2006 - */ -public class FoeiContextXMLTagHandler extends AbstractXMLTagHandler { - - - @Override - public void startElement(String nameSpace,String tag,String qName,Attributes attributes) throws SAXException { - - } - - @Override - public void endElement(String nameSpace,String tag,String qName) throws SAXException { - - } - - /** - * @see AbstractXMLTagHandler#characters(String) - */ - @Override - public void characters(String text) {/* - if(this.text==null) { - this.text=text; - } else { - this.text+=text; - } */ - } -} \ No newline at end of file