functions.Class.ext Maven / Gradle / Ivy
extension functions::TypeChecks;
extension functions::Property;
extension functions::POJO;
extension functions::ServiceObject;
extension java::GeneratorCommons;
extension java::OpenAPIFunctions;
cached boolean isClass(uml::Element element):
if element != null
then element.isInstanceOf("org.eclipse.uml2.uml.Class")
else false;
cached uml::Class asClass(uml::Element element):
(uml::Class) element;
cached boolean hasDerivedProperties(uml::Class class):
!class.getDerivedProperties().isEmpty;
cached List[uml::Property] getDerivedProperties(uml::Class class):
class.ownedAttribute.select(e|e.isDerived == true);
cached boolean hasBidirectionalAssociations(uml::Class class):
class.getBidirectionalProperties().isEmpty == false;
cached List[uml::Property] getBidirectionalProperties(uml::Class class):
class.ownedAttribute.select(e|e.isPropertySuppressed() == false && e.belongsToBidirectionalAssociation());
cached boolean hasOnlyTransientBidirectionalAssociations(uml::Class class):
class.getBidirectionalProperties().select(e|e.belongsToTransientBidirectionalAssociation() == false).isEmpty == true;
cached boolean hasTemplateParameter(uml::Class class):
class.ownedTemplateSignature.ownedParameter.isEmpty == false;
cached boolean generateOfOperationForClass(uml::Class class):
generateOfOperation() && (class.generateOfOperationForServiceObject() || class.generateOfOperationForPOJO() || generateOfOperationForOpenAPIDataType());
cached List[uml::Property] getAllAttributesForOfOperation(uml::Class class):
if class.useOnlyRequiredPropertiesForOfMethod()
then class.getAllAttributesFromHierarchy().select(e|e.isPropertySuppressed() == false && e.belongsToTransientBidirectionalBackReference() == false && e.isStatic == false && e.isRequiredProperty())
else class.getAllAttributesFromHierarchy().select(e|e.isPropertySuppressed() == false && e.belongsToTransientBidirectionalBackReference() == false && e.isStatic == false);
//class.getAllAttributes().select(e|e.isPropertySuppressed() == false);
private boolean useOnlyRequiredPropertiesForOfMethod(uml::Class class):
if class.getOfMethodType() == null || class.getOfMethodType() == "REQUIRED_PROPERTIES" || class.getOfMethodType() == "DEFAULT"
then true
else false;
private String getOfMethodType(uml::Class class):
if class.isPOJO()
then class.asPOJO().ofMethod.name
else
if class.isServiceObject()
then class.asServiceObject().ofMethod.name;
cached boolean suppressSubtypesMapping(uml::Class class):
if class.isStereotypeApplied("POJO")
then ((JMM::POJO) class).suppressSubtypesMapping
else
if class.isStereotypeApplied("ServiceObject")
then ((JMM::ServiceObject) class).suppressSubtypesMapping
else false;