You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2006/08/17 07:43:00 UTC
svn commit: r432155 [2/3] - in
/incubator/tuscany/java/sca/databinding/databinding-framework: ./
src/main/java/org/apache/tuscany/databinding/
src/main/java/org/apache/tuscany/databinding/annotation/
src/main/java/org/apache/tuscany/databinding/extensi...
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/trax/Source2ResultTransformer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/trax/Source2ResultTransformer.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/trax/Source2ResultTransformer.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/trax/Source2ResultTransformer.java Wed Aug 16 22:42:57 2006
@@ -25,12 +25,13 @@
import org.apache.tuscany.databinding.PushTransformer;
import org.apache.tuscany.databinding.TransformationContext;
import org.apache.tuscany.databinding.TransformationException;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
/**
* Transform TrAX Source to Result
*
*/
-public class Source2ResultTransformer implements PushTransformer<Source, Result> {
+public class Source2ResultTransformer extends TransformerExtension<Source, Result> implements PushTransformer<Source, Result> {
private static final TransformerFactory factory = TransformerFactory.newInstance();
public void transform(Source source, Result result, TransformationContext context) {
@@ -42,11 +43,11 @@
}
}
- public Class<Source> getSourceType() {
+ public Class getSourceType() {
return Source.class;
}
- public Class<Result> getTargetType() {
+ public Class getTargetType() {
return Result.class;
}
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/trax/String2SAX.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/trax/String2SAX.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/trax/String2SAX.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/trax/String2SAX.java Wed Aug 16 22:42:57 2006
@@ -23,6 +23,7 @@
import org.apache.tuscany.databinding.PushTransformer;
import org.apache.tuscany.databinding.TransformationContext;
import org.apache.tuscany.databinding.TransformationException;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
import org.xml.sax.ContentHandler;
import org.xml.sax.InputSource;
@@ -30,7 +31,7 @@
* Transform XML string to SAX
*
*/
-public class String2SAX implements PushTransformer<String, ContentHandler> {
+public class String2SAX extends TransformerExtension<String, ContentHandler> implements PushTransformer<String, ContentHandler> {
/*
* private static final TransformerFactory factory = TransformerFactory.newInstance();
*
@@ -48,11 +49,11 @@
}
}
- public Class<String> getSourceType() {
+ public Class getSourceType() {
return String.class;
}
- public Class<ContentHandler> getTargetType() {
+ public Class getTargetType() {
return ContentHandler.class;
}
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/util/DirectedGraph.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/util/DirectedGraph.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/util/DirectedGraph.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/util/DirectedGraph.java Wed Aug 16 22:42:57 2006
@@ -209,12 +209,13 @@
}
/**
- * Get the shortes path from the source vertex to the target vertex using Dijkstra's algorithm. If
- * there's no path, null will be returned. If the source is the same as the target, it returns a
- * path with empty edges with weight 0.
- *
- * @param sourceValue The value identifies the source
- * @param targetValue The value identifies the target
+ * Get the shortes path from the source vertex to the target vertex using Dijkstra's algorithm. If there's no path, null will be returned. If the
+ * source is the same as the target, it returns a path with empty edges with weight 0.
+ *
+ * @param sourceValue
+ * The value identifies the source
+ * @param targetValue
+ * The value identifies the target
* @return The shortest path
*/
public Path getShortestPath(V sourceValue, V targetValue) {
@@ -320,5 +321,13 @@
public Map<V, Vertex> getVertices() {
return vertices;
+ }
+
+ public void addGraph(DirectedGraph<V, E> otherGraph) {
+ for (Vertex v : otherGraph.vertices.values()) {
+ for (Edge e : v.outEdges.values()) {
+ addEdge(e.sourceVertex.value, e.targetVertex.value, e.value, e.weight);
+ }
+ }
}
}
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/util/PipedTransformer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/util/PipedTransformer.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/util/PipedTransformer.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/util/PipedTransformer.java Wed Aug 16 22:42:57 2006
@@ -49,12 +49,12 @@
return pipe.getResult();
}
- public Class<S> getSourceType() {
- return pusher.getSourceType();
+ public String getSourceBinding() {
+ return pusher.getSourceBinding();
}
- public Class<R> getTargetType() {
- return pipe.getTargetType();
+ public String getTargetBinding() {
+ return pipe.getTargetBinding();
}
public int getWeight() {
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/util/StreamDataPipe.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/util/StreamDataPipe.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/util/StreamDataPipe.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/util/StreamDataPipe.java Wed Aug 16 22:42:57 2006
@@ -24,8 +24,9 @@
import java.io.OutputStream;
import org.apache.tuscany.databinding.DataPipe;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
-public class StreamDataPipe implements DataPipe<OutputStream, InputStream> {
+public class StreamDataPipe extends TransformerExtension<OutputStream, InputStream> implements DataPipe<OutputStream, InputStream> {
private ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
@@ -33,7 +34,7 @@
return new ByteArrayInputStream(outputStream.toByteArray());
}
- public Class<InputStream> getTargetType() {
+ public Class getTargetType() {
return InputStream.class;
}
@@ -45,7 +46,7 @@
return outputStream;
}
- public Class<OutputStream> getSourceType() {
+ public Class getSourceType() {
return OutputStream.class;
}
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/util/Writer2ReaderDataPipe.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/util/Writer2ReaderDataPipe.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/util/Writer2ReaderDataPipe.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/util/Writer2ReaderDataPipe.java Wed Aug 16 22:42:57 2006
@@ -24,8 +24,9 @@
import java.io.Writer;
import org.apache.tuscany.databinding.DataPipe;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
-public class Writer2ReaderDataPipe implements DataPipe<Writer, Reader> {
+public class Writer2ReaderDataPipe extends TransformerExtension<Writer, Reader> implements DataPipe<Writer, Reader> {
private StringWriter writer = new StringWriter();
@@ -33,7 +34,7 @@
return new StringReader(writer.toString());
}
- public Class<Reader> getTargetType() {
+ public Class getTargetType() {
return Reader.class;
}
@@ -45,7 +46,7 @@
return writer;
}
- public Class<Writer> getSourceType() {
+ public Class getSourceType() {
return Writer.class;
}
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/DOMBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/DOMBinding.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/DOMBinding.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/DOMBinding.java Wed Aug 16 22:42:57 2006
@@ -18,31 +18,14 @@
*/
package org.apache.tuscany.databinding.xml;
-import javax.xml.transform.Result;
-import javax.xml.transform.Source;
-
import org.apache.tuscany.databinding.DataBinding;
+import org.apache.tuscany.databinding.extension.DataBindingExtension;
+import org.w3c.dom.Node;
-public class DOMBinding implements DataBinding {
-
- public static final String NAME = "DOM";
-
- public Result createResult(Class resultType) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public Source createSource(Object source, Class sourceType) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public boolean isSink() {
- return false;
- }
+public class DOMBinding extends DataBindingExtension implements DataBinding {
- public String getName() {
- return NAME;
+ public DOMBinding() {
+ super(Node.class, false);
}
}
Added: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/DOMHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/DOMHelper.java?rev=432155&view=auto
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/DOMHelper.java (added)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/DOMHelper.java Wed Aug 16 22:42:57 2006
@@ -0,0 +1,49 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation or its licensors as applicable
+ *
+ * Licensed 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.apache.tuscany.databinding.xml;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.Document;
+
+/**
+ * Helper for DOM
+ */
+public class DOMHelper {
+ private final static DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ static {
+ factory.setNamespaceAware(true);
+ }
+
+ private DOMHelper() {
+ }
+
+ public static Document newDocument() throws ParserConfigurationException {
+ DocumentBuilder builder = newDocumentBuilder();
+ Document document = builder.newDocument();
+ return document;
+ }
+
+ public static DocumentBuilder newDocumentBuilder() throws ParserConfigurationException {
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ return builder;
+ }
+
+}
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/DOMHelper.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/DOMHelper.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/InputStreamBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/InputStreamBinding.java?rev=432155&view=auto
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/InputStreamBinding.java (added)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/InputStreamBinding.java Wed Aug 16 22:42:57 2006
@@ -0,0 +1,31 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation or its licensors as applicable
+ *
+ * Licensed 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.apache.tuscany.databinding.xml;
+
+import java.io.InputStream;
+
+import org.apache.tuscany.databinding.DataBinding;
+import org.apache.tuscany.databinding.extension.DataBindingExtension;
+
+public class InputStreamBinding extends DataBindingExtension implements DataBinding {
+
+ public InputStreamBinding() {
+ super(InputStream.class);
+ }
+
+}
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/InputStreamBinding.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/InputStreamBinding.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/Node2String.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/Node2String.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/Node2String.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/Node2String.java Wed Aug 16 22:42:57 2006
@@ -18,11 +18,10 @@
*/
package org.apache.tuscany.databinding.xml;
-import javax.xml.parsers.DocumentBuilderFactory;
-
+import org.apache.tuscany.databinding.PullTransformer;
import org.apache.tuscany.databinding.TransformationContext;
import org.apache.tuscany.databinding.TransformationException;
-import org.apache.tuscany.databinding.PullTransformer;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
import org.w3c.dom.Node;
import org.w3c.dom.ls.DOMImplementationLS;
import org.w3c.dom.ls.LSSerializer;
@@ -31,11 +30,11 @@
* Transform DOM Node to XML String
*
*/
-public class Node2String implements PullTransformer<Node, String> {
+public class Node2String extends TransformerExtension<Node, String> implements PullTransformer<Node, String> {
public String transform(Node source, TransformationContext context) {
try {
- DOMImplementationLS impl = (DOMImplementationLS) DocumentBuilderFactory.newInstance().newDocumentBuilder().getDOMImplementation();
+ DOMImplementationLS impl = (DOMImplementationLS) DOMHelper.newDocumentBuilder().getDOMImplementation();
LSSerializer serializer = impl.createLSSerializer();
return serializer.writeToString(source);
} catch (Exception e) {
@@ -43,11 +42,11 @@
}
}
- public Class<Node> getSourceType() {
+ public Class getSourceType() {
return Node.class;
}
- public Class<String> getTargetType() {
+ public Class getTargetType() {
return String.class;
}
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/Node2XMLStreamReader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/Node2XMLStreamReader.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/Node2XMLStreamReader.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/Node2XMLStreamReader.java Wed Aug 16 22:42:57 2006
@@ -24,6 +24,7 @@
import org.apache.tuscany.databinding.PullTransformer;
import org.apache.tuscany.databinding.TransformationContext;
import org.apache.tuscany.databinding.TransformationException;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
import org.w3c.dom.Node;
import com.ctc.wstx.api.ReaderConfig;
@@ -33,7 +34,7 @@
* Transform DOM Node to XML XMLStreamReader
*
*/
-public class Node2XMLStreamReader implements PullTransformer<Node, XMLStreamReader> {
+public class Node2XMLStreamReader extends TransformerExtension<Node, XMLStreamReader> implements PullTransformer<Node, XMLStreamReader> {
public XMLStreamReader transform(Node source, TransformationContext context) {
try {
@@ -46,11 +47,11 @@
}
}
- public Class<Node> getSourceType() {
+ public Class getSourceType() {
return Node.class;
}
- public Class<XMLStreamReader> getTargetType() {
+ public Class getTargetType() {
return XMLStreamReader.class;
}
Added: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/OutputStreamBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/OutputStreamBinding.java?rev=432155&view=auto
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/OutputStreamBinding.java (added)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/OutputStreamBinding.java Wed Aug 16 22:42:57 2006
@@ -0,0 +1,31 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation or its licensors as applicable
+ *
+ * Licensed 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.apache.tuscany.databinding.xml;
+
+import java.io.OutputStream;
+
+import org.apache.tuscany.databinding.DataBinding;
+import org.apache.tuscany.databinding.extension.DataBindingExtension;
+
+public class OutputStreamBinding extends DataBindingExtension implements DataBinding {
+
+ public OutputStreamBinding() {
+ super(OutputStream.class, true);
+ }
+
+}
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/OutputStreamBinding.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/OutputStreamBinding.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAX2DOM.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAX2DOM.java?rev=432155&view=auto
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAX2DOM.java (added)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAX2DOM.java Wed Aug 16 22:42:57 2006
@@ -0,0 +1,241 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed 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.apache.tuscany.databinding.xml;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Stack;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.Comment;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.ProcessingInstruction;
+import org.w3c.dom.Text;
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.ext.LexicalHandler;
+
+/**
+ * @author G. Todd Miller
+ */
+public class SAX2DOM implements ContentHandler, LexicalHandler {
+ public static final String EMPTYSTRING = "";
+ public static final String XML_PREFIX = "xml";
+ public static final String XMLNS_PREFIX = "xmlns";
+ public static final String XMLNS_STRING = "xmlns:";
+ public static final String XMLNS_URI = "http://www.w3.org/2000/xmlns/";
+
+
+ private Node _root = null;
+
+ private Document _document = null;
+
+ private Node _nextSibling = null;
+
+ private Stack<Node> _nodeStk = new Stack<Node>();
+
+ private List<String> _namespaceDecls = null;
+
+ private Node _lastSibling = null;
+
+ public SAX2DOM() throws ParserConfigurationException {
+ _document = DOMHelper.newDocument();
+ _root = _document;
+ }
+
+ public SAX2DOM(Node root, Node nextSibling) throws ParserConfigurationException {
+ _root = root;
+ if (root instanceof Document) {
+ _document = (Document) root;
+ } else if (root != null) {
+ _document = root.getOwnerDocument();
+ } else {
+ _document = DOMHelper.newDocument();
+ _root = _document;
+ }
+
+ _nextSibling = nextSibling;
+ }
+
+ public SAX2DOM(Node root) throws ParserConfigurationException {
+ this(root, null);
+ }
+
+ public Node getDOM() {
+ return _root;
+ }
+
+ public void characters(char[] ch, int start, int length) {
+ final Node last = (Node) _nodeStk.peek();
+
+ // No text nodes can be children of root (DOM006 exception)
+ if (last != _document) {
+ final String text = new String(ch, start, length);
+ if (_lastSibling != null && _lastSibling.getNodeType() == Node.TEXT_NODE) {
+ ((Text) _lastSibling).appendData(text);
+ } else if (last == _root && _nextSibling != null) {
+ _lastSibling = last.insertBefore(_document.createTextNode(text), _nextSibling);
+ } else {
+ _lastSibling = last.appendChild(_document.createTextNode(text));
+ }
+
+ }
+ }
+
+ public void startDocument() {
+ _nodeStk.push(_root);
+ }
+
+ public void endDocument() {
+ _nodeStk.pop();
+ }
+
+ public void startElement(String namespace, String localName, String qName, Attributes attrs) {
+ final Element tmp = (Element) _document.createElementNS(namespace, qName);
+
+ // Add namespace declarations first
+ if (_namespaceDecls != null) {
+ final int nDecls = _namespaceDecls.size();
+ for (int i = 0; i < nDecls; i++) {
+ final String prefix = (String) _namespaceDecls.get(i++);
+
+ if (prefix == null || prefix.equals(EMPTYSTRING)) {
+ tmp.setAttributeNS(XMLNS_URI, XMLNS_PREFIX, (String) _namespaceDecls.get(i));
+ } else {
+ tmp.setAttributeNS(XMLNS_URI, XMLNS_STRING + prefix, (String) _namespaceDecls.get(i));
+ }
+ }
+ _namespaceDecls.clear();
+ }
+
+ // Add attributes to element
+ final int nattrs = attrs.getLength();
+ for (int i = 0; i < nattrs; i++) {
+ if (attrs.getLocalName(i) == null) {
+ tmp.setAttribute(attrs.getQName(i), attrs.getValue(i));
+ } else {
+ tmp.setAttributeNS(attrs.getURI(i), attrs.getQName(i), attrs.getValue(i));
+ }
+ }
+
+ // Append this new node onto current stack node
+ Node last = (Node) _nodeStk.peek();
+
+ // If the SAX2DOM is created with a non-null next sibling node,
+ // insert the result nodes before the next sibling under the root.
+ if (last == _root && _nextSibling != null)
+ last.insertBefore(tmp, _nextSibling);
+ else
+ last.appendChild(tmp);
+
+ // Push this node onto stack
+ _nodeStk.push(tmp);
+ _lastSibling = null;
+ }
+
+ public void endElement(String namespace, String localName, String qName) {
+ _nodeStk.pop();
+ _lastSibling = null;
+ }
+
+ public void startPrefixMapping(String prefix, String uri) {
+ if (_namespaceDecls == null) {
+ _namespaceDecls = new ArrayList<String>(2);
+ }
+ _namespaceDecls.add(prefix);
+ _namespaceDecls.add(uri);
+ }
+
+ public void endPrefixMapping(String prefix) {
+ // do nothing
+ }
+
+ /**
+ * This class is only used internally so this method should never be called.
+ */
+ public void ignorableWhitespace(char[] ch, int start, int length) {
+ }
+
+ /**
+ * adds processing instruction node to DOM.
+ */
+ public void processingInstruction(String target, String data) {
+ final Node last = (Node) _nodeStk.peek();
+ ProcessingInstruction pi = _document.createProcessingInstruction(target, data);
+ if (pi != null) {
+ if (last == _root && _nextSibling != null)
+ last.insertBefore(pi, _nextSibling);
+ else
+ last.appendChild(pi);
+
+ _lastSibling = pi;
+ }
+ }
+
+ /**
+ * This class is only used internally so this method should never be called.
+ */
+ public void setDocumentLocator(Locator locator) {
+ }
+
+ /**
+ * This class is only used internally so this method should never be called.
+ */
+ public void skippedEntity(String name) {
+ }
+
+ /**
+ * Lexical Handler method to create comment node in DOM tree.
+ */
+ public void comment(char[] ch, int start, int length) {
+ final Node last = (Node) _nodeStk.peek();
+ Comment comment = _document.createComment(new String(ch, start, length));
+ if (comment != null) {
+ if (last == _root && _nextSibling != null)
+ last.insertBefore(comment, _nextSibling);
+ else
+ last.appendChild(comment);
+
+ _lastSibling = comment;
+ }
+ }
+
+ // Lexical Handler methods- not implemented
+ public void startCDATA() {
+ }
+
+ public void endCDATA() {
+ }
+
+ public void startEntity(java.lang.String name) {
+ }
+
+ public void endDTD() {
+ }
+
+ public void endEntity(String name) {
+ }
+
+ public void startDTD(String name, String publicId, String systemId) throws SAXException {
+ }
+
+}
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAX2DOM.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAX2DOM.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAX2DOMPipe.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAX2DOMPipe.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAX2DOMPipe.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAX2DOMPipe.java Wed Aug 16 22:42:57 2006
@@ -21,13 +21,13 @@
import javax.xml.parsers.ParserConfigurationException;
import org.apache.tuscany.databinding.DataPipe;
-import org.apache.xalan.xsltc.trax.SAX2DOM;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
import org.w3c.dom.Node;
import org.xml.sax.ContentHandler;
-public class SAX2DOMPipe implements DataPipe<ContentHandler, Node> {
+public class SAX2DOMPipe extends TransformerExtension<ContentHandler, Node> implements DataPipe<ContentHandler, Node> {
private SAX2DOM pipe;
-
+
/**
*
*/
@@ -44,7 +44,7 @@
return pipe.getDOM();
}
- public Class<Node> getTargetType() {
+ public Class getTargetType() {
return Node.class;
}
@@ -52,7 +52,7 @@
return pipe;
}
- public Class<ContentHandler> getSourceType() {
+ public Class getSourceType() {
return ContentHandler.class;
}
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAXBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAXBinding.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAXBinding.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAXBinding.java Wed Aug 16 22:42:57 2006
@@ -18,41 +18,13 @@
*/
package org.apache.tuscany.databinding.xml;
-import javax.xml.transform.Result;
-import javax.xml.transform.Source;
-import javax.xml.transform.sax.SAXResult;
-import javax.xml.transform.sax.SAXSource;
-
import org.apache.tuscany.databinding.DataBinding;
-import org.xml.sax.ContentHandler;
+import org.apache.tuscany.databinding.extension.DataBindingExtension;
import org.xml.sax.InputSource;
-public class SAXBinding implements DataBinding {
- public static final String NAME = "SAX";
-
- private ContentHandler contentHandler;
-
- public Result createResult(Class resultType) {
- return new SAXResult(contentHandler);
- }
-
- public Source createSource(Object source, Class sourceType) {
- if (source instanceof InputSource)
- return new SAXSource((InputSource) source);
- else
- throw new IllegalArgumentException();
- }
-
- public boolean isSink() {
- return true;
- }
-
- public String getName() {
- return NAME;
- }
-
- public void setContentHandler(ContentHandler contentHandler) {
- this.contentHandler = contentHandler;
+public class SAXBinding extends DataBindingExtension implements DataBinding {
+ public SAXBinding() {
+ super(InputSource.class);
}
}
Added: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAXContentHandlerBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAXContentHandlerBinding.java?rev=432155&view=auto
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAXContentHandlerBinding.java (added)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAXContentHandlerBinding.java Wed Aug 16 22:42:57 2006
@@ -0,0 +1,29 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation or its licensors as applicable
+ *
+ * Licensed 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.apache.tuscany.databinding.xml;
+
+import org.apache.tuscany.databinding.DataBinding;
+import org.apache.tuscany.databinding.extension.DataBindingExtension;
+import org.xml.sax.ContentHandler;
+
+public class SAXContentHandlerBinding extends DataBindingExtension implements DataBinding {
+ public SAXContentHandlerBinding() {
+ super(ContentHandler.class, true);
+ }
+
+}
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAXContentHandlerBinding.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/SAXContentHandlerBinding.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/StAXBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/StAXBinding.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/StAXBinding.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/StAXBinding.java Wed Aug 16 22:42:57 2006
@@ -18,32 +18,15 @@
*/
package org.apache.tuscany.databinding.xml;
-import javax.xml.transform.Result;
-import javax.xml.transform.Source;
+import javax.xml.stream.XMLStreamReader;
import org.apache.tuscany.databinding.DataBinding;
+import org.apache.tuscany.databinding.extension.DataBindingExtension;
-public class StAXBinding implements DataBinding {
- public static final String NAME = "StAX";
+public class StAXBinding extends DataBindingExtension implements DataBinding {
- public Result createResult(Class resultType) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public Source createSource(Object source, Class sourceType) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public boolean isSink() {
- // TODO Auto-generated method stub
- return false;
- }
-
- public String getName() {
- // TODO Auto-generated method stub
- return NAME;
+ public StAXBinding() {
+ super(XMLStreamReader.class);
}
}
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/StAXHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/StAXHelper.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/StAXHelper.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/StAXHelper.java Wed Aug 16 22:42:57 2006
@@ -39,41 +39,44 @@
* The XMLStreamSerializer pulls events from the XMLStreamReader and dumps into the XMLStreamWriter
*/
public static class XMLStreamSerializer implements XMLStreamConstants {
-
+
private static int namespaceSuffix = 0;
-
public static final String NAMESPACE_PREFIX = "ns";
-
+
/*
- * The behavior of the serializer is such that it returns when it encounters the starting element for the second time. The depth variable tracks
- * the depth of the serilizer and tells it when to return. Note that it is assumed that this serialization starts on an Element.
- */
-
+ * The behavior of the serializer is such that it returns when it encounters the
+ * starting element for the second time. The depth variable tracks the depth of the
+ * serilizer and tells it when to return.
+ * Note that it is assumed that this serialization starts on an Element.
+ */
+
/**
* Field depth
*/
private int depth = 0;
-
+
/**
* Method serialize.
- *
+ *
* @param node
* @param writer
* @throws XMLStreamException
*/
- public void serialize(XMLStreamReader node, XMLStreamWriter writer) throws XMLStreamException {
+ public void serialize(XMLStreamReader node, XMLStreamWriter writer)
+ throws XMLStreamException {
serializeNode(node, writer);
}
-
+
/**
* Method serializeNode.
- *
+ *
* @param reader
* @param writer
* @throws XMLStreamException
*/
- protected void serializeNode(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
- // TODO We get the StAXWriter at this point and uses it hereafter assuming that this is the only entry point to this class.
+ protected void serializeNode(XMLStreamReader reader, XMLStreamWriter writer)
+ throws XMLStreamException {
+ //TODO We get the StAXWriter at this point and uses it hereafter assuming that this is the only entry point to this class.
// If there can be other classes calling methodes of this we might need to change methode signatures to OMOutputer
while (reader.hasNext()) {
int event = reader.next();
@@ -91,15 +94,14 @@
} else if (event == END_ELEMENT) {
serializeEndElement(writer);
depth--;
- } else if (event == START_DOCUMENT) {
- depth++; // if a start document is found then increment the depth
+ }else if (event == START_DOCUMENT) {
+ depth++; //if a start document is found then increment the depth
} else if (event == END_DOCUMENT) {
- if (depth != 0)
- depth--; // for the end document - reduce the depth
+ if (depth!=0) depth--; //for the end document - reduce the depth
try {
serializeEndElement(writer);
} catch (Exception e) {
- // TODO: log exceptions
+ //TODO: log exceptions
}
}
if (depth == 0) {
@@ -107,13 +109,15 @@
}
}
}
-
+
/**
* @param reader
* @param writer
* @throws XMLStreamException
*/
- protected void serializeElement(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
+ protected void serializeElement(XMLStreamReader reader,
+ XMLStreamWriter writer)
+ throws XMLStreamException {
String prefix = reader.getPrefix();
String nameSpaceName = reader.getNamespaceURI();
if (nameSpaceName != null) {
@@ -122,11 +126,13 @@
writer.writeStartElement(nameSpaceName, reader.getLocalName());
} else {
if (prefix != null) {
- writer.writeStartElement(prefix, reader.getLocalName(), nameSpaceName);
+ writer.writeStartElement(prefix, reader.getLocalName(),
+ nameSpaceName);
writer.writeNamespace(prefix, nameSpaceName);
writer.setPrefix(prefix, nameSpaceName);
} else {
- writer.writeStartElement(nameSpaceName, reader.getLocalName());
+ writer.writeStartElement(nameSpaceName,
+ reader.getLocalName());
writer.writeDefaultNamespace(nameSpaceName);
writer.setDefaultNamespace(nameSpaceName);
}
@@ -134,134 +140,161 @@
} else {
writer.writeStartElement(reader.getLocalName());
}
-
+
+
// add the namespaces
int count = reader.getNamespaceCount();
String namespacePrefix;
for (int i = 0; i < count; i++) {
namespacePrefix = reader.getNamespacePrefix(i);
- if (namespacePrefix != null && namespacePrefix.length() == 0)
+ if(namespacePrefix != null && namespacePrefix.length()==0)
continue;
-
- serializeNamespace(namespacePrefix, reader.getNamespaceURI(i), writer);
+
+ serializeNamespace(namespacePrefix,
+ reader.getNamespaceURI(i), writer);
}
-
+
// add attributes
serializeAttributes(reader, writer);
-
+
}
-
+
/**
* Method serializeEndElement.
- *
+ *
* @param writer
* @throws XMLStreamException
*/
- protected void serializeEndElement(XMLStreamWriter writer) throws XMLStreamException {
+ protected void serializeEndElement(XMLStreamWriter writer)
+ throws XMLStreamException {
writer.writeEndElement();
}
-
+
/**
* @param reader
* @param writer
* @throws XMLStreamException
*/
- protected void serializeText(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
+ protected void serializeText(XMLStreamReader reader,
+ XMLStreamWriter writer)
+ throws XMLStreamException {
writer.writeCharacters(reader.getText());
}
-
+
/**
* Method serializeCData.
- *
+ *
* @param reader
* @param writer
* @throws XMLStreamException
*/
- protected void serializeCData(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
+ protected void serializeCData(XMLStreamReader reader,
+ XMLStreamWriter writer)
+ throws XMLStreamException {
writer.writeCData(reader.getText());
}
-
+
/**
* Method serializeComment.
- *
+ *
* @param reader
* @param writer
* @throws XMLStreamException
*/
- protected void serializeComment(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
+ protected void serializeComment(XMLStreamReader reader,
+ XMLStreamWriter writer)
+ throws XMLStreamException {
writer.writeComment(reader.getText());
}
-
+
/**
* @param reader
* @param writer
* @throws XMLStreamException
*/
- protected void serializeAttributes(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
+ protected void serializeAttributes(XMLStreamReader reader,
+ XMLStreamWriter writer)
+ throws XMLStreamException {
int count = reader.getAttributeCount();
String prefix = null;
String namespaceName = null;
- String writerPrefix = null;
+ String writerPrefix=null;
for (int i = 0; i < count; i++) {
prefix = reader.getAttributePrefix(i);
namespaceName = reader.getAttributeNamespace(i);
- if (namespaceName != null)
- writerPrefix = writer.getNamespaceContext().getPrefix(namespaceName);
-
- if (!"".equals(namespaceName)) {
- // prefix has already being declared but this particular attrib has a
- // no prefix attached. So use the prefix provided by the writer
- if (writerPrefix != null && (prefix == null || prefix.equals(""))) {
- writer.writeAttribute(writerPrefix, namespaceName, reader.getAttributeLocalName(i), reader.getAttributeValue(i));
-
- // writer prefix is available but different from the current
- // prefix of the attrib. We should be decalring the new prefix
- // as a namespace declaration
- } else if (prefix != null && !"".equals(prefix) && !prefix.equals(writerPrefix)) {
- writer.writeNamespace(prefix, namespaceName);
- writer.writeAttribute(prefix, namespaceName, reader.getAttributeLocalName(i), reader.getAttributeValue(i));
-
- // prefix is null (or empty), but the namespace name is valid! it has not
- // being written previously also. So we need to generate a prefix
- // here
- } else {
+ /*
+ Due to parser implementations returning null as the namespace URI
+ (for the empty namespace) we need to make sure that we deal with
+ a namespace name that is not null. The best way to work around this
+ issue is to set the namespace uri to "" if it is null
+ */
+ if (namespaceName==null) namespaceName="";
+
+ writerPrefix =writer.getNamespaceContext().getPrefix(namespaceName);
+
+ if (!"".equals(namespaceName)){
+ //prefix has already being declared but this particular attrib has a
+ //no prefix attached. So use the prefix provided by the writer
+ if (writerPrefix!=null && (prefix==null || prefix.equals(""))){
+ writer.writeAttribute(writerPrefix, namespaceName,
+ reader.getAttributeLocalName(i),
+ reader.getAttributeValue(i));
+
+ //writer prefix is available but different from the current
+ //prefix of the attrib. We should be decalring the new prefix
+ //as a namespace declaration
+ }else if (prefix!=null && !"".equals(prefix)&& !prefix.equals(writerPrefix)){
+ writer.writeNamespace(prefix,namespaceName);
+ writer.writeAttribute(prefix, namespaceName,
+ reader.getAttributeLocalName(i),
+ reader.getAttributeValue(i));
+
+ //prefix is null (or empty), but the namespace name is valid! it has not
+ //being written previously also. So we need to generate a prefix
+ //here
+ }else{
prefix = generateUniquePrefix(writer.getNamespaceContext());
- writer.writeNamespace(prefix, namespaceName);
- writer.writeAttribute(prefix, namespaceName, reader.getAttributeLocalName(i), reader.getAttributeValue(i));
+ writer.writeNamespace(prefix,namespaceName);
+ writer.writeAttribute(prefix, namespaceName,
+ reader.getAttributeLocalName(i),
+ reader.getAttributeValue(i));
}
- } else {
- // empty namespace is equal to no namespace!
- writer.writeAttribute(reader.getAttributeLocalName(i), reader.getAttributeValue(i));
+ }else{
+ //empty namespace is equal to no namespace!
+ writer.writeAttribute(reader.getAttributeLocalName(i),
+ reader.getAttributeValue(i));
}
-
+
+
}
}
-
+
/**
- * Generates a unique namespace prefix that is not in the scope of the NamespaceContext
- *
+ * Generates a unique namespace prefix that is not in the
+ * scope of the NamespaceContext
* @param nsCtxt
* @return string
*/
- private String generateUniquePrefix(NamespaceContext nsCtxt) {
+ private String generateUniquePrefix(NamespaceContext nsCtxt){
String prefix = NAMESPACE_PREFIX + namespaceSuffix++;
- // null should be returned if the prefix is not bound!
- while (nsCtxt.getNamespaceURI(prefix) != null) {
+ //null should be returned if the prefix is not bound!
+ while(nsCtxt.getNamespaceURI(prefix)!=null){
prefix = NAMESPACE_PREFIX + namespaceSuffix++;
}
-
+
return prefix;
}
-
/**
* Method serializeNamespace.
- *
* @param prefix
* @param URI
* @param writer
* @throws XMLStreamException
*/
- private void serializeNamespace(String prefix, String URI, XMLStreamWriter writer) throws XMLStreamException {
+ private void serializeNamespace(String prefix,
+ String URI,
+ XMLStreamWriter writer)
+ throws XMLStreamException {
String prefix1 = writer.getPrefix(URI);
if (prefix1 == null) {
writer.writeNamespace(prefix, URI);
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/StreamBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/StreamBinding.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/StreamBinding.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/StreamBinding.java Wed Aug 16 22:42:57 2006
@@ -18,41 +18,15 @@
*/
package org.apache.tuscany.databinding.xml;
-import java.io.InputStream;
import java.io.Reader;
-import javax.xml.transform.Result;
-import javax.xml.transform.Source;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
import org.apache.tuscany.databinding.DataBinding;
+import org.apache.tuscany.databinding.extension.DataBindingExtension;
-public class StreamBinding implements DataBinding {
- public static final String NAME = "STREAM";
-
- public static enum Type {
- STREAM, READER, STRING
- }
-
- public Result createResult(Class resultType) {
- return new StreamResult();
- }
-
- public Source createSource(Object source, Class sourceType) {
- if (source instanceof InputStream)
- return new StreamSource((InputStream) source);
- else if (source instanceof Reader)
- return new StreamSource((Reader) source);
- return null;
- }
-
- public boolean isSink() {
- return false;
- }
+public class StreamBinding extends DataBindingExtension implements DataBinding {
- public String getName() {
- return NAME;
+ public StreamBinding() {
+ super(Reader.class);
}
}
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/String2Node.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/String2Node.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/String2Node.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/String2Node.java Wed Aug 16 22:42:57 2006
@@ -21,19 +21,19 @@
import java.io.StringReader;
import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
+import org.apache.tuscany.databinding.PullTransformer;
import org.apache.tuscany.databinding.TransformationContext;
import org.apache.tuscany.databinding.TransformationException;
-import org.apache.tuscany.databinding.PullTransformer;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
import org.w3c.dom.Node;
import org.xml.sax.InputSource;
-public class String2Node implements PullTransformer<String, Node> {
+public class String2Node extends TransformerExtension<String, Node> implements PullTransformer<String, Node> {
public Node transform(String source, TransformationContext context) {
try {
- DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ DocumentBuilder builder = DOMHelper.newDocumentBuilder();
InputSource inputSource = new InputSource(new StringReader(source));
return builder.parse(inputSource);
} catch (Exception e) {
@@ -41,11 +41,11 @@
}
}
- public Class<String> getSourceType() {
+ public Class getSourceType() {
return String.class;
}
- public Class<Node> getTargetType() {
+ public Class getTargetType() {
return Node.class;
}
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/String2XMLStreamReader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/String2XMLStreamReader.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/String2XMLStreamReader.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/String2XMLStreamReader.java Wed Aug 16 22:42:57 2006
@@ -24,8 +24,9 @@
import org.apache.tuscany.databinding.TransformationContext;
import org.apache.tuscany.databinding.TransformationException;
import org.apache.tuscany.databinding.PullTransformer;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
-public class String2XMLStreamReader implements PullTransformer<String, XMLStreamReader> {
+public class String2XMLStreamReader extends TransformerExtension<String, XMLStreamReader> implements PullTransformer<String, XMLStreamReader> {
public XMLStreamReader transform(String source, TransformationContext context) {
try {
@@ -35,11 +36,11 @@
}
}
- public Class<String> getSourceType() {
+ public Class getSourceType() {
return String.class;
}
- public Class<XMLStreamReader> getTargetType() {
+ public Class getTargetType() {
return XMLStreamReader.class;
}
Added: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/WriterBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/WriterBinding.java?rev=432155&view=auto
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/WriterBinding.java (added)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/WriterBinding.java Wed Aug 16 22:42:57 2006
@@ -0,0 +1,31 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation or its licensors as applicable
+ *
+ * Licensed 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.apache.tuscany.databinding.xml;
+
+import java.io.Writer;
+
+import org.apache.tuscany.databinding.DataBinding;
+import org.apache.tuscany.databinding.extension.DataBindingExtension;
+
+public class WriterBinding extends DataBindingExtension implements DataBinding {
+
+ public WriterBinding() {
+ super(Writer.class);
+ }
+
+}
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/WriterBinding.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/WriterBinding.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLEventReaderBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLEventReaderBinding.java?rev=432155&view=auto
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLEventReaderBinding.java (added)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLEventReaderBinding.java Wed Aug 16 22:42:57 2006
@@ -0,0 +1,31 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation or its licensors as applicable
+ *
+ * Licensed 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.apache.tuscany.databinding.xml;
+
+import javax.xml.stream.XMLEventReader;
+
+import org.apache.tuscany.databinding.DataBinding;
+import org.apache.tuscany.databinding.extension.DataBindingExtension;
+
+public class XMLEventReaderBinding extends DataBindingExtension implements DataBinding {
+
+ public XMLEventReaderBinding() {
+ super(XMLEventReader.class);
+ }
+
+}
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLEventReaderBinding.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLEventReaderBinding.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLEventWriterBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLEventWriterBinding.java?rev=432155&view=auto
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLEventWriterBinding.java (added)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLEventWriterBinding.java Wed Aug 16 22:42:57 2006
@@ -0,0 +1,31 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation or its licensors as applicable
+ *
+ * Licensed 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.apache.tuscany.databinding.xml;
+
+import javax.xml.stream.XMLEventWriter;
+
+import org.apache.tuscany.databinding.DataBinding;
+import org.apache.tuscany.databinding.extension.DataBindingExtension;
+
+public class XMLEventWriterBinding extends DataBindingExtension implements DataBinding {
+
+ public XMLEventWriterBinding() {
+ super(XMLEventWriter.class, true);
+ }
+
+}
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLEventWriterBinding.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLEventWriterBinding.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamReader2Node.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamReader2Node.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamReader2Node.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamReader2Node.java Wed Aug 16 22:42:57 2006
@@ -19,39 +19,35 @@
package org.apache.tuscany.databinding.xml;
import javax.xml.stream.XMLStreamReader;
-import javax.xml.transform.dom.DOMResult;
import org.apache.tuscany.databinding.PullTransformer;
import org.apache.tuscany.databinding.TransformationContext;
import org.apache.tuscany.databinding.TransformationException;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
import org.w3c.dom.Node;
-import com.ctc.wstx.api.WriterConfig;
-import com.ctc.wstx.dom.DOMWrappingWriter;
-
/**
* Transform DOM Node to XML XMLStreamReader
*
*/
-public class XMLStreamReader2Node implements PullTransformer<XMLStreamReader, Node> {
-
+public class XMLStreamReader2Node extends TransformerExtension<XMLStreamReader, Node> implements PullTransformer<XMLStreamReader, Node> {
+ private SAX2DOMPipe pipe = new SAX2DOMPipe();
+ private XMLStreamReader2SAX stax2sax = new XMLStreamReader2SAX();
+
public Node transform(XMLStreamReader source, TransformationContext context) {
try {
- DOMResult result = new DOMResult();
- WriterConfig config = WriterConfig.createFullDefaults();
- DOMWrappingWriter wrappingWriter = DOMWrappingWriter.createFrom(config, result);
- StAXHelper.save(source, wrappingWriter);
- return result.getNode();
+ stax2sax.transform(source, pipe.getSink(), context);
+ return pipe.getResult();
} catch (Exception e) {
throw new TransformationException(e);
}
}
- public Class<XMLStreamReader> getSourceType() {
+ public Class getSourceType() {
return XMLStreamReader.class;
}
- public Class<Node> getTargetType() {
+ public Class getTargetType() {
return Node.class;
}
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamReader2SAX.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamReader2SAX.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamReader2SAX.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamReader2SAX.java Wed Aug 16 22:42:57 2006
@@ -23,24 +23,25 @@
import org.apache.tuscany.databinding.PushTransformer;
import org.apache.tuscany.databinding.TransformationContext;
import org.apache.tuscany.databinding.TransformationException;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
import org.xml.sax.ContentHandler;
/**
*
*/
-public class XMLStreamReader2SAX implements PushTransformer<XMLStreamReader, ContentHandler> {
+public class XMLStreamReader2SAX extends TransformerExtension<XMLStreamReader, ContentHandler> implements PushTransformer<XMLStreamReader, ContentHandler> {
/**
* @see org.apache.tuscany.databinding.PushTransformer#getSourceType()
*/
- public Class<ContentHandler> getTargetType() {
+ public Class getTargetType() {
return ContentHandler.class;
}
/**
* @see org.apache.tuscany.databinding.PushTransformer#getSourceType()
*/
- public Class<XMLStreamReader> getSourceType() {
+ public Class getSourceType() {
return XMLStreamReader.class;
}
Modified: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamReader2String.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamReader2String.java?rev=432155&r1=432154&r2=432155&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamReader2String.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamReader2String.java Wed Aug 16 22:42:57 2006
@@ -24,8 +24,9 @@
import org.apache.tuscany.databinding.TransformationContext;
import org.apache.tuscany.databinding.TransformationException;
import org.apache.tuscany.databinding.PullTransformer;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
-public class XMLStreamReader2String implements PullTransformer<XMLStreamReader, String> {
+public class XMLStreamReader2String extends TransformerExtension<XMLStreamReader, String> implements PullTransformer<XMLStreamReader, String> {
public String transform(XMLStreamReader source, TransformationContext context) {
try {
@@ -35,11 +36,11 @@
}
}
- public Class<XMLStreamReader> getSourceType() {
+ public Class getSourceType() {
return XMLStreamReader.class;
}
- public Class<String> getTargetType() {
+ public Class getTargetType() {
return String.class;
}
Added: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamReaderBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamReaderBinding.java?rev=432155&view=auto
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamReaderBinding.java (added)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamReaderBinding.java Wed Aug 16 22:42:57 2006
@@ -0,0 +1,31 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation or its licensors as applicable
+ *
+ * Licensed 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.apache.tuscany.databinding.xml;
+
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.tuscany.databinding.DataBinding;
+import org.apache.tuscany.databinding.extension.DataBindingExtension;
+
+public class XMLStreamReaderBinding extends DataBindingExtension implements DataBinding {
+
+ public XMLStreamReaderBinding() {
+ super(XMLStreamReader.class);
+ }
+
+}
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamReaderBinding.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamReaderBinding.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamWriterBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamWriterBinding.java?rev=432155&view=auto
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamWriterBinding.java (added)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamWriterBinding.java Wed Aug 16 22:42:57 2006
@@ -0,0 +1,31 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation or its licensors as applicable
+ *
+ * Licensed 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.apache.tuscany.databinding.xml;
+
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.databinding.DataBinding;
+import org.apache.tuscany.databinding.extension.DataBindingExtension;
+
+public class XMLStreamWriterBinding extends DataBindingExtension implements DataBinding {
+
+ public XMLStreamWriterBinding() {
+ super(XMLStreamWriter.class, true);
+ }
+
+}
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamWriterBinding.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStreamWriterBinding.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStringBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStringBinding.java?rev=432155&view=auto
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStringBinding.java (added)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStringBinding.java Wed Aug 16 22:42:57 2006
@@ -0,0 +1,29 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation or its licensors as applicable
+ *
+ * Licensed 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.apache.tuscany.databinding.xml;
+
+import org.apache.tuscany.databinding.DataBinding;
+import org.apache.tuscany.databinding.extension.DataBindingExtension;
+
+public class XMLStringBinding extends DataBindingExtension implements DataBinding {
+
+ public XMLStringBinding() {
+ super(String.class, false);
+ }
+
+}
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStringBinding.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/java/org/apache/tuscany/databinding/xml/XMLStringBinding.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/databinding/databinding-framework/src/main/resources/META-INF/sca/databinding.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/main/resources/META-INF/sca/databinding.scdl?rev=432155&view=auto
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/main/resources/META-INF/sca/databinding.scdl (added)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/main/resources/META-INF/sca/databinding.scdl Wed Aug 16 22:42:57 2006
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (c) 2006 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
+ name="org.apache.tuscany.launcher.DataBinding">
+
+ <!-- DataBinding registry -->
+ <component name="dataBindingRegistry">
+ <system:implementation.system class="org.apache.tuscany.databinding.impl.DataBindingRegistryImpl" />
+ </component>
+
+ <!-- Transformer registry -->
+ <component name="transformerRegistry">
+ <system:implementation.system class="org.apache.tuscany.databinding.impl.TransformerRegistryImpl" />
+ </component>
+
+ <!-- Transformer registry -->
+ <component name="dataBindingLoader">
+ <system:implementation.system class="org.apache.tuscany.databinding.impl.DataBindingDefinitionLoader" />
+ </component>
+
+</composite>
\ No newline at end of file
Added: incubator/tuscany/java/sca/databinding/databinding-framework/src/test/java/org/apache/tuscany/databinding/impl/DataBindingRegistryImplTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-framework/src/test/java/org/apache/tuscany/databinding/impl/DataBindingRegistryImplTestCase.java?rev=432155&view=auto
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-framework/src/test/java/org/apache/tuscany/databinding/impl/DataBindingRegistryImplTestCase.java (added)
+++ incubator/tuscany/java/sca/databinding/databinding-framework/src/test/java/org/apache/tuscany/databinding/impl/DataBindingRegistryImplTestCase.java Wed Aug 16 22:42:57 2006
@@ -0,0 +1,64 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation or its licensors as applicable
+ *
+ * Licensed 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.apache.tuscany.databinding.impl;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.apache.tuscany.databinding.DataBinding;
+import org.apache.tuscany.databinding.DataBindingRegistry;
+import org.apache.tuscany.databinding.xml.SAXContentHandlerBinding;
+import org.apache.tuscany.databinding.xml.XMLStreamReaderBinding;
+import org.xml.sax.ContentHandler;
+
+/**
+ *
+ */
+public class DataBindingRegistryImplTestCase extends TestCase {
+ private DataBindingRegistry registry;
+
+ /**
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+ registry = new DataBindingRegistryImpl();
+ }
+
+ public void testRegistry() {
+ DataBinding db1 = new SAXContentHandlerBinding();
+ String name = db1.getName();
+ registry.register(db1);
+ registry.register(new XMLStreamReaderBinding());
+ DataBinding db2 = registry.getDataBinding(name);
+ Assert.assertTrue(db1 == db2);
+
+ DataBinding dt = registry.introspectType(ContentHandler.class);
+ Assert.assertEquals(db1, dt);
+ Assert.assertTrue(dt.getName().equalsIgnoreCase(name));
+
+ registry.unregister(name);
+ DataBinding db3 = registry.getDataBinding(name);
+ Assert.assertNull(db3);
+
+ dt = registry.introspectType(ContentHandler.class);
+ Assert.assertNull(dt);
+
+ }
+
+}
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/test/java/org/apache/tuscany/databinding/impl/DataBindingRegistryImplTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/databinding/databinding-framework/src/test/java/org/apache/tuscany/databinding/impl/DataBindingRegistryImplTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org