All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.epam.deltix.util.xml.JAXBContextFactory Maven / Gradle / Ivy

/*
 * Copyright 2021 EPAM Systems, Inc
 *
 * See the NOTICE file distributed with this work for additional information
 * regarding copyright ownership. Licensed 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 com.epam.deltix.util.xml;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import java.util.Map;

/**
 *  Convenience class for creating JAXBContext instances while supplying the
 *  correct class loader, to work around IKVM's default class loading.
 */
public abstract class JAXBContextFactory {
    private static final ClassLoader     CL = JAXBContextFactory.class.getClassLoader ();

    /**
     *  Equivalent to JAXBContext.newInstance
     */
    public static JAXBContext  newInstance (String packagePath) throws JAXBException {
        return (JAXBContext.newInstance (packagePath, CL));
    }

    public static JAXBContext newInstance(String contextPath, ClassLoader classLoader) throws JAXBException {
        return (JAXBContext.newInstance (contextPath, classLoader));
    }

    public static JAXBContext newInstance(String contextPath, Map properties) throws JAXBException {
        return (JAXBContext.newInstance(contextPath, CL, properties));
    }

    public static Unmarshaller      createStdUnmarshaller (JAXBContext context)
        throws JAXBException
    {
        Unmarshaller    unmarshaller = context.createUnmarshaller ();

        unmarshaller.setEventHandler (AbortingValidationEventHandler.INSTANCE);

        return (unmarshaller);
    }

    public static Marshaller        createStdMarshaller (JAXBContext context)
        throws JAXBException
    {
        Marshaller      marshaller = context.createMarshaller ();

        marshaller.setProperty (Marshaller.JAXB_ENCODING, "UTF-8");
        marshaller.setProperty (Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);

        return (marshaller);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy