diff options
Diffstat (limited to 'sca-java-2.x/tags/2.0-M5.1-RC1/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/ext/JAXBCustomBuilder.java')
-rw-r--r-- | sca-java-2.x/tags/2.0-M5.1-RC1/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/sca-java-2.x/tags/2.0-M5.1-RC1/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/ext/JAXBCustomBuilder.java b/sca-java-2.x/tags/2.0-M5.1-RC1/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/sca-java-2.x/tags/2.0-M5.1-RC1/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; - - } -} |