Here you can find the source of createUnmarshaller(Class> clazz)
Parameter | Description |
---|---|
clazz | a parameter |
public static Unmarshaller createUnmarshaller(Class<?> clazz)
//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; } }