summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/databinding/src/main
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-07-16 04:07:55 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-07-16 04:07:55 +0000
commita6a65ad2db2b466494a1526d2266931fc3c5fa76 (patch)
tree705677f6446508eed112b05095d0bcc6e3c3e325 /java/sca/modules/databinding/src/main
parent6d4696612dc9c701a40be66c446f99f5ff6bbacc (diff)
Turn SimpleTypeMapper into a utility so that the implementation-bepl can use it
Fix the OSGi MF git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@794517 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/databinding/src/main')
-rw-r--r--java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/SimpleTypeMapper.java23
-rw-r--r--java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/SimpleTypeMapperImpl.java6
-rw-r--r--java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/SimpleJavaDataBinding.java9
-rw-r--r--java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/XML2JavaBeanTransformer.java4
-rw-r--r--java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/BeanXMLStreamReaderImpl.java7
-rw-r--r--java/sca/modules/databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.SimpleTypeMapper17
6 files changed, 56 insertions, 10 deletions
diff --git a/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/SimpleTypeMapper.java b/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/SimpleTypeMapper.java
index 4e6d130aa9..ece8027c29 100644
--- a/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/SimpleTypeMapper.java
+++ b/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/SimpleTypeMapper.java
@@ -21,6 +21,8 @@ package org.apache.tuscany.sca.databinding;
import javax.xml.namespace.QName;
+import org.apache.tuscany.sca.interfacedef.util.TypeInfo;
+
/**
* Type Mapper between XML schema simple data types and java objects
*
@@ -43,4 +45,25 @@ public interface SimpleTypeMapper {
* @return The XML lexical representation
*/
String toXMLLiteral(QName simpleType, Object obj, TransformationContext context);
+
+ /**
+ * Get the java type for a simple xml type
+ * @param xmlType
+ * @return
+ */
+ Class<?> getJavaType(QName xmlType);
+
+ /**
+ * Get the xml type for a java type
+ * @param javaType
+ * @return
+ */
+ TypeInfo getXMLType(Class<?> javaType);
+
+ /**
+ * Check if an xml type is a simple type
+ * @param xmlType
+ * @return
+ */
+ boolean isSimpleXSDType(QName xmlType);
}
diff --git a/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/SimpleTypeMapperImpl.java b/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/SimpleTypeMapperImpl.java
index 32a2313f59..9ffa950f1a 100644
--- a/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/SimpleTypeMapperImpl.java
+++ b/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/SimpleTypeMapperImpl.java
@@ -229,7 +229,7 @@ public class SimpleTypeMapperImpl extends XSDDataTypeConverter implements Simple
}
}
- public static Class getJavaType(QName xmlType) {
+ public Class<?> getJavaType(QName xmlType) {
if (xmlType != null && URI_2001_SCHEMA_XSD.equals(xmlType.getNamespaceURI())) {
return XML2JAVA.get(xmlType.getLocalPart());
} else {
@@ -237,7 +237,7 @@ public class SimpleTypeMapperImpl extends XSDDataTypeConverter implements Simple
}
}
- public static TypeInfo getXMLType(Class javaType) {
+ public TypeInfo getXMLType(Class javaType) {
return XSD_SIMPLE_TYPES.get(JAVA2XML.get(javaType));
}
@@ -390,7 +390,7 @@ public class SimpleTypeMapperImpl extends XSDDataTypeConverter implements Simple
return obj.toString();
}
- public static boolean isSimpleXSDType(QName typeName) {
+ public boolean isSimpleXSDType(QName typeName) {
if (typeName == null) {
return false;
}
diff --git a/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/SimpleJavaDataBinding.java b/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/SimpleJavaDataBinding.java
index 61a2189c72..b8b97d4425 100644
--- a/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/SimpleJavaDataBinding.java
+++ b/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/SimpleJavaDataBinding.java
@@ -22,6 +22,8 @@ package org.apache.tuscany.sca.databinding.javabeans;
import javax.xml.namespace.QName;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.databinding.SimpleTypeMapper;
import org.apache.tuscany.sca.databinding.impl.BaseDataBinding;
import org.apache.tuscany.sca.databinding.impl.SimpleTypeMapperImpl;
import org.apache.tuscany.sca.databinding.xml.XMLStringDataBinding;
@@ -37,9 +39,12 @@ import org.apache.tuscany.sca.interfacedef.util.XMLType;
*/
public class SimpleJavaDataBinding extends BaseDataBinding {
public static final String NAME = "java:simpleType";
+ private SimpleTypeMapper simpleTypeMapper = new SimpleTypeMapperImpl();
- public SimpleJavaDataBinding() {
+ public SimpleJavaDataBinding(ExtensionPointRegistry registry) {
super(NAME, Object.class);
+// UtilityExtensionPoint utilityExtensionPoint = registry.getExtensionPoint(UtilityExtensionPoint.class);
+// this.simpleTypeMapper = utilityExtensionPoint.getUtility(SimpleTypeMapper.class);
}
@Override
@@ -68,7 +73,7 @@ public class SimpleJavaDataBinding extends BaseDataBinding {
if (logical instanceof XMLType) {
elementName = ((XMLType)logical).getElementName();
}
- TypeInfo typeInfo = SimpleTypeMapperImpl.getXMLType(cls);
+ TypeInfo typeInfo = simpleTypeMapper.getXMLType(cls);
type.setLogical(new XMLType(elementName, typeInfo == null ? null : typeInfo.getQName()));
return true;
} else {
diff --git a/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/XML2JavaBeanTransformer.java b/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/XML2JavaBeanTransformer.java
index 01dd8fe963..b441340c38 100644
--- a/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/XML2JavaBeanTransformer.java
+++ b/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/XML2JavaBeanTransformer.java
@@ -70,7 +70,7 @@ public abstract class XML2JavaBeanTransformer<T> extends BaseTransformer<T, Obje
}
public Object toJavaObject(QName xmlType, T xmlElement, TransformationContext context) {
- if (xmlType != null && SimpleTypeMapperImpl.isSimpleXSDType(xmlType)) {
+ if (xmlType != null && mapper.isSimpleXSDType(xmlType)) {
return mapper.toJavaObject(xmlType, getText(xmlElement), context);
} else {
Class<?> javaType = (Class<?>)context.getTargetDataType().getPhysical();
@@ -82,7 +82,7 @@ public abstract class XML2JavaBeanTransformer<T> extends BaseTransformer<T, Obje
private <L> L createJavaObject(T element, Class<L> javaType, TransformationContext context)
throws XML2JavaMapperException {
if (isTextOnly(element)) {
- return (L) mapper.toJavaObject(SimpleTypeMapperImpl.getXMLType(javaType).getQName(),
+ return (L) mapper.toJavaObject(mapper.getXMLType(javaType).getQName(),
getText(element),
context);
} else {
diff --git a/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/BeanXMLStreamReaderImpl.java b/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/BeanXMLStreamReaderImpl.java
index 3423d3e3b0..7a130eb2af 100644
--- a/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/BeanXMLStreamReaderImpl.java
+++ b/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/BeanXMLStreamReaderImpl.java
@@ -37,6 +37,7 @@ import java.util.Map;
import javax.xml.namespace.QName;
+import org.apache.tuscany.sca.databinding.SimpleTypeMapper;
import org.apache.tuscany.sca.databinding.impl.SimpleTypeMapperImpl;
import org.apache.tuscany.sca.interfacedef.util.TypeInfo;
@@ -52,7 +53,7 @@ public class BeanXMLStreamReaderImpl extends XmlTreeStreamReaderImpl {
public static class BeanXmlNodeImpl extends SimpleXmlNodeImpl implements XmlNode {
private static final Object[] NULL = null;
- private static final SimpleTypeMapperImpl MAPPER = new SimpleTypeMapperImpl();
+ private static final SimpleTypeMapper MAPPER = new SimpleTypeMapperImpl();
public BeanXmlNodeImpl(Object bean) {
super(getName(bean == null ? null : bean.getClass()), bean);
@@ -63,14 +64,14 @@ public class BeanXMLStreamReaderImpl extends XmlTreeStreamReaderImpl {
}
private static boolean isSimpleType(Class<?> javaType) {
- return SimpleTypeMapperImpl.getXMLType(javaType) != null;
+ return MAPPER.getXMLType(javaType) != null;
}
private static String getStringValue(Object o) {
if (o == null) {
return null;
}
- TypeInfo info = SimpleTypeMapperImpl.getXMLType(o.getClass());
+ TypeInfo info = MAPPER.getXMLType(o.getClass());
if (info != null) {
return MAPPER.toXMLLiteral(info.getQName(), o, null);
} else {
diff --git a/java/sca/modules/databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.SimpleTypeMapper b/java/sca/modules/databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.SimpleTypeMapper
new file mode 100644
index 0000000000..e3580154b0
--- /dev/null
+++ b/java/sca/modules/databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.SimpleTypeMapper
@@ -0,0 +1,17 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+org.apache.tuscany.sca.databinding.impl.SimpleTypeMapperImpl \ No newline at end of file