Java XML JAXB Unmarshaller createUnmarshaller(Class clazz)

Here you can find the source of createUnmarshaller(Class clazz)

Description

create Unmarshaller

License

Open Source License

Parameter

Parameter Description
clazz a parameter

Declaration

public static Unmarshaller createUnmarshaller(Class<?> clazz) 

Method Source Code

//package com.java2s;
/*//  ww w .j a v a  2s . c o m
* Project Name: xinyunlian-ecom
* File Name: JaxbUtils.java
* Class Name: JaxbUtils
*
* Copyright 2014 Hengtian Software Inc
*
* Licensed under the Hengtiansoft
*
* http://www.hengtiansoft.com
*
* 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.
*/

import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;

import javax.xml.bind.Unmarshaller;

public class Main {
    private static ConcurrentMap<Class<?>, JAXBContext> jaxbMap = new ConcurrentHashMap<Class<?>, JAXBContext>();

    /**
     * @param clazz
     * @return
     */
    public static Unmarshaller createUnmarshaller(Class<?> clazz) {
        try {
            JAXBContext jaxbContext = getJaxbContext(clazz);
            return jaxbContext.createUnmarshaller();
        } catch (JAXBException e) {
            // LOGGER.error("Error occured when creating Unmarshaller.", e);
            throw new RuntimeException(e);
        }
    }

    /**
     * @param clazz
     * @return
     */
    private static JAXBContext getJaxbContext(Class<?> clazz) {
        JAXBContext jaxbContext = jaxbMap.get(clazz);
        if (jaxbContext == null) {
            try {
                jaxbContext = JAXBContext.newInstance(clazz);
                jaxbMap.putIfAbsent(clazz, jaxbContext);
            } catch (JAXBException ex) {
                throw new RuntimeException("Could not instantiate JAXBContext.", ex);
            }
        }
        return jaxbContext;
    }
}

Related

  1. createUnmarshaller()
  2. createUnmarshaller()
  3. createUnmarshaller(Class jaxbBindClass)
  4. createUnmarshaller(Class clazz)
  5. createUnmarshaller(Class clazz)
  6. createUnmarshaller(Object object)
  7. getUnmarshaller()
  8. getUnmarshaller()
  9. getUnmarshaller()