org.eclipse.persistence.internal.jpa.config.classes.EntityImpl 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 180e602
/*******************************************************************************
* Copyright (c) 2013 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:
* Guy Pelletier - initial API and implementation
******************************************************************************/
package org.eclipse.persistence.internal.jpa.config.classes;
import java.util.ArrayList;
import org.eclipse.persistence.internal.jpa.config.columns.DiscriminatorColumnImpl;
import org.eclipse.persistence.internal.jpa.config.columns.ForeignKeyImpl;
import org.eclipse.persistence.internal.jpa.config.columns.PrimaryKeyJoinColumnImpl;
import org.eclipse.persistence.internal.jpa.config.converters.ConvertImpl;
import org.eclipse.persistence.internal.jpa.config.inheritance.InheritanceImpl;
import org.eclipse.persistence.internal.jpa.config.tables.IndexImpl;
import org.eclipse.persistence.internal.jpa.config.tables.SecondaryTableImpl;
import org.eclipse.persistence.internal.jpa.config.tables.TableImpl;
import org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor;
import org.eclipse.persistence.internal.jpa.metadata.columns.PrimaryKeyForeignKeyMetadata;
import org.eclipse.persistence.internal.jpa.metadata.columns.PrimaryKeyJoinColumnMetadata;
import org.eclipse.persistence.internal.jpa.metadata.converters.ConvertMetadata;
import org.eclipse.persistence.internal.jpa.metadata.tables.IndexMetadata;
import org.eclipse.persistence.internal.jpa.metadata.tables.SecondaryTableMetadata;
import org.eclipse.persistence.jpa.config.Convert;
import org.eclipse.persistence.jpa.config.DiscriminatorColumn;
import org.eclipse.persistence.jpa.config.Entity;
import org.eclipse.persistence.jpa.config.ForeignKey;
import org.eclipse.persistence.jpa.config.Index;
import org.eclipse.persistence.jpa.config.Inheritance;
import org.eclipse.persistence.jpa.config.PrimaryKeyJoinColumn;
import org.eclipse.persistence.jpa.config.SecondaryTable;
import org.eclipse.persistence.jpa.config.Table;
/**
* JPA scripting API implementation.
*
* @author Guy Pelletier
* @since EclipseLink 2.5.1
*/
public class EntityImpl extends AbstractMappedClassImpl implements Entity {
public EntityImpl() {
super(new EntityAccessor());
getMetadata().setConverts(new ArrayList());
getMetadata().setIndexes(new ArrayList());
getMetadata().setPrimaryKeyJoinColumns(new ArrayList());
getMetadata().setSecondaryTables(new ArrayList());
}
public Convert addConvert() {
ConvertImpl convert = new ConvertImpl();
getMetadata().getConverts().add(convert.getMetadata());
return convert;
}
public Index addIndex() {
IndexImpl index = new IndexImpl();
getMetadata().getIndexes().add(index.getMetadata());
return index;
}
public PrimaryKeyJoinColumn addPrimaryKeyJoinColumn() {
PrimaryKeyJoinColumnImpl primaryKeyJoinColumn = new PrimaryKeyJoinColumnImpl();
getMetadata().getPrimaryKeyJoinColumns().add(primaryKeyJoinColumn.getMetadata());
return primaryKeyJoinColumn;
}
public SecondaryTable addSecondaryTable() {
SecondaryTableImpl secondaryTable = new SecondaryTableImpl();
getMetadata().getSecondaryTables().add(secondaryTable.getMetadata());
return secondaryTable;
}
public Entity setAccess(String access) {
getMetadata().setAccess(access);
return this;
}
public Entity setCascadeOnDelete(Boolean cascadeOnDelete) {
getMetadata().setCascadeOnDelete(cascadeOnDelete);
return this;
}
public Entity setClassExtractor(String classExtractor) {
getMetadata().setClassExtractorName(classExtractor);
return this;
}
public DiscriminatorColumn setDiscriminatorColumn() {
DiscriminatorColumnImpl column = new DiscriminatorColumnImpl();
getMetadata().setDiscriminatorColumn(column.getMetadata());
return column;
}
public Entity setDiscriminatorValue(String discriminatorValue) {
getMetadata().setDiscriminatorValue(discriminatorValue);
return this;
}
public Inheritance setInheritance() {
InheritanceImpl inheritance = new InheritanceImpl();
getMetadata().setInheritance(inheritance.getMetadata());
return inheritance;
}
public ForeignKey setPrimaryKeyForeignKey() {
ForeignKeyImpl foreignKey = new ForeignKeyImpl();
getMetadata().setPrimaryKeyForeignKey(new PrimaryKeyForeignKeyMetadata(foreignKey.getMetadata()));
return foreignKey;
}
public Table setTable() {
TableImpl table = new TableImpl();
getMetadata().setTable(table.getMetadata());
return table;
}
}