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

org.jvnet.hyperjaxb3.ejb.strategy.mapping.AssociationMapping Maven / Gradle / Ivy

The newest version!
package org.jvnet.hyperjaxb3.ejb.strategy.mapping;

import java.util.Collection;
import java.util.List;

import com.sun.java.xml.ns.persistence.orm.AssociationOverride;
import com.sun.java.xml.ns.persistence.orm.JoinColumn;
import com.sun.java.xml.ns.persistence.orm.JoinTable;
import com.sun.java.xml.ns.persistence.orm.OrderColumn;
import com.sun.java.xml.ns.persistence.orm.PrimaryKeyJoinColumn;
import com.sun.tools.xjc.outline.FieldOutline;

public interface AssociationMapping {

	public Collection getSourceIdFieldsOutline(Mapping context,
			FieldOutline fieldOutline);

	public Collection getTargetIdFieldsOutline(Mapping context,
			FieldOutline fieldOutline);

	// * 1:1
	public void createPrimaryKeyJoinColumns(Mapping context,
			FieldOutline fieldOutline,
			Collection idFieldOutlines,
			List primaryKeyJoinColumns);

	// * M:1
	// * 1:M
	// * 1:1
	public void createJoinColumns(Mapping context, FieldOutline fieldOutline,
			Collection idFieldOutlines,
			List joinColumns);

	// 1:1
	// M:1
	// 1:M
	// M:M
	public void createJoinTable(Mapping context, FieldOutline fieldOutline,
			Collection sourceIdFieldOutlines,
			Collection targetIdFieldOutlines, JoinTable joinTable);

	public void createOrderColumn(Mapping context, FieldOutline fieldOutline,
			final OrderColumn orderColumn);

	public void createElementCollection$OrderColumn(Mapping context,
			FieldOutline fieldOutline, final OrderColumn orderColumn);

	public void createElementCollection$CollectionTable$JoinColumns(
			Mapping context, FieldOutline fieldOutline,
			Collection idFieldOutlines,
			List joinColumns);

	public AssociationMapping createEmbeddedAssociationMapping(
			FieldOutline fieldOutline);

	public void createAssociationOverride(Mapping context,
			FieldOutline fieldOutline,
			final List associationOverrides);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy