jaxbcontext.java
来自「RESIN 3.2 最新源码」· Java 代码 · 共 176 行
JAVA
176 行
/** Copyright (c) 1998-2007 Caucho Technology -- all rights reserved** This file is part of Resin(R) Open Source** Each copy or derived work must preserve the copyright notice and this* notice unmodified.** Resin Open Source is free software; you can redistribute it and/or modify* it under the terms of the GNU General Public License as published by* the Free Software Foundation; either version 2 of the License, or* (at your option) any later version.** Resin Open Source is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty* of NON-INFRINGEMENT. See the GNU General Public License for more* details.** You should have received a copy of the GNU General Public License* along with Resin Open Source; if not, write to the** Free Software Foundation, Inc.* 59 Temple Place, Suite 330* Boston, MA 02111-1307 USA** @author Scott Ferguson*/package javax.xml.bind;import org.w3c.dom.Node;import java.io.IOException;import java.lang.reflect.Constructor;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.Map;import java.util.logging.Logger;public abstract class JAXBContext { private static final Logger log = Logger.getLogger(JAXBContext.class.getName()); protected JAXBContext() { } /** subclasses must override */ public Binder<Node> createBinder() { return null; } /** subclasses must override */ public <T> Binder<T> createBinder(Class<T> domType) { return null; } /** subclasses must override */ public JAXBIntrospector createJAXBIntrospector() { return null; } public abstract Marshaller createMarshaller() throws JAXBException; public abstract Unmarshaller createUnmarshaller() throws JAXBException; public abstract Validator createValidator() throws JAXBException; /** subclasses must override */ public void generateSchema(SchemaOutputResolver outputResolver) throws IOException { } public static JAXBContext newInstance(Class... classesToBeBound) throws JAXBException { return newInstance(classesToBeBound, null); } public static JAXBContext newInstance(Class[] classesToBeBound, Map<String,?> properties) throws JAXBException { try { ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); FactoryLoader factoryLoader = FactoryLoader.getFactoryLoader("javax.xml.bind.JAXBContext"); Class cl = factoryLoader.getFactoryClass(classLoader); if (cl != null) { Method m = cl.getMethod("createContext", Class[].class, Map.class); return (JAXBContext) m.invoke(null, classesToBeBound, properties); } cl = Class.forName("com.caucho.jaxb.JAXBContextImpl"); Constructor con = cl.getConstructor(new Class[] { Class[].class, Map.class }); return (JAXBContext) con.newInstance(new Object[] { classesToBeBound, properties }); } catch (InvocationTargetException e) { if (e.getCause() instanceof JAXBException) throw (JAXBException) e.getCause(); else throw new JAXBException (e); } catch (Exception e) { throw new JAXBException(e); } } public static JAXBContext newInstance(String contextPath) throws JAXBException { return newInstance(contextPath, Thread.currentThread().getContextClassLoader(), null); } public static JAXBContext newInstance(String contextPath, ClassLoader classLoader) throws JAXBException { return newInstance(contextPath, classLoader, null); } public static JAXBContext newInstance(String contextPath, ClassLoader classLoader, Map<String,?> properties) throws JAXBException { try { FactoryLoader factoryLoader = FactoryLoader.getFactoryLoader("javax.xml.bind.JAXBContext"); Class cl = factoryLoader.getFactoryClass(classLoader, contextPath); if (cl != null) { try { Method m = cl.getMethod("createContext", String.class, ClassLoader.class, Map.class); return (JAXBContext) m.invoke(null, contextPath, classLoader, properties); } catch (NoSuchMethodException e) { } Method m = cl.getMethod("createContext", String.class, ClassLoader.class); return (JAXBContext) m.invoke(null, contextPath, classLoader); } cl = Class.forName("com.caucho.jaxb.JAXBContextImpl"); Constructor con = cl.getConstructor(new Class[] {String.class, ClassLoader.class, Map.class}); return (JAXBContext) con.newInstance(new Object[] { contextPath, classLoader, properties }); } catch (Exception e) { throw new JAXBException(e); } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?