/******************************************************************************* * Copyright (c) 2013, 2015 Oracle and/or its affiliates. All rights reserved. * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Blaise Doughan - 2.6 - initial implementation ******************************************************************************/ package org.eclipse.persistence.internal.oxm; import javax.xml.namespace.QName; import org.eclipse.persistence.internal.core.queries.CoreContainerPolicy; import org.eclipse.persistence.internal.core.sessions.CoreAbstractSession; import org.eclipse.persistence.internal.oxm.record.AbstractUnmarshalRecord; public interface ConversionManager { public String buildBase64StringFromBytes(byte[] bytes); public QName buildQNameFromString(String stringValue, AbstractUnmarshalRecord record); /** * Removes all leading and trailing whitespaces, and replaces any sequences of whitespaces * that occur in the string with a single ' ' character. * @since EclipseLink 2.6.0 */ public String collapseStringValue(String value); /** * Convert the given object to the appropriate type by invoking the appropriate * ConversionManager method. * * @param sourceObject - will always be a string if read from XML * @param javaClass - the class that the object must be converted to * @param schemaTypeQName - the XML schema that the object is being converted from * @return - the newly converted object */ public Object convertObject(Object sourceObject, Class javaClass, QName schemaTypeQName); /** * @since EclipseLink 2.6.0 */ public Object convertSchemaBase64ListToByteArrayList(Object sourceObject, CoreContainerPolicy containerPolicy, CoreAbstractSession session); public Object convertHexBinaryListToByteArrayList(Object sourceObject, CoreContainerPolicy containerPolicy, CoreAbstractSession session); /** * INTERNAL: * Converts a String which is in Base64 format to a Byte[] */ public byte[] convertSchemaBase64ToByteArray(Object sourceObject); /** * @since EclipseLink 2.6.0 * @param schemaType The type you want to find a corresponding Java class for. * @return the Java class for the XML schema type. */ public Class<?> javaType(QName schemaType); /** * Replaces any CR, Tab or LF characters in the string with a single ' ' character. * @since EclipseLink 2.6.0 */ public String normalizeStringValue(String value); /** * @since EclipseLink 2.6.0 * @param javaType The type you want to find a corresponding schema type for. * @return the schema type for the Java class. */ public QName schemaType(Class<?> javaType); }