diff options
author | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-11 23:09:31 +0000 |
---|---|---|
committer | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-11 23:09:31 +0000 |
commit | a7c1a39d8c3c4ef4d5878dbff726085082a17e8a (patch) | |
tree | 54faa0e87eb8c8242a4a0baeb5f7b505a175d00f /branches/sca-java-2.0-M3/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/ext/JAXBCustomBuilder.java | |
parent | 4e13586bc791d71c41760cf4d0a5cc908973de3e (diff) |
Moving 2.x branches
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@835136 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-2.0-M3/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/ext/JAXBCustomBuilder.java')
-rw-r--r-- | branches/sca-java-2.0-M3/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/ext/JAXBCustomBuilder.java | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/branches/sca-java-2.0-M3/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/ext/JAXBCustomBuilder.java b/branches/sca-java-2.0-M3/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/ext/JAXBCustomBuilder.java deleted file mode 100644 index f30a6c1cb8..0000000000 --- a/branches/sca-java-2.0-M3/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/ext/JAXBCustomBuilder.java +++ /dev/null @@ -1,114 +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.jaxb.axiom.ext; - -import javax.xml.bind.JAXBException; -import javax.xml.stream.XMLStreamReader; - -import org.apache.axiom.om.OMContainer; -import org.apache.axiom.om.OMDataSource; -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.OMException; -import org.apache.axiom.om.OMFactory; -import org.apache.axiom.om.OMNamespace; -import org.apache.axiom.om.impl.builder.CustomBuilder; - -/** - * JAXBCustomBuilder creates an OMSourcedElement backed by a JAXBDataSource - * for the specified namespace and localPart. - */ -public class JAXBCustomBuilder implements CustomBuilder { - - private JAXBDSContext jdsContext; - - /** - * Create a JAXBCustomBuilder - * @param context JAXBDSContext - */ - public JAXBCustomBuilder(JAXBDSContext context) { - super(); - this.jdsContext = context; - } - - public OMElement create(String namespace, - String localPart, - OMContainer parent, - XMLStreamReader reader, - OMFactory factory) throws OMException { - - // There are some situations where we want to use normal - // unmarshalling, so return null - if (!shouldUnmarshal(namespace, localPart)) { - // JAXBCustomBuilderMonitor.updateTotalFailedCreates(); - return null; - } - try { - // Create an OMSourcedElement backed by an unmarshalled JAXB object - OMNamespace ns = factory.createOMNamespace(namespace, reader.getPrefix()); - - Object jaxb = jdsContext.unmarshal(reader); - - OMDataSource ds = new JAXBDataSourceExt(jaxb, jdsContext); - OMElement omse = factory.createOMElement(ds, localPart, ns); - - parent.addChild(omse); - // JAXBCustomBuilderMonitor.updateTotalCreates(); - return omse; - } catch (JAXBException e) { - // JAXBCustomBuilderMonitor.updateTotalFailedCreates(); - throw new OMException(e); - } - } - - /** - * The namespace identifier for the SOAP 1.1 envelope. - */ - public static final String URI_NS_SOAP_1_1_ENVELOPE = "http://schemas.xmlsoap.org/soap/envelope/"; - /** - * The namespace identifier for the SOAP 1.2 envelope. - */ - public static final String URI_NS_SOAP_1_2_ENVELOPE = "http://www.w3.org/2003/05/soap-envelope"; - - /** - * @param namespace - * @param localPart - * @return true if this ns and local part is acceptable for unmarshalling - */ - private boolean shouldUnmarshal(String namespace, String localPart) { - - // Don't unmarshall SOAPFaults or anything else in the SOAP - // namespace. - // Don't unmarshall elements that are unqualified - if (localPart == null || namespace == null - || namespace.length() == 0 - || URI_NS_SOAP_1_1_ENVELOPE.equals(namespace) - || URI_NS_SOAP_1_2_ENVELOPE.equals(namespace)) { - return false; - } - - // Don't unmarshal if this looks like encrypted data - if (localPart.equals("EncryptedData")) { - return false; - } - - return true; - - } -} |