org.eclipse.persistence.internal.oxm.mappings.ChoiceObjectMapping Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of eclipselink Show documentation
Show all versions of eclipselink Show documentation
EclipseLink build based upon Git transaction f2b9fc5
The newest version!
/*
* Copyright (c) 2012, 2023 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 v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Blaise Doughan - 2.5 - initial implementation
package org.eclipse.persistence.internal.oxm.mappings;
import org.eclipse.persistence.core.descriptors.CoreDescriptor;
import org.eclipse.persistence.core.mappings.CoreAttributeAccessor;
import org.eclipse.persistence.core.mappings.converters.CoreConverter;
import org.eclipse.persistence.core.sessions.CoreSession;
import org.eclipse.persistence.internal.core.helper.CoreField;
import org.eclipse.persistence.internal.core.queries.CoreContainerPolicy;
import org.eclipse.persistence.internal.core.sessions.CoreAbstractSession;
import org.eclipse.persistence.internal.oxm.Marshaller;
import org.eclipse.persistence.internal.oxm.Unmarshaller;
import org.eclipse.persistence.internal.oxm.XMLChoiceFieldToClassAssociation;
import org.eclipse.persistence.internal.oxm.record.AbstractMarshalRecord;
import org.eclipse.persistence.internal.oxm.record.XMLRecord;
import java.util.List;
import java.util.Map;
public interface ChoiceObjectMapping<
ATTRIBUTE_ACCESSOR extends CoreAttributeAccessor,
ABSTRACT_SESSION extends CoreAbstractSession,
CONTAINER_POLICY extends CoreContainerPolicy,
CONVERTER extends CoreConverter,
DESCRIPTOR extends CoreDescriptor,
FIELD extends CoreField,
MARSHALLER extends Marshaller,
SESSION extends CoreSession,
UNMARSHALLER extends Unmarshaller,
XML_FIELD extends Field,
XML_MAPPING extends Mapping,
XML_RECORD extends XMLRecord> extends Mapping, XMLConverterMapping {
void addChoiceElement(List srcFields, String elementTypeName, List tgtFields);
void addChoiceElement(String srcXpath, String elementTypeName, String tgtXpath);
void addChoiceElement(XML_FIELD field, String elementTypeName);
void addConverter(XML_FIELD field, CONVERTER converter);
Map getChoiceElementMappings();
Map, XML_MAPPING> getChoiceElementMappingsByClass();
List getChoiceFieldToClassAssociations();
Map getClassNameToFieldMappings();
Map, XML_FIELD> getClassToFieldMappings();
Map, List> getClassToSourceFieldsMappings();
CONVERTER getConverter();
CONVERTER getConverter(XML_FIELD field);
List getFields();
Map> getFieldToClassMappings();
Object getFieldValue(Object object, CoreAbstractSession session, AbstractMarshalRecord marshalRecord);
/**
* Set the converter on the mapping.
* A converter can be used to convert between the object's value and database value of the attribute.
*/
void setConverter(CONVERTER converter);
void setIsWriteOnly(boolean b);
}