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

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