
org.jvnet.hyperjaxb3.hibernate.customizations.impl.DefaultMappingCreationStrategy Maven / Gradle / Ivy
The newest version!
package org.jvnet.hyperjaxb3.hibernate.customizations.impl;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import org.jvnet.hyperjaxb3.hibernate.customizations.AbstractCollectionPropertyType;
import org.jvnet.hyperjaxb3.hibernate.customizations.CacheType;
import org.jvnet.hyperjaxb3.hibernate.customizations.ClassType;
import org.jvnet.hyperjaxb3.hibernate.customizations.CollectionIdType;
import org.jvnet.hyperjaxb3.hibernate.customizations.ColumnType;
import org.jvnet.hyperjaxb3.hibernate.customizations.ComponentType;
import org.jvnet.hyperjaxb3.hibernate.customizations.CompositeElementType;
import org.jvnet.hyperjaxb3.hibernate.customizations.DiscriminatorType;
import org.jvnet.hyperjaxb3.hibernate.customizations.ElementType;
import org.jvnet.hyperjaxb3.hibernate.customizations.GeneratorType;
import org.jvnet.hyperjaxb3.hibernate.customizations.IdType;
import org.jvnet.hyperjaxb3.hibernate.customizations.KeyType;
import org.jvnet.hyperjaxb3.hibernate.customizations.ListIndexType;
import org.jvnet.hyperjaxb3.hibernate.customizations.ManyToAnyType;
import org.jvnet.hyperjaxb3.hibernate.customizations.ManyToManyType;
import org.jvnet.hyperjaxb3.hibernate.customizations.ManyToOneType;
import org.jvnet.hyperjaxb3.hibernate.customizations.MappingCreationStrategy;
import org.jvnet.hyperjaxb3.hibernate.customizations.OneToManyType;
import org.jvnet.hyperjaxb3.hibernate.customizations.OneToOneType;
import org.jvnet.hyperjaxb3.hibernate.customizations.ParamType;
import org.jvnet.hyperjaxb3.hibernate.customizations.SimpleSinglePropertyType;
import org.jvnet.hyperjaxb3.hibernate.customizations.TypeType;
import org.jvnet.hyperjaxb3.hibernate.customizations.VersionType;
import org.jvnet.hyperjaxb3.hibernate.customizations.WildcardSinglePropertyType;
import org.jvnet.hyperjaxb3.hibernate.mapping.Param;
public class DefaultMappingCreationStrategy implements MappingCreationStrategy {
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createColumn(org.jvnet.hyperjaxb3.hibernate.customizations.ColumnType,
* java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.Column createColumn(
final ColumnType ccolumn, final String defaultColumnName) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Column column = new org.jvnet.hyperjaxb3.hibernate.mapping.Column();
if (!(ccolumn == null || ccolumn.getComment() == null)) {
column.setComment(ccolumn.getComment());
}
if (!(ccolumn == null || ccolumn.getName() == null)) {
column.setName(ccolumn.getName());
} else {
column.setName(defaultColumnName);
}
if (ccolumn != null) {
column.setLength(ccolumn.getLength());
column.setPrecision(ccolumn.getPrecision());
column.setScale(ccolumn.getScale());
if (ccolumn.isSetNotNull())
column.setNotNull(ccolumn.getNotNull().value());
if (ccolumn.isSetUnique())
column.setUnique(ccolumn.getUnique().value());
column.setUniqueKey(ccolumn.getUniqueKey());
column.setSqlType(ccolumn.getSqlType());
column.setCheck(ccolumn.getCheck());
}
return column;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createType(org.jvnet.hyperjaxb3.hibernate.customizations.TypeType,
* org.jvnet.hyperjaxb3.hibernate.customizations.TypeType)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.Type createType(
final TypeType ctype, final TypeType defaultType) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Type type = new org.jvnet.hyperjaxb3.hibernate.mapping.Type();
if (!(ctype == null || ctype.getName() == null)) {
type.setName(ctype.getName());
} else {
type.setName(defaultType.getName());
}
if (!(ctype == null || !ctype.isSetParam())) {
for (ParamType cparam : ctype.getParam()) {
final Param param = new Param();
param.setName(cparam.getName());
param.setvalue(cparam.getValue());
type.getParam().add(param);
}
} else {
if (defaultType.isSetParam()) {
for (ParamType cparam : defaultType.getParam()) {
final Param param = new Param();
param.setName(cparam.getName());
param.setvalue(cparam.getValue());
type.getParam().add(param);
}
}
}
return type;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createList(org.jvnet.hyperjaxb3.hibernate.customizations.AbstractCollectionPropertyType,
* java.lang.String, java.lang.String, java.lang.String,
* java.lang.String, java.lang.String, java.util.Collection)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.List createList(
final AbstractCollectionPropertyType cproperty, final String name,
final String defaultTableName, final String defaultKeyColumnName,
final String defaultListIndexColumnName,
final String defaultAccessorClassName, final Collection content) {
final org.jvnet.hyperjaxb3.hibernate.mapping.List list = new org.jvnet.hyperjaxb3.hibernate.mapping.List();
// @name
list.setName(name);
// @access
if (!(cproperty == null || cproperty.getAccess() == null)) {
list.setAccess(cproperty.getAccess());
} else {
list.setAccess(defaultAccessorClassName);
}
if (!(cproperty == null || cproperty.getTable() == null)) {
// @table
list.setTable(cproperty.getTable().getName());
// @schema
list.setSchema(cproperty.getTable().getSchema());
// @catalog
list.setCatalog(cproperty.getTable().getCatalog());
} else {
// @table
list.setTable(defaultTableName);
}
if (cproperty != null) {
// @lazy
if (cproperty.isSetLazy())
list.setLazy(cproperty.getLazy().value());
// @inverse
if (cproperty.isSetInverse())
list.setInverse(cproperty.getInverse().value());
// @cascade
if (cproperty.isSetCascade())
list.setCascade(cproperty.getCascade());
// @where
if (cproperty.isSetWhere())
list.setWhere(cproperty.getWhere());
// @batch-size
if (cproperty.isSetBatchSize())
list.setBatchSize(cproperty.getBatchSize());
// @outer-join
if (cproperty.isSetOuterJoin())
list.setOuterJoin(cproperty.getOuterJoin().value());
// @fetch
if (cproperty.isSetFetch())
list.setFetch(cproperty.getFetch().value());
// @persister
if (cproperty.isSetPersister())
list.setPersister(cproperty.getPersister());
// @check
if (cproperty.isSetCheck())
list.setCheck(cproperty.getCheck());
// @optimistic-lock
if (cproperty.isSetOptimisticLock())
list.setOptimisticLock(cproperty.getOptimisticLock().value());
}
if (!(cproperty == null || !cproperty.isSetCache())) {
list.setCache(createCache(cproperty.getCache(), "read-only"));
}
final KeyType ckey = (cproperty == null) ? null : cproperty.getKey();
list.setKey(createKey(ckey, defaultKeyColumnName));
final ListIndexType clistIndex = (cproperty == null) ? null : cproperty
.getListIndex();
list.getIndexOrListIndex().add(
createListIndex(clistIndex, defaultListIndexColumnName));
list.getElementOrOneToManyOrManyToManyOrCompositeElementOrManyToAny()
.addAll(content);
return list;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createBag(org.jvnet.hyperjaxb3.hibernate.customizations.AbstractCollectionPropertyType,
* java.lang.String, java.lang.String, java.lang.String,
* java.lang.String, java.util.Collection)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.Bag createBag(
final AbstractCollectionPropertyType cproperty, final String name,
final String defaultTableName, final String defaultKeyColumnName,
final String defaultAccessorClassName, final Collection content) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Bag bag = new org.jvnet.hyperjaxb3.hibernate.mapping.Bag();
// @name
bag.setName(name);
// @access
if (!(cproperty == null || cproperty.getAccess() == null)) {
bag.setAccess(cproperty.getAccess());
} else {
bag.setAccess(defaultAccessorClassName);
}
if (!(cproperty == null || cproperty.getTable() == null)) {
// @table
bag.setTable(cproperty.getTable().getName());
// @schema
bag.setSchema(cproperty.getTable().getSchema());
// @catalog
bag.setCatalog(cproperty.getTable().getCatalog());
} else {
// @table
bag.setTable(defaultTableName);
}
if (cproperty != null) {
// @lazy
if (cproperty.isSetLazy())
bag.setLazy(cproperty.getLazy().value());
// @inverse
if (cproperty.isSetInverse())
bag.setInverse(cproperty.getInverse().value());
// @cascade
bag.setCascade(cproperty.getCascade());
// @where
bag.setWhere(cproperty.getWhere());
// @batch-size
bag.setBatchSize(cproperty.getBatchSize());
// @outer-join
if (cproperty.isSetOuterJoin())
bag.setOuterJoin(cproperty.getOuterJoin().value());
// @fetch
if (cproperty.isSetFetch())
bag.setFetch(cproperty.getFetch().value());
// @persister
bag.setPersister(cproperty.getPersister());
// @check
bag.setCheck(cproperty.getCheck());
// @optimistic-lock
if (cproperty.isSetOptimisticLock())
bag.setOptimisticLock(cproperty.getOptimisticLock().value());
}
if (!(cproperty == null || !cproperty.isSetCache())) {
bag.setCache(createCache(cproperty.getCache(), "read-only"));
}
final KeyType ckey = (cproperty == null) ? null : cproperty.getKey();
bag.setKey(createKey(ckey, defaultKeyColumnName));
bag.getElementOrOneToManyOrManyToManyOrCompositeElementOrManyToAny()
.addAll(content);
return bag;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createIdbag(org.jvnet.hyperjaxb3.hibernate.customizations.AbstractCollectionPropertyType,
* java.lang.String, java.lang.String, java.lang.String,
* java.lang.String, java.lang.String, java.lang.String,
* java.lang.String, java.util.Collection)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.Idbag createIdbag(
final AbstractCollectionPropertyType cproperty, final String name,
final String defaultTableName, final String defaultKeyColumnName,
final String defaultCollectionIdType,
final String defaultCollectionIdColumnName,
final String defaultCollectionIdGeneratorClassName,
final String defaultAccessorClassName, final Collection content) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Idbag idbag = new org.jvnet.hyperjaxb3.hibernate.mapping.Idbag();
// @name
idbag.setName(name);
// @access
if (!(cproperty == null || cproperty.getAccess() == null)) {
idbag.setAccess(cproperty.getAccess());
} else {
idbag.setAccess(defaultAccessorClassName);
}
if (!(cproperty == null || cproperty.getTable() == null)) {
// @table
idbag.setTable(cproperty.getTable().getName());
// @schema
idbag.setSchema(cproperty.getTable().getSchema());
// @catalog
idbag.setCatalog(cproperty.getTable().getCatalog());
} else {
// @table
idbag.setTable(defaultTableName);
}
if (cproperty != null) {
// @lazy
if (cproperty.isSetLazy())
idbag.setLazy(cproperty.getLazy().value());
// @cascade
idbag.setCascade(cproperty.getCascade());
// @where
idbag.setWhere(cproperty.getWhere());
// @batch-size
idbag.setBatchSize(cproperty.getBatchSize());
// @outer-join
if (cproperty.isSetOuterJoin())
idbag.setOuterJoin(cproperty.getOuterJoin().value());
// @fetch
if (cproperty.isSetFetch())
idbag.setFetch(cproperty.getFetch().value());
// @persister
idbag.setPersister(cproperty.getPersister());
// @check
idbag.setCheck(cproperty.getCheck());
// @optimistic-lock
if (cproperty.isSetOptimisticLock())
idbag.setOptimisticLock(cproperty.getOptimisticLock().value());
}
if (!(cproperty == null || !cproperty.isSetCache())) {
idbag.setCache(createCache(cproperty.getCache(), "read-only"));
}
final CollectionIdType ccollectionId = cproperty.getCollectionId();
idbag.setCollectionId(createCollectionId(ccollectionId,
defaultCollectionIdType, defaultCollectionIdColumnName,
defaultCollectionIdGeneratorClassName));
final KeyType ckey = (cproperty == null) ? null : cproperty.getKey();
idbag.setKey(createKey(ckey, defaultKeyColumnName));
idbag.getElementOrManyToManyOrCompositeElementOrManyToAny().addAll(
content);
return idbag;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createCache(org.jvnet.hyperjaxb3.hibernate.customizations.CacheType,
* java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.Cache createCache(
final CacheType ccache, String defaultUsage) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Cache cache = new org.jvnet.hyperjaxb3.hibernate.mapping.Cache();
// cache/@usage
if (!(ccache == null || ccache.getUsage() == null)) {
cache.setUsage(ccache.getUsage());
} else {
cache.setUsage(defaultUsage);
}
// cache/@region
if (ccache != null) {
cache.setRegion(ccache.getRegion());
}
return cache;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createKey(org.jvnet.hyperjaxb3.hibernate.customizations.KeyType,
* java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.Key createKey(
final KeyType ckey, String defaultKeyColumnName) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Key key = new org.jvnet.hyperjaxb3.hibernate.mapping.Key();
if (!(ckey == null || ckey.getColumn() == null || ckey.getColumn()
.isEmpty())) {
for (final Iterator iterator = ckey.getColumn().iterator(); iterator
.hasNext();) {
final ColumnType ccolumn = (ColumnType) iterator.next();
key.getColumn()
.add(createColumn(ccolumn, defaultKeyColumnName));
}
} else {
key.getColumn().add(createColumn(null, defaultKeyColumnName));
}
if (ckey != null) {
key.setPropertyRef(ckey.getPropertyRef());
key.setForeignKey(ckey.getForeignKey());
key.setOnDelete(ckey.getOnDelete());
if (ckey.isSetNotNull())
key.setNotNull(ckey.getNotNull().value());
if (ckey.isSetUpdate())
key.setUpdate(ckey.getUpdate().value());
if (ckey.isSetUnique())
key.setUnique(ckey.getUnique().value());
}
return key;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createListIndex(org.jvnet.hyperjaxb3.hibernate.customizations.ListIndexType,
* java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.ListIndex createListIndex(
ListIndexType clistIndex, String defaultListIndexColumnName) {
final org.jvnet.hyperjaxb3.hibernate.mapping.ListIndex listIndex = new org.jvnet.hyperjaxb3.hibernate.mapping.ListIndex();
final ColumnType ccolumn;
if (!(clistIndex == null || clistIndex.getColumn() == null)) {
ccolumn = clistIndex.getColumn();
} else {
ccolumn = null;
}
listIndex.setColumn(createColumn(ccolumn, defaultListIndexColumnName));
if (clistIndex != null) {
listIndex.setBase(clistIndex.getBase());
}
return listIndex;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createElement(org.jvnet.hyperjaxb3.hibernate.customizations.ElementType,
* org.jvnet.hyperjaxb3.hibernate.customizations.TypeType,
* java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.Element createElement(
ElementType celement, TypeType defaultType,
String defaultElementColumnName) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Element element = new org.jvnet.hyperjaxb3.hibernate.mapping.Element();
// @type
if (celement != null && celement.getType() != null) {
element.setType(celement.getType().getName());
} else {
element.setType(defaultType.getName());
}
// column
final ColumnType ccolumn;
if (celement != null && celement.getColumn() != null) {
ccolumn = celement.getColumn();
} else {
ccolumn = null;
}
element.getColumnOrFormula().add(
createColumn(ccolumn, defaultElementColumnName));
return element;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createOneToMany(org.jvnet.hyperjaxb3.hibernate.customizations.OneToManyType,
* java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.OneToMany createOneToMany(
OneToManyType coneToMany, String clazz) {
final org.jvnet.hyperjaxb3.hibernate.mapping.OneToMany oneToMany = new org.jvnet.hyperjaxb3.hibernate.mapping.OneToMany();
// @class
oneToMany.setClazz(clazz);
// @not-found
if (coneToMany != null) {
oneToMany.setNotFound(coneToMany.getNotFound().value());
}
return oneToMany;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createManyToMany(org.jvnet.hyperjaxb3.hibernate.customizations.ManyToManyType,
* java.lang.String, java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.ManyToMany createManyToMany(
ManyToManyType cmanyToMany, String clazz,
String defaultManyToManyColumnName) {
final org.jvnet.hyperjaxb3.hibernate.mapping.ManyToMany manyToMany = new org.jvnet.hyperjaxb3.hibernate.mapping.ManyToMany();
// @class
manyToMany.setClazz(clazz);
if (cmanyToMany != null) {
// @not-found
if (cmanyToMany.isSetNotFound())
manyToMany.setNotFound(cmanyToMany.getNotFound().value());
// @outer-join
if (cmanyToMany.isSetOuterJoin())
manyToMany.setOuterJoin(cmanyToMany.getOuterJoin().value());
// @fetch
if (cmanyToMany.isSetFetch())
manyToMany.setFetch(cmanyToMany.getFetch().value());
// @lazy
manyToMany.setLazy(cmanyToMany.getLazy());
// @foreign-key
manyToMany.setForeignKey(cmanyToMany.getForeignKey());
// @unique
if (cmanyToMany.isSetUnique())
manyToMany.setUnique(cmanyToMany.getUnique().value());
// @where
manyToMany.setWhere(cmanyToMany.getWhere());
}
final ColumnType ccolumn;
if (!(cmanyToMany == null || cmanyToMany.getColumn() == null)) {
ccolumn = cmanyToMany.getColumn();
} else {
ccolumn = null;
}
manyToMany.getColumnOrFormula().add(
createColumn(ccolumn, defaultManyToManyColumnName));
return manyToMany;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createAny(org.jvnet.hyperjaxb3.hibernate.customizations.WildcardSinglePropertyType,
* java.lang.String, java.lang.String, java.lang.String,
* java.lang.String, java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.Any createAny(
final WildcardSinglePropertyType cproperty, final String name,
final String idType, final String defaultMetaType,
final String defaultAnyClassColumnName,
final String defaultAnyIdColumnName) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Any any = new org.jvnet.hyperjaxb3.hibernate.mapping.Any();
// @id-type
any.setIdType(idType);
// @name
any.setName(name);
// @meta-type
if (!(cproperty == null || cproperty.getMetaType() == null)) {
any.setMetaType(cproperty.getMetaType());
} else {
any.setMetaType(defaultMetaType);
}
if (cproperty != null) {
// @access
any.setAccess(cproperty.getAccess());
// @update
if (cproperty.isSetUpdate())
any.setUpdate(cproperty.getUpdate().value());
// @insert
if (cproperty.isSetInsert())
any.setInsert(cproperty.getInsert().value());
// @optimistic-lock
if (cproperty.isSetOptimisticLock())
any.setOptimisticLock(cproperty.getOptimisticLock().value());
// @cascade
any.setCascade(cproperty.getCascade());
// @lazy
if (cproperty.isSetLazy())
any.setLazy(cproperty.getLazy().value());
}
{
final ColumnType ccolumn;
if (cproperty != null && cproperty.getClassColumn() != null) {
ccolumn = cproperty.getClassColumn();
} else {
ccolumn = null;
}
any.getMetaOrMetaValueOrColumn().add(
createColumn(ccolumn, defaultAnyClassColumnName));
}
{
final ColumnType ccolumn;
if (cproperty != null && cproperty.getIdColumn() != null) {
ccolumn = cproperty.getIdColumn();
} else {
ccolumn = null;
}
any.getMetaOrMetaValueOrColumn().add(
createColumn(ccolumn, defaultAnyIdColumnName));
}
return any;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createManyToAny(org.jvnet.hyperjaxb3.hibernate.customizations.ManyToAnyType,
* java.lang.String, java.lang.String, java.lang.String,
* java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.ManyToAny createManyToAny(
ManyToAnyType cproperty, String idType, String defaultMetaType,
String defaultManyToAnyClassColumnName,
String defaultManyToAnyIdColumnName) {
final org.jvnet.hyperjaxb3.hibernate.mapping.ManyToAny manyToAny = new org.jvnet.hyperjaxb3.hibernate.mapping.ManyToAny();
manyToAny.setIdType(idType);
if (cproperty != null) {
if (cproperty.getMetaType() != null) {
manyToAny.setMetaType(cproperty.getMetaType());
} else {
manyToAny.setMetaType(defaultMetaType);
}
}
{
final ColumnType ccolumn;
if (cproperty != null && cproperty.getClassColumn() != null) {
ccolumn = cproperty.getClassColumn();
} else {
ccolumn = null;
}
manyToAny.getMetaValueOrColumn().add(
createColumn(ccolumn, defaultManyToAnyClassColumnName));
}
{
final ColumnType ccolumn;
if (cproperty != null && cproperty.getIdColumn() != null) {
ccolumn = cproperty.getIdColumn();
} else {
ccolumn = null;
}
manyToAny.getMetaValueOrColumn().add(
createColumn(ccolumn, defaultManyToAnyIdColumnName));
}
return manyToAny;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createProperty(org.jvnet.hyperjaxb3.hibernate.customizations.SimpleSinglePropertyType,
* java.lang.String, java.lang.String,
* org.jvnet.hyperjaxb3.hibernate.customizations.TypeType,
* java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.Property createProperty(
final SimpleSinglePropertyType cproperty,
final String propertyName, final String defaultColumnName,
final TypeType defaultType, final String defaultAccessorClassName) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Property property = new org.jvnet.hyperjaxb3.hibernate.mapping.Property();
if (cproperty != null && cproperty.getColumn() != null) {
property.getColumnOrFormula().add(
createColumn(cproperty.getColumn(), defaultColumnName));
} else {
property.getColumnOrFormula().add(
createColumn(null, defaultColumnName));
}
final TypeType ctype;
if (cproperty != null && cproperty.getType() != null) {
ctype = cproperty.getType();
} else {
ctype = null;
}
property.setType(createType(ctype, defaultType));
if (cproperty != null && cproperty.getAccess() != null) {
property.setAccess(cproperty.getAccess());
} else {
property.setAccess(defaultAccessorClassName);
}
property.setName(propertyName);
if (cproperty != null) {
if (cproperty.isSetUpdate())
property.setUpdate(cproperty.getUpdate().value());
if (cproperty.isSetInsert())
property.setInsert(cproperty.getInsert().value());
if (cproperty.isSetOptimisticLock())
property.setOptimisticLock(cproperty.getOptimisticLock()
.value());
if (cproperty.isSetLazy())
property.setLazy(cproperty.getLazy().value());
}
return property;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createOneToOne(org.jvnet.hyperjaxb3.hibernate.customizations.OneToOneType,
* java.lang.String, java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.OneToOne createOneToOne(
final OneToOneType coneToOne, final String propertyName,
final String clazz) {
final org.jvnet.hyperjaxb3.hibernate.mapping.OneToOne oneToOne = new org.jvnet.hyperjaxb3.hibernate.mapping.OneToOne();
// @name
oneToOne.setName(propertyName);
// @class
oneToOne.setClazz(clazz);
if (coneToOne != null) {
// @access
oneToOne.setAccess(coneToOne.getAccess());
// @cascade
oneToOne.setCascade(coneToOne.getCascade());
// @outer-join
if (coneToOne.isSetOuterJoin())
oneToOne.setOuterJoin(coneToOne.getOuterJoin().value());
// @fetch
if (coneToOne.isSetFetch())
oneToOne.setFetch(coneToOne.getFetch().value());
// @constrained
if (coneToOne.isSetConstrained())
oneToOne.setConstrained(coneToOne.getConstrained().value());
// @foreign-key
oneToOne.setForeignKey(coneToOne.getForeignKey());
// @property-ref
oneToOne.setPropertyRef(coneToOne.getPropertyRef());
// @lazy
oneToOne.setLazy(coneToOne.getLazy());
}
return oneToOne;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createManyToOne(org.jvnet.hyperjaxb3.hibernate.customizations.ManyToOneType,
* java.lang.String, java.lang.String, java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.ManyToOne createManyToOne(
final ManyToOneType cmanyToOne, final String propertyName,
final String defaultColumnName, final String clazz) {
final org.jvnet.hyperjaxb3.hibernate.mapping.ManyToOne manyToOne = new org.jvnet.hyperjaxb3.hibernate.mapping.ManyToOne();
if (cmanyToOne != null && cmanyToOne.getColumn() != null) {
manyToOne.getColumnOrFormula().add(
createColumn(cmanyToOne.getColumn(), defaultColumnName));
} else {
manyToOne.getColumnOrFormula().add(
createColumn(null, defaultColumnName));
}
// @name
manyToOne.setName(propertyName);
// @class
manyToOne.setClazz(clazz);
if (cmanyToOne != null) {
// @access
manyToOne.setAccess(cmanyToOne.getAccess());
// @update
if (cmanyToOne.isSetUpdate())
manyToOne.setUpdate(cmanyToOne.getUpdate().value());
// @insert
if (cmanyToOne.isSetInsert())
manyToOne.setInsert(cmanyToOne.getInsert().value());
// @optimistic-lock
if (cmanyToOne.isSetOptimisticLock())
manyToOne.setOptimisticLock(cmanyToOne.getOptimisticLock().value());
// @cascade
manyToOne.setCascade(cmanyToOne.getCascade());
// @outer-join
if (cmanyToOne.isSetOuterJoin())
manyToOne.setOuterJoin(cmanyToOne.getOuterJoin().value());
// @fetch
if (cmanyToOne.isSetFetch())
manyToOne.setFetch(cmanyToOne.getFetch().value());
// @foreign-key
manyToOne.setForeignKey(cmanyToOne.getForeignKey());
// @property-ref
manyToOne.setPropertyRef(cmanyToOne.getPropertyRef());
// @not-found
if (cmanyToOne.isSetNotFound())
manyToOne.setNotFound(cmanyToOne.getNotFound().value());
// @lazy
manyToOne.setLazy(cmanyToOne.getLazy());
}
return manyToOne;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createClass(org.jvnet.hyperjaxb3.hibernate.customizations.ClassType,
* java.lang.String, java.lang.String, java.lang.String,
* java.lang.String, org.jvnet.hyperjaxb3.hibernate.mapping.Id,
* org.jvnet.hyperjaxb3.hibernate.mapping.Discriminator,
* org.jvnet.hyperjaxb3.hibernate.mapping.Version, java.util.List)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.Clazz createClass(
final ClassType cclass,
final String className,
final String defaultTableName,
final String defaultDiscriminatorValue,
final String defaultCacheUsage,
final org.jvnet.hyperjaxb3.hibernate.mapping.Id id,
final org.jvnet.hyperjaxb3.hibernate.mapping.Discriminator discriminator,
final org.jvnet.hyperjaxb3.hibernate.mapping.Version version,
final List fieldMappings) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Clazz clazz = new org.jvnet.hyperjaxb3.hibernate.mapping.Clazz();
if (!(cclass == null || cclass.getTable() == null)) {
// @table
clazz.setTable(cclass.getTable().getName());
// @schema
clazz.setSchema(cclass.getTable().getSchema());
// @catalog
clazz.setCatalog(cclass.getTable().getCatalog());
} else {
// @table
clazz.setTable(defaultTableName);
}
// @name
clazz.setName(className);
// @proxy
clazz.setProxy(cclass.getProxy());
if (cclass.getDiscriminatorValue() != null) {
clazz.setDiscriminatorValue("[" + cclass.getDiscriminatorValue()
+ "]");
} else {
clazz.setDiscriminatorValue("[" + defaultDiscriminatorValue + "]");
}
// @lazy
if (cclass.isSetLazy())
clazz.setLazy(cclass.getLazy().value());
// @polymorphism
if (cclass.isSetPolymorphism())
clazz.setPolymorphism(cclass.getPolymorphism());
// @where
if (cclass.isSetWhere())
clazz.setWhere(cclass.getWhere());
// @persister
if (cclass.isSetPersister())
clazz.setPersister(cclass.getPersister());
// @dynamic-update
if (cclass.isSetDynamicUpdate())
clazz.setDynamicUpdate(cclass.getDynamicUpdate().value());
// @dynamic-insert
if (cclass.isSetDynamicInsert())
clazz.setDynamicInsert(cclass.getDynamicInsert().value());
// @batch-size
if (cclass.isSetBatchSize())
clazz.setBatchSize(cclass.getBatchSize());
// @select-before-update
if (cclass.isSetSelectBeforeUpdate())
clazz.setSelectBeforeUpdate(cclass.getSelectBeforeUpdate().value());
// @optimistic-lock
if (cclass.isSetOptimisticLock())
clazz.setOptimisticLock(cclass.getOptimisticLock());
// @check
if (cclass.isSetCheck())
clazz.setCheck(cclass.getCheck());
// cache
if (cclass.isSetCache()) {
final CacheType ccache = cclass.getCache();
final org.jvnet.hyperjaxb3.hibernate.mapping.Cache cache = createCache(
ccache, defaultCacheUsage);
clazz.setCache(cache);
}
clazz.getIdOrCompositeId().add(id);
if (discriminator != null)
clazz.setDiscriminator(discriminator);
if (version != null)
clazz.getVersionOrTimestamp().add(version);
clazz
.getPropertyOrManyToOneOrOneToOneOrComponentOrDynamicComponentOrPropertiesOrAnyOrMapOrSetOrListOrBagOrIdbagOrArrayOrPrimitiveArray()
.addAll(fieldMappings);
clazz.setDiscriminatorValue(defaultDiscriminatorValue);
return clazz;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createSubclass(org.jvnet.hyperjaxb3.hibernate.customizations.ClassType,
* java.lang.String, java.lang.String, java.lang.String,
* java.util.List, java.lang.String, java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.Subclass createSubclass(
final ClassType cclass, String className, String superClassName,
String defaultDiscriminatorValue, List fieldMappings,
String defaultTableName, String defaultIdentifierColumnName) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Subclass clazz = new org.jvnet.hyperjaxb3.hibernate.mapping.Subclass();
// @name
clazz.setName(className);
// @extends
clazz.setExtends(superClassName);
if (cclass.getDiscriminatorValue() != null) {
clazz.setDiscriminatorValue(cclass.getDiscriminatorValue());
} else {
clazz.setDiscriminatorValue(defaultDiscriminatorValue);
}
// @proxy
clazz.setProxy(cclass.getProxy());
// @lazy
if (cclass.isSetLazy())
clazz.setLazy(cclass.getLazy().value());
// @persister
clazz.setPersister(cclass.getPersister());
// @dynamic-update
if (cclass.isSetDynamicUpdate())
clazz.setDynamicUpdate(cclass.getDynamicUpdate().value());
// @dynamic-insert
if (cclass.isSetDynamicInsert())
clazz.setDynamicInsert(cclass.getDynamicInsert().value());
// @batch-size
clazz.setBatchSize(cclass.getBatchSize());
// @select-before-update
if (cclass.isSetSelectBeforeUpdate())
clazz.setSelectBeforeUpdate(cclass.getSelectBeforeUpdate().value());
// if (cclass.getTable() == null) {
// cclass.setTable(new TableTypeImpl());
// cclass.getTable().setName(
// principalStrategy.getTableStrategy().getTableName(
// classContext));
// }
// clazz.set
final List classContnt = new ArrayList();
final List joinContent = new ArrayList();
for (final Iterator iterator = fieldMappings.iterator(); iterator
.hasNext();) {
final Object mapping = iterator.next();
if (mapping instanceof org.jvnet.hyperjaxb3.hibernate.mapping.Property
|| mapping instanceof org.jvnet.hyperjaxb3.hibernate.mapping.ManyToOne
|| mapping instanceof org.jvnet.hyperjaxb3.hibernate.mapping.Component
|| mapping instanceof org.jvnet.hyperjaxb3.hibernate.mapping.DynamicComponent
|| mapping instanceof org.jvnet.hyperjaxb3.hibernate.mapping.Any) {
joinContent.add(mapping);
} else {
classContnt.add(mapping);
}
}
clazz
.getPropertyOrManyToOneOrOneToOneOrComponentOrDynamicComponentOrAnyOrMapOrSetOrListOrBagOrIdbagOrArrayOrPrimitiveArray()
.addAll(classContnt);
if (!joinContent.isEmpty()) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Join join = createJoin(
cclass, joinContent, defaultTableName,
defaultIdentifierColumnName);
clazz.getJoin().add(join);
}
return clazz;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createJoin(org.jvnet.hyperjaxb3.hibernate.customizations.ClassType,
* java.util.List, java.lang.String, java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.Join createJoin(
final ClassType cclass, final List content,
final String defaultTableName, final String defaultKeyColumnName) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Join join = new org.jvnet.hyperjaxb3.hibernate.mapping.Join();
if (!(cclass == null || cclass.getTable() == null)) {
// @table
join.setTable(cclass.getTable().getName());
// @schema
join.setSchema(cclass.getTable().getSchema());
// @catalog
join.setCatalog(cclass.getTable().getCatalog());
} else {
// @table
join.setTable(defaultTableName);
}
final org.jvnet.hyperjaxb3.hibernate.mapping.Key key = createKey(cclass
.getKey(), defaultKeyColumnName);
join.setKey(key);
join.getPropertyOrManyToOneOrComponentOrDynamicComponentOrAny().addAll(
content);
return join;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createGenerator(org.jvnet.hyperjaxb3.hibernate.customizations.GeneratorType,
* java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.Generator createGenerator(
final GeneratorType cgenerator, final String defaultGeneratorClass) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Generator generator = new org.jvnet.hyperjaxb3.hibernate.mapping.Generator();
if (cgenerator != null) {
if (cgenerator.getGeneratorClass() != null) {
generator.setClazz(cgenerator.getGeneratorClass());
} else {
generator.setClazz(defaultGeneratorClass);
}
if (cgenerator.getParam() != null) {
for (Iterator iterator = cgenerator.getParam().iterator(); iterator
.hasNext();) {
final ParamType cparam = (ParamType) iterator.next();
final org.jvnet.hyperjaxb3.hibernate.mapping.Param param = new org.jvnet.hyperjaxb3.hibernate.mapping.Param();
param.setName(cparam.getName());
param.setvalue(cparam.getValue());
generator.getParam().add(param);
}
}
} else {
generator.setClazz(defaultGeneratorClass);
}
return generator;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createCollectionId(org.jvnet.hyperjaxb3.hibernate.customizations.CollectionIdType,
* java.lang.String, java.lang.String, java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.CollectionId createCollectionId(
final CollectionIdType cid, final String defaultIdType,
final String defaultColumnName, final String defaultGeneratorClass) {
final org.jvnet.hyperjaxb3.hibernate.mapping.CollectionId id = new org.jvnet.hyperjaxb3.hibernate.mapping.CollectionId();
if (cid.getColumn() != null && !cid.getColumn().isEmpty()) {
for (final Iterator iterator = cid.getColumn().iterator(); iterator
.hasNext();) {
final ColumnType ccolumn = (ColumnType) iterator.next();
final org.jvnet.hyperjaxb3.hibernate.mapping.Column column = createColumn(
ccolumn, defaultColumnName);
// TODO current bug in Hibernate
id.setColumnName(column.getName());
// id.getColumn().add(column);
}
} else {
final org.jvnet.hyperjaxb3.hibernate.mapping.Column column = createColumn(
null, defaultColumnName);
// TODO current bug in Hibernate
id.setColumnName(column.getName());
// id.getColumn().add(column);
}
final GeneratorType cgenerator;
cgenerator = cid.getGenerator();
id.setGenerator(createGenerator(cgenerator, defaultGeneratorClass));
// @type
if (cid.getType() != null) {
id.setType(cid.getType().getName());
} else {
id.setType(defaultIdType);
}
return id;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createId(org.jvnet.hyperjaxb3.hibernate.customizations.IdType,
* java.lang.String, java.lang.String, java.lang.String,
* java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.Id createId(final IdType cid,
final String fieldPropertyName, final String idType,
final String defaultGeneratorClass,
final String defaultAccessorClassName) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Id id = new org.jvnet.hyperjaxb3.hibernate.mapping.Id();
if (cid != null && cid.getColumn() != null
&& !cid.getColumn().isEmpty()) {
for (final Iterator iterator = cid.getColumn().iterator(); iterator
.hasNext();) {
final ColumnType ccolumn = (ColumnType) iterator.next();
final org.jvnet.hyperjaxb3.hibernate.mapping.Column column = createColumn(
ccolumn, fieldPropertyName);
id.getColumn().add(column);
}
}
final GeneratorType cgenerator;
if (cid != null) {
cgenerator = cid.getGenerator();
} else {
cgenerator = null;
}
id.setGenerator(createGenerator(cgenerator, defaultGeneratorClass));
// @name
id.setName(fieldPropertyName);
// @type
if (cid != null && cid.getType() != null) {
id.setTypeName(cid.getType().getName());
} else {
id.setTypeName(idType);
}
if (cid != null && cid.getAccess() != null) {
id.setAccess(cid.getAccess());
} else {
id.setAccess(defaultAccessorClassName);
}
if (cid != null) {
id.setUnsavedValue(cid.getUnsavedValue());
}
return id;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createVersion(org.jvnet.hyperjaxb3.hibernate.customizations.VersionType,
* java.lang.String, java.lang.String, java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.Version createVersion(
final VersionType cversion, final String fieldPropertyName,
final String fieldType, final String defaultAccessorClassName) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Version version = new org.jvnet.hyperjaxb3.hibernate.mapping.Version();
version.setName(fieldPropertyName);
if (cversion != null && cversion.getColumn() != null) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Column column = createColumn(
cversion.getColumn(), fieldPropertyName);
version.setColumnName(column.getName());
}
if (cversion != null && cversion.getType() != null) {
version.setType(cversion.getType().getName());
} else {
version.setType(fieldType);
}
if (cversion != null && cversion.isSetAccess()) {
version.setAccess(cversion.getAccess());
} else {
version.setAccess(defaultAccessorClassName);
}
if (cversion != null) {
version.setUnsavedValue(cversion.getUnsavedValue());
}
return version;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createDiscriminator(org.jvnet.hyperjaxb3.hibernate.customizations.DiscriminatorType,
* java.lang.String, java.lang.String)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.Discriminator createDiscriminator(
final DiscriminatorType cdiscriminator, final String defaultName,
final String defaultType) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Discriminator discriminator = new org.jvnet.hyperjaxb3.hibernate.mapping.Discriminator();
if (cdiscriminator != null) {
if (cdiscriminator.isSetForce())
discriminator.setForce(cdiscriminator.getForce().value());
if (cdiscriminator.isSetInsert())
discriminator.setInsert(cdiscriminator.getInsert().value());
}
if (cdiscriminator != null && cdiscriminator.isSetColumn()) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Column column = createColumn(
cdiscriminator.getColumn(), defaultName);
discriminator.getColumnOrFormula().add(column);
} else if (cdiscriminator != null && cdiscriminator.isSetNoColumn()) {
// Don't generate any column
} else {
final org.jvnet.hyperjaxb3.hibernate.mapping.Column column = createColumn(
null, defaultName);
discriminator.getColumnOrFormula().add(column);
}
if (cdiscriminator != null && cdiscriminator.getType() != null) {
discriminator.setType(cdiscriminator.getType());
} else {
discriminator.setType(defaultType);
}
if (cdiscriminator != null && cdiscriminator.isSetFormula()) {
discriminator.setFormula(cdiscriminator.getFormula());
}
return discriminator;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createComponent(org.jvnet.hyperjaxb3.hibernate.customizations.ComponentType,
* java.lang.String, java.lang.String, java.util.List)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.Component createComponent(
ComponentType ccomponent, String name, String clazz,
List fieldMappings) {
final org.jvnet.hyperjaxb3.hibernate.mapping.Component component = new org.jvnet.hyperjaxb3.hibernate.mapping.Component();
component.setName(name);
component.setClazz(clazz);
if (ccomponent != null) {
if (ccomponent.isSetAccess())
component.setAccess(ccomponent.getAccess());
if (ccomponent.isSetUnique())
component.setUnique(ccomponent.getUnique().value());
if (ccomponent.isSetUpdate())
component.setUpdate(ccomponent.getUpdate().value());
if (ccomponent.isSetInsert())
component.setInsert(ccomponent.getInsert().value());
if (ccomponent.isSetLazy())
component.setLazy(ccomponent.getLazy().value());
if (ccomponent.isSetOptimisticLock())
component.setOptimisticLock(ccomponent.getOptimisticLock()
.value());
}
component
.getPropertyOrManyToOneOrOneToOneOrComponentOrDynamicComponentOrAnyOrMapOrSetOrListOrBagOrArrayOrPrimitiveArray()
.addAll(fieldMappings);
return component;
}
/*
* (non-Javadoc)
*
* @see org.jvnet.hyperjaxb3.hibernate.customizations.impl.MappingCreatingStrategy#createCompositeElement(org.jvnet.hyperjaxb3.hibernate.customizations.CompositeElementType,
* java.lang.String, java.util.List)
*/
public org.jvnet.hyperjaxb3.hibernate.mapping.CompositeElement createCompositeElement(
CompositeElementType ccompositeElement, String clazz,
List fieldMappings) {
final org.jvnet.hyperjaxb3.hibernate.mapping.CompositeElement component = new org.jvnet.hyperjaxb3.hibernate.mapping.CompositeElement();
component.setClazz(clazz);
component.getPropertyOrManyToOneOrAnyOrNestedCompositeElement().addAll(
fieldMappings);
return component;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy