org.eclipse.persistence.internal.oxm.mappings.Mapping 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
/*
* Copyright (c) 2012, 2021 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 java.util.Map;
import org.eclipse.persistence.core.descriptors.CoreDescriptor;
import org.eclipse.persistence.core.mappings.CoreAttributeAccessor;
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.record.XMLRecord;
public interface Mapping<
ABSTRACT_SESSION extends CoreAbstractSession,
ATTRIBUTE_ACCESSOR extends CoreAttributeAccessor,
CONTAINER_POLICY extends CoreContainerPolicy,
DESCRIPTOR extends CoreDescriptor,
FIELD extends CoreField,
XML_RECORD extends XMLRecord> {
void convertClassNamesToClasses(ClassLoader classLoader);
ATTRIBUTE_ACCESSOR getAttributeAccessor();
/**
* The classification type for the attribute this mapping represents
*/
Class> getAttributeClassification();
/**
* Return the name of the attribute set in the mapping.
*/
String getAttributeName();
Object getAttributeValueFromObject(Object object);
CONTAINER_POLICY getContainerPolicy();
/**
* Return the descriptor to which this mapping belongs
*/
DESCRIPTOR getDescriptor();
FIELD getField();
DESCRIPTOR getReferenceDescriptor();
/**
* Related mapping should implement this method to return true.
*/
boolean isAbstractCompositeCollectionMapping();
/**
* Related mapping should implement this method to return true.
*/
boolean isAbstractCompositeDirectCollectionMapping();
/**
* Related mapping should implement this method to return true.
*/
boolean isAbstractCompositeObjectMapping();
/**
* Related mapping should implement this method to return true.
*/
boolean isAbstractDirectMapping();
boolean isCollectionMapping();
boolean isReadOnly();
boolean isReferenceMapping();
/**
* Related mapping should implement this method to return true.
*/
boolean isTransformationMapping();
/**
* ADVANCED:
* Set the attributeAccessor.
* The attribute accessor is responsible for setting and retrieving the attribute value
* from the object for this mapping.
* This can be set to an implementor of AttributeAccessor if the attribute
* requires advanced conversion of the mapping value, or a real attribute does not exist.
*/
void setAttributeAccessor(ATTRIBUTE_ACCESSOR attributeAccessor);
/**
* Sets the name of the attribute in the mapping.
*/
void setAttributeName(String attributeName);
void setAttributeValueInObject(Object object, Object value);
void writeSingleValue(Object value, Object object, XML_RECORD record, ABSTRACT_SESSION session);
/**
* This method is invoked reflectively on the reference object to return the value of the
* attribute in the object. This method sets the name of the getMethodName.
*/
void setGetMethodName(String methodName);
/**
* Set this mapping to be read only.
* Read-only mappings can be used if two attributes map to the same field.
* Read-only mappings cannot be used for the primary key or other required fields.
*/
void setIsReadOnly(boolean aBoolean);
/**
* INTERNAL:
* Allow user defined properties.
*/
void setProperties(Map properties);
/**
* Set the methodName used to set the value for the mapping's attribute into the object.
*/
void setSetMethodName(String methodName);
}