I tried your sample and it works fine. Any chance that you are using wrong version of Sculptor?
isEnumReference() was added by
http://www.fornax-platform.org/tracker/browse/CSC-249which was not released in 1.5.0.
/Patrik
Markus Flögel wrote:
hello,
i have a problem when i extend my workflow using the SpecialCases template.
i use sculptor version 1.5.0 .
Here is an example. I describe two classes in the model.
Application MyApp {
basePackage=com.example
Module common
{
BasicType Ident
{
String namespace key;
String namespacekey key;
}
Entity IdentifierEntity
{
- @Ident ident key;
}
}
}
In the SpecialCases i want to use some functions of the Reference:
«IMPORT sculptormetamodel»
«EXTENSION extensions::helper»
«EXTENSION extensions::dbhelper»
«EXTENSION extensions::properties»
«AROUND *::DomainObject::keyGetter FOR DomainObject»
«targetDef.proceed()»
«EXPAND ReferenceToXML FOREACH references.select(r | !r.many)»
«ENDAROUND»
«DEFINE ReferenceToXML FOR Reference»
«IF isEnumReference()»
test
«ENDIF»
default
«ENDDEFINE»
Every time i use a function from Reference i get errors like this:
ERROR AbstractExpressionsUsingWorkflowComponent - Error in Component generator of type org.openarchitectureware.xpand2.Generator:
EvaluationException : Couldn't find operation 'isEnumReference()' for sculptormetamodel::Reference.
templates::SpecialCases.xpt[563,17] on line 21 'isEnumReference()'
templates::SpecialCases.xpt[436,60] on line 16 'EXPAND ReferenceToXML FOREACH references.select(r|r.many.!())'
templates::DomainObject.xpt[2942,16] on line 87 'EXPAND keyGetter'
templates::DomainObject.xpt[862,23] on line 24 'EXPAND domainObjectBase'
templates::Root.xpt[884,68] on line 25 'EXPAND DomainObject::domainObject FOREACH getAllDomainObjects(false)'
[23,49] on line 1 'EXPAND templates::Root::Root FOR transformedModel'
When i comment out the line - @Ident ident key; in the model, everything works fine. I think there must be a problem using references of BasicType.