HibernateAssociationEndLogic.java
// license-header java merge-point
//
// Attention: generated code (by MetafacadeLogic.vsl) - do not modify!
//
package org.andromda.cartridges.hibernate.metafacades;
import java.util.Collection;
import org.andromda.core.common.Introspector;
import org.andromda.core.metafacade.MetafacadeBase;
import org.andromda.core.metafacade.MetafacadeFactory;
import org.andromda.core.metafacade.ModelValidationMessage;
import org.andromda.metafacades.uml.AssociationEndFacade;
import org.andromda.metafacades.uml.AssociationFacade;
import org.andromda.metafacades.uml.ClassifierFacade;
import org.andromda.metafacades.uml.ConstraintFacade;
import org.andromda.metafacades.uml.DependencyFacade;
import org.andromda.metafacades.uml.EntityAssociationEnd;
import org.andromda.metafacades.uml.ModelElementFacade;
import org.andromda.metafacades.uml.ModelFacade;
import org.andromda.metafacades.uml.PackageFacade;
import org.andromda.metafacades.uml.StateMachineFacade;
import org.andromda.metafacades.uml.StereotypeFacade;
import org.andromda.metafacades.uml.TaggedValueFacade;
import org.andromda.metafacades.uml.TemplateParameterFacade;
import org.andromda.metafacades.uml.TypeMappings;
import org.andromda.translation.ocl.validation.OCLCollections;
import org.andromda.translation.ocl.validation.OCLIntrospector;
import org.andromda.translation.ocl.validation.OCLResultEnsurer;
import org.apache.log4j.Logger;
/**
* Represents an association end between Hibernate entities.
* MetafacadeLogic for HibernateAssociationEnd
*
* @see HibernateAssociationEnd
*/
public abstract class HibernateAssociationEndLogic
extends MetafacadeBase
implements HibernateAssociationEnd
{
/**
* The underlying UML object
* @see Object
*/
protected Object metaObject;
/** Create Metafacade implementation instance using the MetafacadeFactory from the context
* @param metaObjectIn
* @param context
*/
protected HibernateAssociationEndLogic(Object metaObjectIn, String context)
{
super(metaObjectIn, getContext(context));
this.superEntityAssociationEnd =
(EntityAssociationEnd)
MetafacadeFactory.getInstance().createFacadeImpl(
"org.andromda.metafacades.uml.EntityAssociationEnd",
metaObjectIn,
getContext(context));
this.metaObject = metaObjectIn;
}
/**
* The logger instance.
*/
private static final Logger logger = Logger.getLogger(HibernateAssociationEndLogic.class);
/**
* Gets the context for this metafacade logic instance.
* @param context String. Set to HibernateAssociationEnd if null
* @return context String
*/
private static String getContext(String context)
{
if (context == null)
{
context = "org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd";
}
return context;
}
private EntityAssociationEnd superEntityAssociationEnd;
private boolean superEntityAssociationEndInitialized = false;
/**
* Gets the EntityAssociationEnd parent instance.
* @return this.superEntityAssociationEnd EntityAssociationEnd
*/
private EntityAssociationEnd getSuperEntityAssociationEnd()
{
if (!this.superEntityAssociationEndInitialized)
{
((MetafacadeBase)this.superEntityAssociationEnd).setMetafacadeContext(this.getMetafacadeContext());
this.superEntityAssociationEndInitialized = true;
}
return this.superEntityAssociationEnd;
}
/** Reset context only for non-root metafacades
* @param context
* @see MetafacadeBase#resetMetafacadeContext(String context)
*/
@Override
public void resetMetafacadeContext(String context)
{
if (!this.contextRoot) // reset context only for non-root metafacades
{
context = getContext(context); // to have same value as in original constructor call
setMetafacadeContext (context);
if (this.superEntityAssociationEndInitialized)
{
((MetafacadeBase)this.superEntityAssociationEnd).resetMetafacadeContext(context);
}
}
}
/**
* @return boolean true always
* @see HibernateAssociationEnd
*/
public boolean isHibernateAssociationEndMetaType()
{
return true;
}
// --------------- attributes ---------------------
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#isLazy()
* @return boolean
*/
protected abstract boolean handleIsLazy();
private boolean __lazy1a;
private boolean __lazy1aSet = false;
/**
* TODO: Model Documentation for
* org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd.lazy
* @return (boolean)handleIsLazy()
*/
public final boolean isLazy()
{
boolean lazy1a = this.__lazy1a;
if (!this.__lazy1aSet)
{
// lazy has no pre constraints
lazy1a = handleIsLazy();
// lazy has no post constraints
this.__lazy1a = lazy1a;
if (isMetafacadePropertyCachingEnabled())
{
this.__lazy1aSet = true;
}
}
return lazy1a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#getOuterJoin()
* @return String
*/
protected abstract String handleGetOuterJoin();
private String __outerJoin2a;
private boolean __outerJoin2aSet = false;
/**
* This value will determine how Hibernate manages the asocciation on a many to one and one to
* one relation. It will tell hibernate how to use outerJoins. Values: auto,false,true
* @return (String)handleGetOuterJoin()
*/
public final String getOuterJoin()
{
String outerJoin2a = this.__outerJoin2a;
if (!this.__outerJoin2aSet)
{
// outerJoin has no pre constraints
outerJoin2a = handleGetOuterJoin();
// outerJoin has no post constraints
this.__outerJoin2a = outerJoin2a;
if (isMetafacadePropertyCachingEnabled())
{
this.__outerJoin2aSet = true;
}
}
return outerJoin2a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#isHibernateInverse()
* @return boolean
*/
protected abstract boolean handleIsHibernateInverse();
private boolean __hibernateInverse3a;
private boolean __hibernateInverse3aSet = false;
/**
* Whether or not the hibernate inverse attribute is true or false.
* @return (boolean)handleIsHibernateInverse()
*/
public final boolean isHibernateInverse()
{
boolean hibernateInverse3a = this.__hibernateInverse3a;
if (!this.__hibernateInverse3aSet)
{
// hibernateInverse has no pre constraints
hibernateInverse3a = handleIsHibernateInverse();
// hibernateInverse has no post constraints
this.__hibernateInverse3a = hibernateInverse3a;
if (isMetafacadePropertyCachingEnabled())
{
this.__hibernateInverse3aSet = true;
}
}
return hibernateInverse3a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#getHibernateCascade()
* @return String
*/
protected abstract String handleGetHibernateCascade();
private String __hibernateCascade4a;
private boolean __hibernateCascade4aSet = false;
/**
* Stores the hibernate cascade attribute of this association end.
* @return (String)handleGetHibernateCascade()
*/
public final String getHibernateCascade()
{
String hibernateCascade4a = this.__hibernateCascade4a;
if (!this.__hibernateCascade4aSet)
{
// hibernateCascade has no pre constraints
hibernateCascade4a = handleGetHibernateCascade();
// hibernateCascade has no post constraints
this.__hibernateCascade4a = hibernateCascade4a;
if (isMetafacadePropertyCachingEnabled())
{
this.__hibernateCascade4aSet = true;
}
}
return hibernateCascade4a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#isOne2OnePrimary()
* @return boolean
*/
protected abstract boolean handleIsOne2OnePrimary();
private boolean __one2OnePrimary5a;
private boolean __one2OnePrimary5aSet = false;
/**
* Returns whether or not a one-to-one mapping should be the "primary" mapping for the one2one.
* It returns a true if this one2one end is an aggregation or a composite. If using the foriegn
* key association approach, this end will get the foreign key column definition. If using the
* primary key association approach, this end will get the independent primary key and the other
* end will get the dependent primary key (i.e. its primary key will be a foreign key to this
* table).
* @return (boolean)handleIsOne2OnePrimary()
*/
public final boolean isOne2OnePrimary()
{
boolean one2OnePrimary5a = this.__one2OnePrimary5a;
if (!this.__one2OnePrimary5aSet)
{
// one2OnePrimary has no pre constraints
one2OnePrimary5a = handleIsOne2OnePrimary();
// one2OnePrimary has no post constraints
this.__one2OnePrimary5a = one2OnePrimary5a;
if (isMetafacadePropertyCachingEnabled())
{
this.__one2OnePrimary5aSet = true;
}
}
return one2OnePrimary5a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#getCollectionType()
* @return String
*/
protected abstract String handleGetCollectionType();
private String __collectionType6a;
private boolean __collectionType6aSet = false;
/**
* TODO: Model Documentation for
* org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd.collectionType
* @return (String)handleGetCollectionType()
*/
public final String getCollectionType()
{
String collectionType6a = this.__collectionType6a;
if (!this.__collectionType6aSet)
{
// collectionType has no pre constraints
collectionType6a = handleGetCollectionType();
// collectionType has no post constraints
this.__collectionType6a = collectionType6a;
if (isMetafacadePropertyCachingEnabled())
{
this.__collectionType6aSet = true;
}
}
return collectionType6a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#getSortType()
* @return String
*/
protected abstract String handleGetSortType();
private String __sortType7a;
private boolean __sortType7aSet = false;
/**
* TODO: Model Documentation for
* org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd.sortType
* @return (String)handleGetSortType()
*/
public final String getSortType()
{
String sortType7a = this.__sortType7a;
if (!this.__sortType7aSet)
{
// sortType has no pre constraints
sortType7a = handleGetSortType();
// sortType has no post constraints
this.__sortType7a = sortType7a;
if (isMetafacadePropertyCachingEnabled())
{
this.__sortType7aSet = true;
}
}
return sortType7a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#getOrderByColumns()
* @return String
*/
protected abstract String handleGetOrderByColumns();
private String __orderByColumns8a;
private boolean __orderByColumns8aSet = false;
/**
* TODO: Model Documentation for
* org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd.orderByColumns
* @return (String)handleGetOrderByColumns()
*/
public final String getOrderByColumns()
{
String orderByColumns8a = this.__orderByColumns8a;
if (!this.__orderByColumns8aSet)
{
// orderByColumns has no pre constraints
orderByColumns8a = handleGetOrderByColumns();
// orderByColumns has no post constraints
this.__orderByColumns8a = orderByColumns8a;
if (isMetafacadePropertyCachingEnabled())
{
this.__orderByColumns8aSet = true;
}
}
return orderByColumns8a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#getWhereClause()
* @return String
*/
protected abstract String handleGetWhereClause();
private String __whereClause9a;
private boolean __whereClause9aSet = false;
/**
* TODO: Model Documentation for
* org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd.whereClause
* @return (String)handleGetWhereClause()
*/
public final String getWhereClause()
{
String whereClause9a = this.__whereClause9a;
if (!this.__whereClause9aSet)
{
// whereClause has no pre constraints
whereClause9a = handleGetWhereClause();
// whereClause has no post constraints
this.__whereClause9a = whereClause9a;
if (isMetafacadePropertyCachingEnabled())
{
this.__whereClause9aSet = true;
}
}
return whereClause9a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#isIndexedCollection()
* @return boolean
*/
protected abstract boolean handleIsIndexedCollection();
private boolean __indexedCollection10a;
private boolean __indexedCollection10aSet = false;
/**
* TODO: Model Documentation for
* org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd.indexedCollection
* @return (boolean)handleIsIndexedCollection()
*/
public final boolean isIndexedCollection()
{
boolean indexedCollection10a = this.__indexedCollection10a;
if (!this.__indexedCollection10aSet)
{
// indexedCollection has no pre constraints
indexedCollection10a = handleIsIndexedCollection();
// indexedCollection has no post constraints
this.__indexedCollection10a = indexedCollection10a;
if (isMetafacadePropertyCachingEnabled())
{
this.__indexedCollection10aSet = true;
}
}
return indexedCollection10a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#getCollectionIndexName()
* @return String
*/
protected abstract String handleGetCollectionIndexName();
private String __collectionIndexName11a;
private boolean __collectionIndexName11aSet = false;
/**
* TODO: Model Documentation for
* org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd.collectionIndexName
* @return (String)handleGetCollectionIndexName()
*/
public final String getCollectionIndexName()
{
String collectionIndexName11a = this.__collectionIndexName11a;
if (!this.__collectionIndexName11aSet)
{
// collectionIndexName has no pre constraints
collectionIndexName11a = handleGetCollectionIndexName();
// collectionIndexName has no post constraints
this.__collectionIndexName11a = collectionIndexName11a;
if (isMetafacadePropertyCachingEnabled())
{
this.__collectionIndexName11aSet = true;
}
}
return collectionIndexName11a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#isMap()
* @return boolean
*/
protected abstract boolean handleIsMap();
private boolean __map12a;
private boolean __map12aSet = false;
/**
* TODO: Model Documentation for
* org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd.map
* @return (boolean)handleIsMap()
*/
public final boolean isMap()
{
boolean map12a = this.__map12a;
if (!this.__map12aSet)
{
// map has no pre constraints
map12a = handleIsMap();
// map has no post constraints
this.__map12a = map12a;
if (isMetafacadePropertyCachingEnabled())
{
this.__map12aSet = true;
}
}
return map12a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#isList()
* @return boolean
*/
protected abstract boolean handleIsList();
private boolean __list13a;
private boolean __list13aSet = false;
/**
* TODO: Model Documentation for
* org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd.list
* @return (boolean)handleIsList()
*/
public final boolean isList()
{
boolean list13a = this.__list13a;
if (!this.__list13aSet)
{
// list has no pre constraints
list13a = handleIsList();
// list has no post constraints
this.__list13a = list13a;
if (isMetafacadePropertyCachingEnabled())
{
this.__list13aSet = true;
}
}
return list13a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#isSet()
* @return boolean
*/
protected abstract boolean handleIsSet();
private boolean __set14a;
private boolean __set14aSet = false;
/**
* TODO: Model Documentation for
* org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd.set
* @return (boolean)handleIsSet()
*/
public final boolean isSet()
{
boolean set14a = this.__set14a;
if (!this.__set14aSet)
{
// set has no pre constraints
set14a = handleIsSet();
// set has no post constraints
this.__set14a = set14a;
if (isMetafacadePropertyCachingEnabled())
{
this.__set14aSet = true;
}
}
return set14a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#isBag()
* @return boolean
*/
protected abstract boolean handleIsBag();
private boolean __bag15a;
private boolean __bag15aSet = false;
/**
* TODO: Model Documentation for
* org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd.bag
* @return (boolean)handleIsBag()
*/
public final boolean isBag()
{
boolean bag15a = this.__bag15a;
if (!this.__bag15aSet)
{
// bag has no pre constraints
bag15a = handleIsBag();
// bag has no post constraints
this.__bag15a = bag15a;
if (isMetafacadePropertyCachingEnabled())
{
this.__bag15aSet = true;
}
}
return bag15a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#getCollectionIndexType()
* @return String
*/
protected abstract String handleGetCollectionIndexType();
private String __collectionIndexType16a;
private boolean __collectionIndexType16aSet = false;
/**
* this will only apply for Maps, it will return the type of the attribute specified on the
* CollectionIndexName tagged value
* @return (String)handleGetCollectionIndexType()
*/
public final String getCollectionIndexType()
{
String collectionIndexType16a = this.__collectionIndexType16a;
if (!this.__collectionIndexType16aSet)
{
// collectionIndexType has no pre constraints
collectionIndexType16a = handleGetCollectionIndexType();
// collectionIndexType has no post constraints
this.__collectionIndexType16a = collectionIndexType16a;
if (isMetafacadePropertyCachingEnabled())
{
this.__collectionIndexType16aSet = true;
}
}
return collectionIndexType16a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#getCollectionTypeImplementation()
* @return String
*/
protected abstract String handleGetCollectionTypeImplementation();
private String __collectionTypeImplementation17a;
private boolean __collectionTypeImplementation17aSet = false;
/**
* The actual implementation of the collection type.
* @return (String)handleGetCollectionTypeImplementation()
*/
public final String getCollectionTypeImplementation()
{
String collectionTypeImplementation17a = this.__collectionTypeImplementation17a;
if (!this.__collectionTypeImplementation17aSet)
{
// collectionTypeImplementation has no pre constraints
collectionTypeImplementation17a = handleGetCollectionTypeImplementation();
// collectionTypeImplementation has no post constraints
this.__collectionTypeImplementation17a = collectionTypeImplementation17a;
if (isMetafacadePropertyCachingEnabled())
{
this.__collectionTypeImplementation17aSet = true;
}
}
return collectionTypeImplementation17a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#getHibernateAggregationCascade()
* @return String
*/
protected abstract String handleGetHibernateAggregationCascade();
private String __hibernateAggregationCascade18a;
private boolean __hibernateAggregationCascade18aSet = false;
/**
* Stores the value indicating how a UML aggregation should be interpreted as cascade.
* @return (String)handleGetHibernateAggregationCascade()
*/
public final String getHibernateAggregationCascade()
{
String hibernateAggregationCascade18a = this.__hibernateAggregationCascade18a;
if (!this.__hibernateAggregationCascade18aSet)
{
// hibernateAggregationCascade has no pre constraints
hibernateAggregationCascade18a = handleGetHibernateAggregationCascade();
// hibernateAggregationCascade has no post constraints
this.__hibernateAggregationCascade18a = hibernateAggregationCascade18a;
if (isMetafacadePropertyCachingEnabled())
{
this.__hibernateAggregationCascade18aSet = true;
}
}
return hibernateAggregationCascade18a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#getHibernateCompositionCascade()
* @return String
*/
protected abstract String handleGetHibernateCompositionCascade();
private String __hibernateCompositionCascade19a;
private boolean __hibernateCompositionCascade19aSet = false;
/**
* Stores the value indicating how a UML composition should be interpreted as cascade.
* @return (String)handleGetHibernateCompositionCascade()
*/
public final String getHibernateCompositionCascade()
{
String hibernateCompositionCascade19a = this.__hibernateCompositionCascade19a;
if (!this.__hibernateCompositionCascade19aSet)
{
// hibernateCompositionCascade has no pre constraints
hibernateCompositionCascade19a = handleGetHibernateCompositionCascade();
// hibernateCompositionCascade has no post constraints
this.__hibernateCompositionCascade19a = hibernateCompositionCascade19a;
if (isMetafacadePropertyCachingEnabled())
{
this.__hibernateCompositionCascade19aSet = true;
}
}
return hibernateCompositionCascade19a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#isBidirectionalOrderedListChild()
* @return boolean
*/
protected abstract boolean handleIsBidirectionalOrderedListChild();
private boolean __bidirectionalOrderedListChild20a;
private boolean __bidirectionalOrderedListChild20aSet = false;
/**
* TODO: Model Documentation for
* org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd.bidirectionalOrderedListChild
* @return (boolean)handleIsBidirectionalOrderedListChild()
*/
public final boolean isBidirectionalOrderedListChild()
{
boolean bidirectionalOrderedListChild20a = this.__bidirectionalOrderedListChild20a;
if (!this.__bidirectionalOrderedListChild20aSet)
{
// bidirectionalOrderedListChild has no pre constraints
bidirectionalOrderedListChild20a = handleIsBidirectionalOrderedListChild();
// bidirectionalOrderedListChild has no post constraints
this.__bidirectionalOrderedListChild20a = bidirectionalOrderedListChild20a;
if (isMetafacadePropertyCachingEnabled())
{
this.__bidirectionalOrderedListChild20aSet = true;
}
}
return bidirectionalOrderedListChild20a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#isBidirectionalOrderedListParent()
* @return boolean
*/
protected abstract boolean handleIsBidirectionalOrderedListParent();
private boolean __bidirectionalOrderedListParent21a;
private boolean __bidirectionalOrderedListParent21aSet = false;
/**
* TODO: Model Documentation for
* org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd.bidirectionalOrderedListParent
* @return (boolean)handleIsBidirectionalOrderedListParent()
*/
public final boolean isBidirectionalOrderedListParent()
{
boolean bidirectionalOrderedListParent21a = this.__bidirectionalOrderedListParent21a;
if (!this.__bidirectionalOrderedListParent21aSet)
{
// bidirectionalOrderedListParent has no pre constraints
bidirectionalOrderedListParent21a = handleIsBidirectionalOrderedListParent();
// bidirectionalOrderedListParent has no post constraints
this.__bidirectionalOrderedListParent21a = bidirectionalOrderedListParent21a;
if (isMetafacadePropertyCachingEnabled())
{
this.__bidirectionalOrderedListParent21aSet = true;
}
}
return bidirectionalOrderedListParent21a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#getEmbedXML()
* @return String
*/
protected abstract String handleGetEmbedXML();
private String __embedXML22a;
private boolean __embedXML22aSet = false;
/**
* TODO: Model Documentation for
* org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd.embedXML
* @return (String)handleGetEmbedXML()
*/
public final String getEmbedXML()
{
String embedXML22a = this.__embedXML22a;
if (!this.__embedXML22aSet)
{
// embedXML has no pre constraints
embedXML22a = handleGetEmbedXML();
// embedXML has no post constraints
this.__embedXML22a = embedXML22a;
if (isMetafacadePropertyCachingEnabled())
{
this.__embedXML22aSet = true;
}
}
return embedXML22a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#getXmlTagName()
* @return String
*/
protected abstract String handleGetXmlTagName();
private String __xmlTagName23a;
private boolean __xmlTagName23aSet = false;
/**
* TODO: Model Documentation for
* org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd.xmlTagName
* @return (String)handleGetXmlTagName()
*/
public final String getXmlTagName()
{
String xmlTagName23a = this.__xmlTagName23a;
if (!this.__xmlTagName23aSet)
{
// xmlTagName has no pre constraints
xmlTagName23a = handleGetXmlTagName();
// xmlTagName has no post constraints
this.__xmlTagName23a = xmlTagName23a;
if (isMetafacadePropertyCachingEnabled())
{
this.__xmlTagName23aSet = true;
}
}
return xmlTagName23a;
}
/**
* @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd#isOwning()
* @return boolean
*/
protected abstract boolean handleIsOwning();
private boolean __owning24a;
private boolean __owning24aSet = false;
/**
* TODO: Model Documentation for
* org.andromda.cartridges.hibernate.metafacades.HibernateAssociationEnd.owning
* @return (boolean)handleIsOwning()
*/
public final boolean isOwning()
{
boolean owning24a = this.__owning24a;
if (!this.__owning24aSet)
{
// owning has no pre constraints
owning24a = handleIsOwning();
// owning has no post constraints
this.__owning24a = owning24a;
if (isMetafacadePropertyCachingEnabled())
{
this.__owning24aSet = true;
}
}
return owning24a;
}
/**
* @return true
* @see EntityAssociationEnd
*/
public boolean isEntityAssociationEndMetaType()
{
return true;
}
/**
* @return true
* @see AssociationEndFacade
*/
public boolean isAssociationEndFacadeMetaType()
{
return true;
}
/**
* @return true
* @see ModelElementFacade
*/
public boolean isModelElementFacadeMetaType()
{
return true;
}
// ----------- delegates to EntityAssociationEnd ------------
/**
* A name suitable for use when adding new elements to this association end in programming code.
* @see AssociationEndFacade#getAdderName()
*/
public String getAdderName()
{
return this.getSuperEntityAssociationEnd().getAdderName();
}
/**
* Returns the value of the 'Aggregation' attribute (none, shared, composite). The default value
* is "none". The literals are from the enumeration org.eclipse.uml2.uml.AggregationKind.
* Specifies the kind of aggregation that applies to the Property.
* @see AssociationEndFacade#getAggregationKind()
*/
public String getAggregationKind()
{
return this.getSuperEntityAssociationEnd().getAggregationKind();
}
/**
* The association owning this association end.
* @see AssociationEndFacade#getAssociation()
*/
public AssociationFacade getAssociation()
{
return this.getSuperEntityAssociationEnd().getAssociation();
}
/**
* UML2: Returns the value of the 'Default' attribute. Specifies a String that represents a
* value to be used when no argument is supplied for the Property. A String that is evaluated to
* give a default value for the Property when an object of the owning Classifier is
* instantiated. Can be something like: new ValueObject(values);
* @see AssociationEndFacade#getDefault()
*/
public String getDefault()
{
return this.getSuperEntityAssociationEnd().getDefault();
}
/**
* A name suitable for use when accessing this association end in programming code.
* @see AssociationEndFacade#getGetterName()
*/
public String getGetterName()
{
return this.getSuperEntityAssociationEnd().getGetterName();
}
/**
* The name of the type that is returned on the accessor and mutator operations, determined in
* part by the multiplicity.
* @see AssociationEndFacade#getGetterSetterTypeName()
*/
public String getGetterSetterTypeName()
{
return this.getSuperEntityAssociationEnd().getGetterSetterTypeName();
}
/**
* the lower value for the multiplicity
* -only applicable for UML2
* @see AssociationEndFacade#getLower()
*/
public int getLower()
{
return this.getSuperEntityAssociationEnd().getLower();
}
/**
* The other association end owned by this end's association.
* @see AssociationEndFacade#getOtherEnd()
*/
public AssociationEndFacade getOtherEnd()
{
return this.getSuperEntityAssociationEnd().getOtherEnd();
}
/**
* A name suitable for use when removing element from this association end in programming code.
* @see AssociationEndFacade#getRemoverName()
*/
public String getRemoverName()
{
return this.getSuperEntityAssociationEnd().getRemoverName();
}
/**
* A name suitable for use when accessing this association end in programming code.
* @see AssociationEndFacade#getSetterName()
*/
public String getSetterName()
{
return this.getSuperEntityAssociationEnd().getSetterName();
}
/**
* The classifier attached to this association end.
* @see AssociationEndFacade#getType()
*/
public ClassifierFacade getType()
{
return this.getSuperEntityAssociationEnd().getType();
}
/**
* the upper value for the multiplicity (will be -1 for *)
* -only applicable for UML2
* @see AssociationEndFacade#getUpper()
*/
public int getUpper()
{
return this.getSuperEntityAssociationEnd().getUpper();
}
/**
* True if this association end represents an aggregation relationship.
* @see AssociationEndFacade#isAggregation()
*/
public boolean isAggregation()
{
return this.getSuperEntityAssociationEnd().isAggregation();
}
/**
* Is true if update of one side of the association should also update the other side. false if
* not.
* @see AssociationEndFacade#isBidirectional()
*/
public boolean isBidirectional()
{
return this.getSuperEntityAssociationEnd().isBidirectional();
}
/**
* Returns whether or not (true/false) this association end is the child end of the assocation
* (i.e. the other end's aggregation is composition).
* @see AssociationEndFacade#isChild()
*/
public boolean isChild()
{
return this.getSuperEntityAssociationEnd().isChild();
}
/**
* True if this association end represents a composition relationship.
* @see AssociationEndFacade#isComposition()
*/
public boolean isComposition()
{
return this.getSuperEntityAssociationEnd().isComposition();
}
/**
* If the association end is derived (its value is computed). UML2 only. UML14 always returns
* false. Default=false.
* @see AssociationEndFacade#isDerived()
*/
public boolean isDerived()
{
return this.getSuperEntityAssociationEnd().isDerived();
}
/**
* IsLeaf property in the association end property. If true, attribute is final, cannot be
* extended or implemented by a descendant. Default=false.
* @see AssociationEndFacade#isLeaf()
*/
public boolean isLeaf()
{
return this.getSuperEntityAssociationEnd().isLeaf();
}
/**
* True if this association end's multiplicity is greater than one.
* @see AssociationEndFacade#isMany()
*/
public boolean isMany()
{
return this.getSuperEntityAssociationEnd().isMany();
}
/**
* True if this association end's and the other end's multiplicities are both many.
* @see AssociationEndFacade#isMany2Many()
*/
public boolean isMany2Many()
{
return this.getSuperEntityAssociationEnd().isMany2Many();
}
/**
* True if this association end's multiplicity is many while the other end's is one.
* @see AssociationEndFacade#isMany2One()
*/
public boolean isMany2One()
{
return this.getSuperEntityAssociationEnd().isMany2One();
}
/**
* True if it is possible to navigate from the other end to this association end .
* @see AssociationEndFacade#isNavigable()
*/
public boolean isNavigable()
{
return this.getSuperEntityAssociationEnd().isNavigable();
}
/**
* True if this association end's multiplicity is one while the other end's is many.
* @see AssociationEndFacade#isOne2Many()
*/
public boolean isOne2Many()
{
return this.getSuperEntityAssociationEnd().isOne2Many();
}
/**
* True if this association end's and the other end's multiplicities are both one.
* @see AssociationEndFacade#isOne2One()
*/
public boolean isOne2One()
{
return this.getSuperEntityAssociationEnd().isOne2One();
}
/**
* Indicates whether or not the association ends are ordered (if multiplicity is greater than
* 1).
* @see AssociationEndFacade#isOrdered()
*/
public boolean isOrdered()
{
return this.getSuperEntityAssociationEnd().isOrdered();
}
/**
* True if the association end cannot be changed.
* @see AssociationEndFacade#isReadOnly()
*/
public boolean isReadOnly()
{
return this.getSuperEntityAssociationEnd().isReadOnly();
}
/**
* True if this association end's multiplicity is strictly greater than zero.
* @see AssociationEndFacade#isRequired()
*/
public boolean isRequired()
{
return this.getSuperEntityAssociationEnd().isRequired();
}
/**
* Indicates if this associationEnd is 'static', meaning it has a classifier scope.
* @see AssociationEndFacade#isStatic()
*/
public boolean isStatic()
{
return this.getSuperEntityAssociationEnd().isStatic();
}
/**
* UML2: If the association attribute is unique within the Collection type. UML14 always returns
* false. Unique+Ordered determines the implementation Collection type. Default=false.
* @see AssociationEndFacade#isUnique()
*/
public boolean isUnique()
{
return this.getSuperEntityAssociationEnd().isUnique();
}
/**
* The name of the index to create on a column that persists the foreign key attribute.
* @see EntityAssociationEnd#getColumnIndex()
*/
public String getColumnIndex()
{
return this.getSuperEntityAssociationEnd().getColumnIndex();
}
/**
* The name of the column that makes up the foreign key.
* @see EntityAssociationEnd#getColumnName()
*/
public String getColumnName()
{
return this.getSuperEntityAssociationEnd().getColumnName();
}
/**
* The name of the foreign key constraint to use for databases.
* @see EntityAssociationEnd#getForeignKeyConstraintName()
*/
public String getForeignKeyConstraintName()
{
return this.getSuperEntityAssociationEnd().getForeignKeyConstraintName();
}
/**
* The current foreign key suffix specified for this entity association end facade.
* @see EntityAssociationEnd#getForeignKeySuffix()
*/
public String getForeignKeySuffix()
{
return this.getSuperEntityAssociationEnd().getForeignKeySuffix();
}
/**
* The SQL type for this the foreign key column of this association end.
* @see EntityAssociationEnd#getSqlType()
*/
public String getSqlType()
{
return this.getSuperEntityAssociationEnd().getSqlType();
}
/**
* The name of the unique-key that this unique association end belongs
* @see EntityAssociationEnd#getUniqueGroup()
*/
public String getUniqueGroup()
{
return this.getSuperEntityAssociationEnd().getUniqueGroup();
}
/**
* Indicates whether or not a foreign identifier should be used for the entity that owns this
* association end. This would only make sense in the case of a child in a one-to-one
* parent-child association. If this flag is true, then the identifier of this entity should
* also be used as the foreign key to the related parent entity.
* @see EntityAssociationEnd#isForeignIdentifier()
*/
public boolean isForeignIdentifier()
{
return this.getSuperEntityAssociationEnd().isForeignIdentifier();
}
/**
* True if this association is an identifier for its entity.
* @see EntityAssociationEnd#isIdentifier()
*/
public boolean isIdentifier()
{
return this.getSuperEntityAssociationEnd().isIdentifier();
}
/**
* True if the associationEnd is marked with identifiers stereotype, false otherwise.
* @see EntityAssociationEnd#isIdentifiersPresent()
*/
public boolean isIdentifiersPresent()
{
return this.getSuperEntityAssociationEnd().isIdentifiersPresent();
}
/**
* Indicates this association end should be ignored by the persistence layer.
* @see EntityAssociationEnd#isTransient()
*/
public boolean isTransient()
{
return this.getSuperEntityAssociationEnd().isTransient();
}
/**
* Copies all tagged values from the given ModelElementFacade to this model element facade.
* @see ModelElementFacade#copyTaggedValues(ModelElementFacade element)
*/
public void copyTaggedValues(ModelElementFacade element)
{
this.getSuperEntityAssociationEnd().copyTaggedValues(element);
}
/**
* Finds the tagged value with the specified 'tagName'. In case there are more values the first
* one found will be returned.
* @see ModelElementFacade#findTaggedValue(String tagName)
*/
public Object findTaggedValue(String tagName)
{
return this.getSuperEntityAssociationEnd().findTaggedValue(tagName);
}
/**
* Returns all the values for the tagged value with the specified name. The returned collection
* will contains only String instances, or will be empty. Never null.
* @see ModelElementFacade#findTaggedValues(String tagName)
*/
public Collection<Object> findTaggedValues(String tagName)
{
return this.getSuperEntityAssociationEnd().findTaggedValues(tagName);
}
/**
* Returns the fully qualified name of the model element. The fully qualified name includes
* complete package qualified name of the underlying model element. The templates parameter will
* be replaced by the correct one given the binding relation of the parameter to this element.
* @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement)
*/
public String getBindedFullyQualifiedName(ModelElementFacade bindedElement)
{
return this.getSuperEntityAssociationEnd().getBindedFullyQualifiedName(bindedElement);
}
/**
* Gets all constraints belonging to the model element.
* @see ModelElementFacade#getConstraints()
*/
public Collection<ConstraintFacade> getConstraints()
{
return this.getSuperEntityAssociationEnd().getConstraints();
}
/**
* Returns the constraints of the argument kind that have been placed onto this model. Typical
* kinds are "inv", "pre" and "post". Other kinds are possible.
* @see ModelElementFacade#getConstraints(String kind)
*/
public Collection<ConstraintFacade> getConstraints(String kind)
{
return this.getSuperEntityAssociationEnd().getConstraints(kind);
}
/**
* Gets the documentation for the model element, The indent argument is prefixed to each line.
* By default this method wraps lines after 64 characters.
* This method is equivalent to <code>getDocumentation(indent, 64)</code>.
* @see ModelElementFacade#getDocumentation(String indent)
*/
public String getDocumentation(String indent)
{
return this.getSuperEntityAssociationEnd().getDocumentation(indent);
}
/**
* This method returns the documentation for this model element, with the lines wrapped after
* the specified number of characters, values of less than 1 will indicate no line wrapping is
* required. By default paragraphs are returned as HTML.
* This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>.
* @see ModelElementFacade#getDocumentation(String indent, int lineLength)
*/
public String getDocumentation(String indent, int lineLength)
{
return this.getSuperEntityAssociationEnd().getDocumentation(indent, lineLength);
}
/**
* This method returns the documentation for this model element, with the lines wrapped after
* the specified number of characters, values of less than 1 will indicate no line wrapping is
* required. HTML style determines if HTML Escaping is applied.
* @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle)
*/
public String getDocumentation(String indent, int lineLength, boolean htmlStyle)
{
return this.getSuperEntityAssociationEnd().getDocumentation(indent, lineLength, htmlStyle);
}
/**
* The fully qualified name of this model element.
* @see ModelElementFacade#getFullyQualifiedName()
*/
public String getFullyQualifiedName()
{
return this.getSuperEntityAssociationEnd().getFullyQualifiedName();
}
/**
* Returns the fully qualified name of the model element. The fully qualified name includes
* complete package qualified name of the underlying model element. If modelName is true, then
* the original name of the model element (the name contained within the model) will be the name
* returned, otherwise a name from a language mapping will be returned.
* @see ModelElementFacade#getFullyQualifiedName(boolean modelName)
*/
public String getFullyQualifiedName(boolean modelName)
{
return this.getSuperEntityAssociationEnd().getFullyQualifiedName(modelName);
}
/**
* Returns the fully qualified name as a path, the returned value always starts with out a slash
* '/'.
* @see ModelElementFacade#getFullyQualifiedNamePath()
*/
public String getFullyQualifiedNamePath()
{
return this.getSuperEntityAssociationEnd().getFullyQualifiedNamePath();
}
/**
* Gets the unique identifier of the underlying model element.
* @see ModelElementFacade#getId()
*/
public String getId()
{
return this.getSuperEntityAssociationEnd().getId();
}
/**
* UML2: Retrieves the keywords for this element. Used to modify implementation properties which
* are not represented by other properties, i.e. native, transient, volatile, synchronized,
* (added annotations) override, deprecated. Can also be used to suppress compiler warnings:
* (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require
* JDK5 compiler level.
* @see ModelElementFacade#getKeywords()
*/
public Collection<String> getKeywords()
{
return this.getSuperEntityAssociationEnd().getKeywords();
}
/**
* UML2: Retrieves a localized label for this named element.
* @see ModelElementFacade#getLabel()
*/
public String getLabel()
{
return this.getSuperEntityAssociationEnd().getLabel();
}
/**
* The language mappings that have been set for this model element.
* @see ModelElementFacade#getLanguageMappings()
*/
public TypeMappings getLanguageMappings()
{
return this.getSuperEntityAssociationEnd().getLanguageMappings();
}
/**
* Return the model containing this model element (multiple models may be loaded and processed
* at the same time).
* @see ModelElementFacade#getModel()
*/
public ModelFacade getModel()
{
return this.getSuperEntityAssociationEnd().getModel();
}
/**
* The name of the model element.
* @see ModelElementFacade#getName()
*/
public String getName()
{
return this.getSuperEntityAssociationEnd().getName();
}
/**
* Gets the package to which this model element belongs.
* @see ModelElementFacade#getPackage()
*/
public ModelElementFacade getPackage()
{
return this.getSuperEntityAssociationEnd().getPackage();
}
/**
* The name of this model element's package.
* @see ModelElementFacade#getPackageName()
*/
public String getPackageName()
{
return this.getSuperEntityAssociationEnd().getPackageName();
}
/**
* Gets the package name (optionally providing the ability to retrieve the model name and not
* the mapped name).
* @see ModelElementFacade#getPackageName(boolean modelName)
*/
public String getPackageName(boolean modelName)
{
return this.getSuperEntityAssociationEnd().getPackageName(modelName);
}
/**
* Returns the package as a path, the returned value always starts with out a slash '/'.
* @see ModelElementFacade#getPackagePath()
*/
public String getPackagePath()
{
return this.getSuperEntityAssociationEnd().getPackagePath();
}
/**
* UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the
* NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from
* the names of the containing namespaces starting at the root of the hierarchy and ending with
* the name of the NamedElement itself.
* @see ModelElementFacade#getQualifiedName()
*/
public String getQualifiedName()
{
return this.getSuperEntityAssociationEnd().getQualifiedName();
}
/**
* Gets the root package for the model element.
* @see ModelElementFacade#getRootPackage()
*/
public PackageFacade getRootPackage()
{
return this.getSuperEntityAssociationEnd().getRootPackage();
}
/**
* Gets the dependencies for which this model element is the source.
* @see ModelElementFacade#getSourceDependencies()
*/
public Collection<DependencyFacade> getSourceDependencies()
{
return this.getSuperEntityAssociationEnd().getSourceDependencies();
}
/**
* If this model element is the context of an activity graph, this represents that activity
* graph.
* @see ModelElementFacade#getStateMachineContext()
*/
public StateMachineFacade getStateMachineContext()
{
return this.getSuperEntityAssociationEnd().getStateMachineContext();
}
/**
* The collection of ALL stereotype names for this model element.
* @see ModelElementFacade#getStereotypeNames()
*/
public Collection<String> getStereotypeNames()
{
return this.getSuperEntityAssociationEnd().getStereotypeNames();
}
/**
* Gets all stereotypes for this model element.
* @see ModelElementFacade#getStereotypes()
*/
public Collection<StereotypeFacade> getStereotypes()
{
return this.getSuperEntityAssociationEnd().getStereotypes();
}
/**
* Return the TaggedValues associated with this model element, under all stereotypes.
* @see ModelElementFacade#getTaggedValues()
*/
public Collection<TaggedValueFacade> getTaggedValues()
{
return this.getSuperEntityAssociationEnd().getTaggedValues();
}
/**
* Gets the dependencies for which this model element is the target.
* @see ModelElementFacade#getTargetDependencies()
*/
public Collection<DependencyFacade> getTargetDependencies()
{
return this.getSuperEntityAssociationEnd().getTargetDependencies();
}
/**
* Get the template parameter for this model element having the parameterName
* @see ModelElementFacade#getTemplateParameter(String parameterName)
*/
public Object getTemplateParameter(String parameterName)
{
return this.getSuperEntityAssociationEnd().getTemplateParameter(parameterName);
}
/**
* Get the template parameters for this model element
* @see ModelElementFacade#getTemplateParameters()
*/
public Collection<TemplateParameterFacade> getTemplateParameters()
{
return this.getSuperEntityAssociationEnd().getTemplateParameters();
}
/**
* The visibility (i.e. public, private, protected or package) of the model element, will
* attempt a lookup for these values in the language mappings (if any).
* @see ModelElementFacade#getVisibility()
*/
public String getVisibility()
{
return this.getSuperEntityAssociationEnd().getVisibility();
}
/**
* Returns true if the model element has the exact stereotype (meaning no stereotype inheritance
* is taken into account when searching for the stereotype), false otherwise.
* @see ModelElementFacade#hasExactStereotype(String stereotypeName)
*/
public boolean hasExactStereotype(String stereotypeName)
{
return this.getSuperEntityAssociationEnd().hasExactStereotype(stereotypeName);
}
/**
* Does the UML Element contain the named Keyword? Keywords can be separated by space, comma,
* pipe, semicolon, or << >>
* @see ModelElementFacade#hasKeyword(String keywordName)
*/
public boolean hasKeyword(String keywordName)
{
return this.getSuperEntityAssociationEnd().hasKeyword(keywordName);
}
/**
* Returns true if the model element has the specified stereotype. If the stereotype itself
* does not match, then a search will be made up the stereotype inheritance hierarchy, and if
* one of the stereotype's ancestors has a matching name this method will return true, false
* otherwise.
* For example, if we have a certain stereotype called <<exception>> and a model element has a
* stereotype called <<applicationException>> which extends <<exception>>, when calling this
* method with 'stereotypeName' defined as 'exception' the method would return true since
* <<applicationException>> inherits from <<exception>>. If you want to check if the model
* element has the exact stereotype, then use the method 'hasExactStereotype' instead.
* @see ModelElementFacade#hasStereotype(String stereotypeName)
*/
public boolean hasStereotype(String stereotypeName)
{
return this.getSuperEntityAssociationEnd().hasStereotype(stereotypeName);
}
/**
* True if there are target dependencies from this element that are instances of BindingFacade.
* Deprecated in UML2: Use TemplateBinding parameters instead of dependencies.
* @see ModelElementFacade#isBindingDependenciesPresent()
*/
public boolean isBindingDependenciesPresent()
{
return this.getSuperEntityAssociationEnd().isBindingDependenciesPresent();
}
/**
* Indicates if any constraints are present on this model element.
* @see ModelElementFacade#isConstraintsPresent()
*/
public boolean isConstraintsPresent()
{
return this.getSuperEntityAssociationEnd().isConstraintsPresent();
}
/**
* Indicates if any documentation is present on this model element.
* @see ModelElementFacade#isDocumentationPresent()
*/
public boolean isDocumentationPresent()
{
return this.getSuperEntityAssociationEnd().isDocumentationPresent();
}
/**
* True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript.
* @see ModelElementFacade#isReservedWord()
*/
public boolean isReservedWord()
{
return this.getSuperEntityAssociationEnd().isReservedWord();
}
/**
* True is there are template parameters on this model element. For UML2, applies to Class,
* Operation, Property, and Parameter.
* @see ModelElementFacade#isTemplateParametersPresent()
*/
public boolean isTemplateParametersPresent()
{
return this.getSuperEntityAssociationEnd().isTemplateParametersPresent();
}
/**
* True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++,
* JavaScript. Contains no spaces, special characters etc. Constraint always applied on
* Enumerations and Interfaces, optionally applies on other model elements.
* @see ModelElementFacade#isValidIdentifierName()
*/
public boolean isValidIdentifierName()
{
return this.getSuperEntityAssociationEnd().isValidIdentifierName();
}
/**
* Searches for the constraint with the specified 'name' on this model element, and if found
* translates it using the specified 'translation' from a translation library discovered by the
* framework.
* @see ModelElementFacade#translateConstraint(String name, String translation)
*/
public String translateConstraint(String name, String translation)
{
return this.getSuperEntityAssociationEnd().translateConstraint(name, translation);
}
/**
* Translates all constraints belonging to this model element with the given 'translation'.
* @see ModelElementFacade#translateConstraints(String translation)
*/
public String[] translateConstraints(String translation)
{
return this.getSuperEntityAssociationEnd().translateConstraints(translation);
}
/**
* Translates the constraints of the specified 'kind' belonging to this model element.
* @see ModelElementFacade#translateConstraints(String kind, String translation)
*/
public String[] translateConstraints(String kind, String translation)
{
return this.getSuperEntityAssociationEnd().translateConstraints(kind, translation);
}
/**
* @see MetafacadeBase#initialize()
*/
@Override
public void initialize()
{
this.getSuperEntityAssociationEnd().initialize();
}
/**
* @return Object getSuperEntityAssociationEnd().getValidationOwner()
* @see MetafacadeBase#getValidationOwner()
*/
@Override
public Object getValidationOwner()
{
Object owner = this.getSuperEntityAssociationEnd().getValidationOwner();
return owner;
}
/**
* @return String getSuperEntityAssociationEnd().getValidationName()
* @see MetafacadeBase#getValidationName()
*/
@Override
public String getValidationName()
{
String name = this.getSuperEntityAssociationEnd().getValidationName();
return name;
}
/**
* <p><b>Constraint:</b> org::andromda::cartridges::hibernate::metafacades::HibernateAssociationEnd::one-to-one associations must have aggregation on one side</p>
* <p><b>Error:</b> One-to-one associations must either have one side flagged as primary (using andromda_persistence_associationEnd_primary) or have one side of the association indicating aggregation (aggregation defines the parent owning entity)</p>
* <p><b>OCL:</b> context HibernateAssociationEnd inv: otherEnd.type.oclIsKindOf(HibernateEntity) and one2One implies (one2OnePrimary or otherEnd.one2OnePrimary)</p>
* <p><b>Constraint:</b> org::andromda::cartridges::hibernate::metafacades::HibernateAssociationEnd::ordered collections must have an index defined</p>
* <p><b>Error:</b> Ordered collections (i.e. lists) must have an index defined. You can define this with either the associationEndCollectionIndexName (to apply to all ordered collections in your model(s)), or andromda_hibernate_collection_index
to apply to a single ordered collection.</p>
* <p><b>OCL:</b> context HibernateAssociationEnd
inv: otherEnd.type.oclIsKindOf(HibernateEntity) and otherEnd.list implies otherEnd.collectionIndexName -> notEmpty()</p>
* <p><b>Constraint:</b> org::andromda::cartridges::hibernate::metafacades::HibernateAssociationEnd::map collecions must have the index type defined.</p>
* <p><b>Error:</b> Collections defined as maps must have an index and index type defined., you can define each with the associationEndCollectionIndexName and associationEndCollectionIndexType (to apply to all mapped collections in your model(s)), or andromda_hibernate_collection_index and andromda_hibernate_collection_index_type
to apply to a single ordered collection.</p>
* <p><b>OCL:</b> context HibernateAssociationEnd
inv: otherEnd.type.oclIsKindOf(HibernateEntity) and otherEnd.map implies (otherEnd.collectionIndexType -> notEmpty() and otherEnd.collectionIndexName -> notEmpty())</p>
* @param validationMessages Collection<ModelValidationMessage>
* @see MetafacadeBase#validateInvariants(Collection validationMessages)
*/
@Override
public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
{
this.getSuperEntityAssociationEnd().validateInvariants(validationMessages);
try
{
final Object contextElement = this.THIS();
boolean constraintValid = OCLResultEnsurer.ensure((Boolean.valueOf(String.valueOf(OCLIntrospector.invoke(contextElement,"otherEnd.type") instanceof HibernateEntity&&Boolean.valueOf(String.valueOf(OCLIntrospector.invoke(contextElement,"one2One"))).booleanValue())).booleanValue()?(Boolean.valueOf(String.valueOf(OCLIntrospector.invoke(contextElement,"one2OnePrimary"))).booleanValue()||Boolean.valueOf(String.valueOf(OCLIntrospector.invoke(contextElement,"otherEnd.one2OnePrimary"))).booleanValue()):true));
if (!constraintValid)
{
validationMessages.add(
new ModelValidationMessage(
(MetafacadeBase)contextElement ,
"org::andromda::cartridges::hibernate::metafacades::HibernateAssociationEnd::one-to-one associations must have aggregation on one side",
"One-to-one associations must either have one side flagged as primary (using andromda_persistence_associationEnd_primary) or have one side of the association indicating aggregation (aggregation defines the parent owning entity)"));
}
}
catch (Throwable th)
{
Throwable cause = th.getCause();
int depth = 0; // Some throwables have infinite recursion
while (cause != null && depth < 7)
{
th = cause;
depth++;
}
logger.error("Error validating constraint 'org::andromda::cartridges::hibernate::metafacades::HibernateAssociationEnd::one-to-one associations must have aggregation on one side' ON "
+ this.THIS().toString() + ": " + th.getMessage(), th);
}
try
{
final Object contextElement = this.THIS();
boolean constraintValid = OCLResultEnsurer.ensure((Boolean.valueOf(String.valueOf(OCLIntrospector.invoke(contextElement,"otherEnd.type") instanceof HibernateEntity&&Boolean.valueOf(String.valueOf(OCLIntrospector.invoke(contextElement,"otherEnd.list"))).booleanValue())).booleanValue()?OCLCollections.notEmpty(OCLIntrospector.invoke(contextElement,"otherEnd.collectionIndexName")):true));
if (!constraintValid)
{
validationMessages.add(
new ModelValidationMessage(
(MetafacadeBase)contextElement ,
"org::andromda::cartridges::hibernate::metafacades::HibernateAssociationEnd::ordered collections must have an index defined",
"Ordered collections (i.e. lists) must have an index defined. You can define this with either the associationEndCollectionIndexName (to apply to all ordered collections in your model(s)), or andromda_hibernate_collection_index\nto apply to a single ordered collection."));
}
}
catch (Throwable th)
{
Throwable cause = th.getCause();
int depth = 0; // Some throwables have infinite recursion
while (cause != null && depth < 7)
{
th = cause;
depth++;
}
logger.error("Error validating constraint 'org::andromda::cartridges::hibernate::metafacades::HibernateAssociationEnd::ordered collections must have an index defined' ON "
+ this.THIS().toString() + ": " + th.getMessage(), th);
}
try
{
final Object contextElement = this.THIS();
boolean constraintValid = OCLResultEnsurer.ensure((Boolean.valueOf(String.valueOf(OCLIntrospector.invoke(contextElement,"otherEnd.type") instanceof HibernateEntity&&Boolean.valueOf(String.valueOf(OCLIntrospector.invoke(contextElement,"otherEnd.map"))).booleanValue())).booleanValue()?(OCLCollections.notEmpty(OCLIntrospector.invoke(contextElement,"otherEnd.collectionIndexType"))&&OCLCollections.notEmpty(OCLIntrospector.invoke(contextElement,"otherEnd.collectionIndexName"))):true));
if (!constraintValid)
{
validationMessages.add(
new ModelValidationMessage(
(MetafacadeBase)contextElement ,
"org::andromda::cartridges::hibernate::metafacades::HibernateAssociationEnd::map collecions must have the index type defined.",
"Collections defined as maps must have an index and index type defined., you can define each with the associationEndCollectionIndexName and associationEndCollectionIndexType (to apply to all mapped collections in your model(s)), or andromda_hibernate_collection_index and andromda_hibernate_collection_index_type\nto apply to a single ordered collection."));
}
}
catch (Throwable th)
{
Throwable cause = th.getCause();
int depth = 0; // Some throwables have infinite recursion
while (cause != null && depth < 7)
{
th = cause;
depth++;
}
logger.error("Error validating constraint 'org::andromda::cartridges::hibernate::metafacades::HibernateAssociationEnd::map collecions must have the index type defined.' ON "
+ this.THIS().toString() + ": " + th.getMessage(), th);
}
}
/**
* The property that stores the name of the metafacade.
*/
private static final String NAME_PROPERTY = "name";
private static final String FQNAME_PROPERTY = "fullyQualifiedName";
/**
* @see Object#toString()
*/
@Override
public String toString()
{
final StringBuilder toString = new StringBuilder(this.getClass().getName());
toString.append("[");
try
{
toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY));
}
catch (final Throwable tryAgain)
{
try
{
toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY));
}
catch (final Throwable ignore)
{
// - just ignore when the metafacade doesn't have a name or fullyQualifiedName property
}
}
toString.append("]");
return toString.toString();
}
}