diff options
author | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2008-09-15 06:50:04 +0000 |
---|---|---|
committer | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2008-09-15 06:50:04 +0000 |
commit | 147ed48e86bb4a13e42df35f1d1d800a7b564f4b (patch) | |
tree | 2412db1dcc7b46a214d2b7b46d21349ac08aa9b8 /branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany | |
parent | 512771c8a42d2cde253f6df55ef552f7a0b4f792 (diff) |
Removed more modules as in Oscar's TUSCANY-2440 reduced-set patch. Also removed newer modules added since r643746 and are not required to run the minimum set that we are porting to android. Set svn ignore properties to ignore Manifest files produced by the build.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@695356 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany')
12 files changed, 0 insertions, 1054 deletions
diff --git a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSON2JavaBean.java b/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSON2JavaBean.java deleted file mode 100644 index b1813c9eab..0000000000 --- a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSON2JavaBean.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.databinding.json; - -import org.apache.tuscany.sca.databinding.PullTransformer; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.TransformationException; -import org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding; - -import com.metaparadigm.jsonrpc.JSONSerializer; -import com.metaparadigm.jsonrpc.SerializerState; - -/** - * @version $Rev$ $Date$ - */ -public class JSON2JavaBean implements PullTransformer<Object, Object> { - private JSONSerializer serializer; - - public JSON2JavaBean() { - super(); - serializer = new JSONSerializer(); - try { - serializer.registerDefaultSerializers(); - } catch (Exception e) { - throw new TransformationException(e); - } - serializer.setMarshallClassHints(true); - serializer.setMarshallNullAttributes(true); - } - - public Object transform(Object source, TransformationContext context) { - if (source == null) { - return null; - } - - try { - SerializerState state = new SerializerState(); - return serializer.unmarshall(state, context.getTargetDataType().getPhysical(), source); - } catch (Exception e) { - throw new TransformationException(e); - } - - } - - public String getSourceDataBinding() { - return JSONDataBinding.NAME; - } - - public String getTargetDataBinding() { - return JavaBeansDataBinding.NAME; - } - - public int getWeight() { - return 5000; - } -} diff --git a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSON2String.java b/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSON2String.java deleted file mode 100644 index 4e08384f09..0000000000 --- a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSON2String.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.databinding.json; - -import org.apache.tuscany.sca.databinding.PullTransformer; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.TransformationException; -import org.apache.tuscany.sca.databinding.impl.BaseTransformer; - -/** - * @version $Rev$ $Date$ - */ -public class JSON2String extends BaseTransformer<Object, String> implements - PullTransformer<Object, String> { - - @Override - protected Class<Object> getSourceType() { - return Object.class; - } - - @Override - protected Class<String> getTargetType() { - return String.class; - } - - public String transform(Object source, TransformationContext context) { - try { - return source.toString(); - } catch (Exception e) { - throw new TransformationException(e); - } - } - - @Override - public int getWeight() { - return 500; - } - - @Override - public String getSourceDataBinding() { - return JSONDataBinding.NAME; - } - -} diff --git a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSON2XMLStreamReader.java b/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSON2XMLStreamReader.java deleted file mode 100644 index b70f772696..0000000000 --- a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSON2XMLStreamReader.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.databinding.json; - -import javax.xml.stream.XMLStreamReader; - -import org.apache.tuscany.sca.databinding.PullTransformer; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.TransformationException; -import org.apache.tuscany.sca.databinding.impl.BaseTransformer; -import org.codehaus.jettison.badgerfish.BadgerFishXMLStreamReader; -import org.codehaus.jettison.json.JSONObject; - -/** - * @version $Rev$ $Date$ - */ -public class JSON2XMLStreamReader extends BaseTransformer<Object, XMLStreamReader> implements - PullTransformer<Object, XMLStreamReader> { - - @Override - protected Class<Object> getSourceType() { - return Object.class; - } - - @Override - protected Class<XMLStreamReader> getTargetType() { - return XMLStreamReader.class; - } - - public XMLStreamReader transform(Object source, TransformationContext context) { - try { - JSONObject json = JSONHelper.toJettison(source); - return new BadgerFishXMLStreamReader(json); - } catch (Exception e) { - throw new TransformationException(e); - } - } - - @Override - public int getWeight() { - return 500; - } - @Override - public String getSourceDataBinding() { - return JSONDataBinding.NAME; - } - -} diff --git a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSONDataBinding.java b/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSONDataBinding.java deleted file mode 100644 index 4bda838b18..0000000000 --- a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSONDataBinding.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.databinding.json; - - -import javax.xml.namespace.QName; - -import org.apache.tuscany.sca.databinding.impl.BaseDataBinding; -import org.apache.tuscany.sca.interfacedef.DataType; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.interfacedef.util.XMLType; -import org.codehaus.jettison.json.JSONObject; - -/** - * JAXB DataBinding - * - * @version $Rev$ $Date$ - */ -public class JSONDataBinding extends BaseDataBinding { - public static final String NAME = "JSON"; - public static final String[] ALIASES = new String[] {"json"}; - - public static final String ROOT_NAMESPACE = "http://tuscany.apache.org/xmlns/sca/databinding/json/1.0"; - public static final QName ROOT_ELEMENT = new QName(ROOT_NAMESPACE, "root"); - - public JSONDataBinding() { - super(NAME, ALIASES, org.json.JSONObject.class); - } - - @Override - public boolean introspect(DataType type, Operation operation) { - assert type != null; - Class cls = type.getPhysical(); - if (JSONObject.class.isAssignableFrom(cls) || org.json.JSONObject.class.isAssignableFrom(cls)) { - type.setDataBinding(getName()); - if (type.getLogical() == null) { - type.setLogical(XMLType.UNKNOWN); - } - return true; - } - return false; - } - - @SuppressWarnings("unchecked") - @Override - public Object copy(Object arg, DataType dataType, Operation operation) { - if (arg == null) { - return null; - } - try { - Class type = arg != null ? arg.getClass() : null; - return JSONHelper.toJSON(arg.toString(), type); - } catch (Exception e) { - throw new IllegalArgumentException(e); - } - } - -} diff --git a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSONHelper.java b/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSONHelper.java deleted file mode 100644 index fb29710506..0000000000 --- a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JSONHelper.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.databinding.json; - -import java.text.ParseException; - -import org.codehaus.jettison.json.JSONException; -import org.codehaus.jettison.json.JSONObject; - -/** - * @version $Rev$ $Date$ - */ -public class JSONHelper { - private JSONHelper() { - - } - - /** - * Convert to Jettison JSONObject - * @param source - * @return - */ - public static JSONObject toJettison(Object source) { - JSONObject json = null; - if (source instanceof JSONObject) { - json = (JSONObject)source; - } else if (source instanceof org.json.JSONObject) { - try { - json = new JSONObject(((org.json.JSONObject)source).toString()); - } catch (JSONException e) { - throw new IllegalArgumentException(e); - } - } - return json; - } - - /** - * Convert to org.json.JSONObject - * @param source - * @return - */ - public static org.json.JSONObject toJSONOrg(Object source) { - org.json.JSONObject json = null; - if (source instanceof JSONObject) { - try { - json = new org.json.JSONObject(((JSONObject)source).toString()); - } catch (ParseException e) { - throw new IllegalArgumentException(e); - } - } else if (source instanceof org.json.JSONObject) { - json = (org.json.JSONObject)source; - } - return json; - } - - public static <T> T toJSON(String json, Class<T> type) { - if (type == JSONObject.class) { - try { - return type.cast(new JSONObject(json)); - } catch (JSONException e) { - throw new IllegalArgumentException(e); - } - } else { - if (type == null) { - type = (Class<T>)org.json.JSONObject.class; - } - try { - return type.cast(new org.json.JSONObject(json)); - } catch (ParseException e) { - throw new IllegalArgumentException(e); - } - } - } -} diff --git a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JavaBean2JSON.java b/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JavaBean2JSON.java deleted file mode 100644 index a928deef22..0000000000 --- a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JavaBean2JSON.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.databinding.json; - -import org.apache.tuscany.sca.databinding.PullTransformer; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.TransformationException; -import org.apache.tuscany.sca.databinding.impl.BaseTransformer; -import org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding; - -import com.metaparadigm.jsonrpc.JSONSerializer; -import com.metaparadigm.jsonrpc.SerializerState; - -public class JavaBean2JSON extends BaseTransformer<Object, Object> implements PullTransformer<Object, Object> { - private JSONSerializer serializer; - - public JavaBean2JSON() { - serializer = new JSONSerializer(); - try { - serializer.registerDefaultSerializers(); - } catch (Exception e) { - throw new TransformationException(e); - } - serializer.setMarshallClassHints(true); - serializer.setMarshallNullAttributes(true); - } - - @Override - public String getSourceDataBinding() { - return JavaBeansDataBinding.NAME; - } - - @Override - protected Class<Object> getSourceType() { - return Object.class; - } - - @Override - public String getTargetDataBinding() { - return JSONDataBinding.NAME; - } - - @Override - protected Class<Object> getTargetType() { - return Object.class; - } - - public Object toJSON(Object source) throws Exception { - if (source == null) { - return org.json.JSONObject.NULL; - } - - SerializerState state = new SerializerState(); - return serializer.marshall(state, source); - } - - public Object transform(Object source, TransformationContext context) { - try { - return toJSON(source); - } catch (Exception e) { - throw new TransformationException(e); - } - } - -} diff --git a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JavaBean2JSONObject.java b/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JavaBean2JSONObject.java deleted file mode 100644 index de023157bc..0000000000 --- a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/JavaBean2JSONObject.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.databinding.json; - -import java.beans.BeanInfo; -import java.beans.Introspector; -import java.beans.PropertyDescriptor; -import java.lang.reflect.Array; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; - -import org.apache.tuscany.sca.databinding.PullTransformer; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.TransformationException; -import org.apache.tuscany.sca.databinding.impl.BaseTransformer; -import org.apache.tuscany.sca.databinding.impl.SimpleTypeMapperImpl; -import org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding; -import org.apache.tuscany.sca.interfacedef.util.TypeInfo; -import org.codehaus.jettison.json.JSONArray; -import org.codehaus.jettison.json.JSONObject; - -public class JavaBean2JSONObject extends BaseTransformer<Object, Object> implements PullTransformer<Object, Object> { - private static final Comparator<PropertyDescriptor> COMPARATOR = new Comparator<PropertyDescriptor>() { - public int compare(PropertyDescriptor o1, PropertyDescriptor o2) { - return o1.getName().compareTo(o2.getName()); - } - }; - - private static final SimpleTypeMapperImpl MAPPER = new SimpleTypeMapperImpl(); - private static final Object[] NULL = null; - - private static String getStringValue(Object o) { - if (o == null) { - return null; - } - TypeInfo info = SimpleTypeMapperImpl.getXMLType(o.getClass()); - if (info != null) { - return MAPPER.toXMLLiteral(info.getQName(), o, null); - } else { - return String.valueOf(o); - } - } - - private static boolean isSimpleType(Class<?> javaType) { - return SimpleTypeMapperImpl.getXMLType(javaType) != null; - } - - public JavaBean2JSONObject() { - } - - @Override - public String getSourceDataBinding() { - return JavaBeansDataBinding.NAME; - } - - @Override - protected Class<Object> getSourceType() { - return Object.class; - } - - @Override - public String getTargetDataBinding() { - return JSONDataBinding.NAME; - } - - @Override - protected Class<Object> getTargetType() { - return Object.class; - } - - public Object toJSON(Object source) throws Exception { - if (source == null) { - return JSONObject.NULL; - } - Class<?> type = source.getClass(); - if (isSimpleType(type)) { - return source; - } else if (type.isArray()) { - JSONArray array = new JSONArray(); - int i1 = Array.getLength(source); - for (int j = 0; j < i1; j++) { - Object o = Array.get(source, j); - array.put(toJSON(o)); - } - return array; - } else if (Collection.class.isAssignableFrom(type)) { - Collection c = (Collection)source; - JSONArray array = new JSONArray(); - for (Object element : c) { - array.put(toJSON(element)); - } - return array; - } - JSONObject json = new JSONObject(); - BeanInfo beanInfo = Introspector.getBeanInfo(type); - PropertyDescriptor[] propDescs = beanInfo.getPropertyDescriptors(); - Collections.sort(Arrays.asList(propDescs), COMPARATOR); - - for (int i = 0; i < propDescs.length; i++) { - PropertyDescriptor propDesc = propDescs[i]; - Class<?> pType = propDesc.getPropertyType(); - if ("class".equals(propDesc.getName())) { - continue; - } - Object pValue = propDesc.getReadMethod().invoke(source, NULL); - json.put(propDesc.getName(), toJSON(pValue)); - } - return json; - - } - - public Object transform(Object source, TransformationContext context) { - try { - return toJSON(source); - } catch (Exception e) { - throw new TransformationException(e); - } - } - -} diff --git a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/String2JSON.java b/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/String2JSON.java deleted file mode 100644 index ff5968bccd..0000000000 --- a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/String2JSON.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.databinding.json; - -import org.apache.tuscany.sca.databinding.PullTransformer; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.TransformationException; -import org.apache.tuscany.sca.databinding.impl.BaseTransformer; - -/** - * @version $Rev$ $Date$ - */ -public class String2JSON extends BaseTransformer<String, Object> implements PullTransformer<String, Object> { - - @Override - protected Class<String> getSourceType() { - return String.class; - } - - @Override - protected Class<Object> getTargetType() { - return Object.class; - } - - public Object transform(String source, TransformationContext context) { - try { - Class type = null; - if (context != null && context.getTargetDataType() != null) { - type = context.getTargetDataType().getPhysical(); - } - return JSONHelper.toJSON(source, type); - } catch (Exception e) { - throw new TransformationException(e); - } - } - - @Override - public int getWeight() { - return 500; - } - - @Override - public String getTargetDataBinding() { - return JSONDataBinding.NAME; - } - -} diff --git a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/XMLStreamReader2JSON.java b/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/XMLStreamReader2JSON.java deleted file mode 100644 index aa75afc9d4..0000000000 --- a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/XMLStreamReader2JSON.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.databinding.json; - -import java.io.StringWriter; - -import javax.xml.stream.XMLStreamReader; -import javax.xml.stream.XMLStreamWriter; - -import org.apache.tuscany.sca.databinding.PullTransformer; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.TransformationException; -import org.apache.tuscany.sca.databinding.impl.BaseTransformer; -import org.apache.tuscany.sca.databinding.xml.XMLStreamSerializer; -import org.codehaus.jettison.badgerfish.BadgerFishXMLStreamWriter; - -/** - * @version $Rev$ $Date$ - */ -public class XMLStreamReader2JSON extends BaseTransformer<XMLStreamReader, Object> implements - PullTransformer<XMLStreamReader, Object> { - - @Override - protected Class<XMLStreamReader> getSourceType() { - return XMLStreamReader.class; - } - - @Override - protected Class<Object> getTargetType() { - return Object.class; - } - - public Object transform(XMLStreamReader source, TransformationContext context) { - try { - StringWriter writer = new StringWriter(); - XMLStreamWriter jsonWriter = new BadgerFishXMLStreamWriter(writer); - XMLStreamSerializer serializer = new XMLStreamSerializer(); - serializer.serialize(source, jsonWriter); - source.close(); - Class type = null; - if (context != null && context.getTargetDataType() != null) { - type = context.getTargetDataType().getPhysical(); - } - return JSONHelper.toJSON(writer.toString(), type); - } catch (Exception e) { - throw new TransformationException(e); - } - } - - @Override - public int getWeight() { - return 500; - } - - @Override - public String getTargetDataBinding() { - return JSONDataBinding.NAME; - } - -} diff --git a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/axiom/JSON2OMElement.java b/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/axiom/JSON2OMElement.java deleted file mode 100644 index 1072b70029..0000000000 --- a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/axiom/JSON2OMElement.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.databinding.json.axiom; - - -import org.apache.axiom.om.OMAbstractFactory; -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.OMFactory; -import org.apache.axiom.om.OMNamespace; -import org.apache.tuscany.sca.databinding.PullTransformer; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.TransformationException; -import org.apache.tuscany.sca.databinding.Transformer; -import org.apache.tuscany.sca.databinding.impl.BaseTransformer; -import org.apache.tuscany.sca.databinding.json.JSONDataBinding; -import org.apache.tuscany.sca.databinding.json.JSONHelper; -import org.apache.tuscany.sca.interfacedef.DataType; -import org.apache.tuscany.sca.interfacedef.util.XMLType; -import org.codehaus.jettison.json.JSONObject; -import org.osoa.sca.annotations.Service; - -/** - * @version $Rev$ $Date$ - */ -@Service(Transformer.class) -public class JSON2OMElement extends BaseTransformer<Object, OMElement> implements PullTransformer<Object, OMElement> { - - private OMFactory factory = OMAbstractFactory.getOMFactory(); - - @Override - protected Class<Object> getSourceType() { - return Object.class; - } - - @Override - protected Class<OMElement> getTargetType() { - return OMElement.class; - } - - public OMElement transform(Object source, TransformationContext context) { - try { - JSONObject json = JSONHelper.toJettison(source); - if (json == null) { - return null; - } - String ns = JSONDataBinding.ROOT_ELEMENT.getNamespaceURI(); - String name = JSONDataBinding.ROOT_ELEMENT.getLocalPart(); - if (context != null) { - DataType<?> dataType = context.getTargetDataType(); - Object logical = dataType.getLogical(); - if (logical instanceof XMLType) { - XMLType xmlType = (XMLType)logical; - if (xmlType.isElement()) { - ns = xmlType.getElementName().getNamespaceURI(); - name = xmlType.getElementName().getLocalPart(); - } - } - } - JSONBadgerfishDataSource ds = new JSONBadgerfishDataSource(json); - OMNamespace namespace = factory.createOMNamespace(ns, ""); - return factory.createOMElement(ds, name, namespace); - } catch (Exception e) { - throw new TransformationException(e); - } - } - - @Override - public int getWeight() { - return 500; - } - - @Override - public String getSourceDataBinding() { - return JSONDataBinding.NAME; - } - -} diff --git a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/axiom/JSONBadgerfishDataSource.java b/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/axiom/JSONBadgerfishDataSource.java deleted file mode 100644 index adc38772be..0000000000 --- a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/axiom/JSONBadgerfishDataSource.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.databinding.json.axiom; - -import javax.xml.stream.XMLStreamException; - -import org.codehaus.jettison.badgerfish.BadgerFishXMLStreamReader; -import org.codehaus.jettison.json.JSONException; -import org.codehaus.jettison.json.JSONObject; - -/** - * JSONDataSource keeps the JSON String inside and consumes it when needed. This is to be kept in the - * OMSourcedElementImpl and can be used either to expand the tree or get the JSON String directly without expanding. - * This uses the "Badgerfish" JSON convention. - * - * @version $Rev$ $Date$ - */ - -public class JSONBadgerfishDataSource extends JSONDataSource { - - public JSONBadgerfishDataSource(JSONObject json) { - super(json); - } - - /** - * Gives the StAX reader using the "Badgerfish" formatted input JSON String. - * - * @return The XMLStreamReader according to the JSON String. - * @throws javax.xml.stream.XMLStreamException if there is an error while making the StAX reader. - */ - @Override - public javax.xml.stream.XMLStreamReader getReader() throws XMLStreamException { - try { - return new BadgerFishXMLStreamReader(json); - } catch (JSONException e) { - throw new XMLStreamException(e); - } - - } -} diff --git a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/axiom/JSONDataSource.java b/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/axiom/JSONDataSource.java deleted file mode 100644 index 5b0312056e..0000000000 --- a/branches/sca-android/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/axiom/JSONDataSource.java +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.databinding.json.axiom; - -import java.io.IOException; -import java.io.OutputStream; -import java.io.Writer; -import java.util.HashMap; -import java.util.Map; - -import javax.xml.stream.XMLStreamConstants; -import javax.xml.stream.XMLStreamReader; - -import org.apache.axiom.om.OMDataSource; -import org.apache.axiom.om.OMException; -import org.apache.axiom.om.OMOutputFormat; -import org.codehaus.jettison.json.JSONObject; -import org.codehaus.jettison.json.JSONTokener; -import org.codehaus.jettison.mapped.MappedXMLInputFactory; - -/** - * JSONDataSource keeps the JSON String inside and consumes it when needed. This is to be kept in the - * OMSourcedElementImpl and can be used either to expand the tree or get the JSON String directly without expanding. - * This uses the "Mapped" JSON convention. - * - * @version $Rev$ $Date$ - */ - -public class JSONDataSource implements OMDataSource { - protected JSONObject json; - - public JSONDataSource(JSONObject json) { - this.json = json; - } - - /** - * Writes JSON into the output stream. As this should write JSON, it directly gets the JSON string and writes it - * without expanding the tree. - * - * @param outputStream the stream to be written into - * @param omOutputFormat format of the message, this is ignored. - * @throws javax.xml.stream.XMLStreamException if there is an error while writing the message in to the output - * stream. - */ - public void serialize(OutputStream outputStream, OMOutputFormat omOutputFormat) - throws javax.xml.stream.XMLStreamException { - try { - String encoding = omOutputFormat == null ? "UTF-8" : omOutputFormat.getCharSetEncoding(); - outputStream.write(getJSONString().getBytes(encoding)); - } catch (IOException e) { - throw new OMException(); - } - } - - /** - * Writes JSON through the writer. As this should write JSON, it directly gets the JSON string and writes it without - * expanding the tree. - * - * @param writer Writer to be written into - * @param omOutputFormat format of the message, this is ignored. - * @throws javax.xml.stream.XMLStreamException if there is an error while writing the message through the writer. - */ - public void serialize(Writer writer, OMOutputFormat omOutputFormat) throws javax.xml.stream.XMLStreamException { - try { - writer.write(getJSONString()); - } catch (IOException e) { - throw new OMException(); - } - } - - /** - * Writes XML through the XMLStreamWriter. As the input data source is JSON, this method needs to get a StAX reader - * from that JSON String. Therefore this uses the getReader() method to get the StAX reader writes the events into - * the XMLStreamWriter. - * - * @param xmlStreamWriter StAX writer to be written into - * @throws javax.xml.stream.XMLStreamException if there is an error while writing the message through the StAX - * writer. - */ - public void serialize(javax.xml.stream.XMLStreamWriter xmlStreamWriter) throws javax.xml.stream.XMLStreamException { - XMLStreamReader reader = getReader(); - xmlStreamWriter.writeStartDocument(); - while (reader.hasNext()) { - int x = reader.next(); - switch (x) { - case XMLStreamConstants.START_ELEMENT: - xmlStreamWriter.writeStartElement(reader.getPrefix(), reader.getLocalName(), reader - .getNamespaceURI()); - int namespaceCount = reader.getNamespaceCount(); - for (int i = namespaceCount - 1; i >= 0; i--) { - xmlStreamWriter.writeNamespace(reader.getNamespacePrefix(i), reader.getNamespaceURI(i)); - } - int attributeCount = reader.getAttributeCount(); - for (int i = 0; i < attributeCount; i++) { - xmlStreamWriter.writeAttribute(reader.getAttributePrefix(i), - reader.getAttributeNamespace(i), - reader.getAttributeLocalName(i), - reader.getAttributeValue(i)); - } - break; - case XMLStreamConstants.START_DOCUMENT: - break; - case XMLStreamConstants.CHARACTERS: - xmlStreamWriter.writeCharacters(reader.getText()); - break; - case XMLStreamConstants.CDATA: - xmlStreamWriter.writeCData(reader.getText()); - break; - case XMLStreamConstants.END_ELEMENT: - xmlStreamWriter.writeEndElement(); - break; - case XMLStreamConstants.END_DOCUMENT: - xmlStreamWriter.writeEndDocument(); - break; - case XMLStreamConstants.SPACE: - break; - case XMLStreamConstants.COMMENT: - xmlStreamWriter.writeComment(reader.getText()); - break; - case XMLStreamConstants.DTD: - xmlStreamWriter.writeDTD(reader.getText()); - break; - case XMLStreamConstants.PROCESSING_INSTRUCTION: - xmlStreamWriter.writeProcessingInstruction(reader.getPITarget(), reader.getPIData()); - break; - case XMLStreamConstants.ENTITY_REFERENCE: - xmlStreamWriter.writeEntityRef(reader.getLocalName()); - break; - default: - throw new OMException(); - } - } - xmlStreamWriter.writeEndDocument(); - } - - /** - * Gives the StAX reader using the "Mapped" formatted input JSON String. - * - * @return The XMLStreamReader according to the JSON String. - * @throws javax.xml.stream.XMLStreamException if there is an error while making the StAX reader. - */ - - public javax.xml.stream.XMLStreamReader getReader() throws javax.xml.stream.XMLStreamException { - - Map<String, String> nsMap = new HashMap<String, String>(); - nsMap.put("", ""); - - // input factory for "Mapped" convention - MappedXMLInputFactory inputFactory = new MappedXMLInputFactory(nsMap); - String jsonString = this.getJSONString(); - return inputFactory.createXMLStreamReader(new JSONTokener(jsonString)); - } - - // returns the json string by consuming the JSON input stream. - protected String getJSONString() { - return json.toString(); - } - -} |