Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » OCL » Bug in OCL or in my code?
Bug in OCL or in my code? [message #658222] Mon, 07 March 2011 08:26 Go to next message
Wilbert Alberts is currently offline Wilbert Alberts
Messages: 87
Registered: June 2010
Member
Hi,

I'm trying to generate some code for a c like language. It contains pieces like:

typedef struct
{
  BAR b;
} FOO;

typdef struct
{
  int i;
} BAR;


However, in this case the order of the typedefs matters. So the typedef of BAR should precede the one of FOO.

So I need to order a collection of types in my model. I decided to first generate a set of all types present in my model. Then, I'll put them in the right order based on a recursive function which looks like:

[query public sortTypes(done: Sequence(PG_Type), tobedone: Set(PG_Type)) : Sequence(PG_Type) =
if tobedone->isEmpty() then done
else
   let bottom  : Set(PG_Type) = tobedone->select(t| done->includesAll(subTypes(t))),
       newdone : Sequence(PG_Type) = done->union(bottom->asSequence()),
       newtobe : Set(PG_Type) = tobedone-bottom
   in
       sortTypes(newdone, newtobe)
endif
/]



When I run this code, I get an error in the log stating:
Evaluation failed with an exception: org.eclipse.ocl.util.BagImpl cannot be cast to java.util.Set

As far as I can see, the typecast is done in the calculation of newtobe. However, I'm not an expert in OCL and I'm curious about the return types of the various expressions.

Any clues?

Greetings,
Wilbert.
Re: Bug in OCL or in my code? [message #658225 is a reply to message #658222] Mon, 07 March 2011 08:50 Go to previous messageGo to next message
Axel Uhl is currently offline Axel Uhl
Messages: 40
Registered: July 2009
Member
Hi Wilbert,

to reproduce your problem I've tried entering a similar expression into the OCL console after opening OCLEcore.ecore and selecting ocl/ecore/CallExp:

let done:Sequence(ecore::Constraint)=Sequence{}, tobedone:Set(Constraint)=Set{} in
if tobedone->isEmpty() then done
else
let bottom : Set(ecore::Constraint) = tobedone->select(t| true),
newdone : Sequence(ecore::Constraint) = done->union(bottom->asSequence()),
newtobe : Set(ecore::Constraint) = tobedone-bottom
in
Sequence{}
endif->isEmpty()
Results:
'Successfully parsed.'

Main difference to your expression is that I emulated the operation arguments by let-definitions and replaced the predicate in the select body by true to avoid having to define subTypes somewhere.

In particular, the tobedone-bottom expression which you suspect to be the offending one seems to parse fine in this scenario.

It would be cool if you could provide some more reproduction info for us. Also, a stack trace of the place where the mismatch is encountered may help.

Thanks and best,
-- Axel
Re: Bug in OCL or in my code? [message #658238 is a reply to message #658225] Mon, 07 March 2011 09:41 Go to previous message
Wilbert Alberts is currently offline Wilbert Alberts
Messages: 87
Registered: June 2010
Member
Hi Axel,

I'm editing the code inside the Acceleo-3 editor. The editor itself does also not complain, so parsing the expression does not seem to be the problem.

In the meanwhile, I changed
	newtobe : Set(PG_Type) = tobedone - bottom

into
	newtobe : Set(PG_Type) = (tobedone->asSet()) - (bottom->asSet())


That solved(?) the issue. Sounds like I'm really forcing the evaluator to cast now (if something like that can happen).

In case it might be anyhelp, stack trace is attached below.

Greetings,
Wilbert.

!ENTRY org.eclipse.ocl 4 10 2011-03-07 15:38:59.345
!MESSAGE Evaluation failed with an exception: org.eclipse.ocl.util.BagImpl cannot be cast to java.util.Set
!STACK 0
java.lang.ClassCastException: org.eclipse.ocl.util.BagImpl cannot be cast to java.util.Set
	at org.eclipse.ocl.EvaluationVisitorImpl.visitOperationCallExp(EvaluationVisitorImpl.java:1072)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitOperationCallExp(AcceleoEvaluationVisitor.java:1058)
	at org.eclipse.ocl.ecore.impl.OperationCallExpImpl.accept(OperationCallExpImpl.java:390)
	at org.eclipse.ocl.EvaluationVisitorImpl.visitVariable(EvaluationVisitorImpl.java:1976)
	at org.eclipse.ocl.EvaluationVisitorDecorator.visitVariable(EvaluationVisitorDecorator.java:340)
	at org.eclipse.ocl.ecore.impl.VariableImpl.accept(VariableImpl.java:654)
	at org.eclipse.ocl.EvaluationVisitorImpl.visitLetExp(EvaluationVisitorImpl.java:2099)
	at org.eclipse.ocl.EvaluationVisitorDecorator.visitLetExp(EvaluationVisitorDecorator.java:248)
	at org.eclipse.ocl.ecore.impl.LetExpImpl.accept(LetExpImpl.java:356)
	at org.eclipse.ocl.EvaluationVisitorImpl.visitLetExp(EvaluationVisitorImpl.java:2105)
	at org.eclipse.ocl.EvaluationVisitorDecorator.visitLetExp(EvaluationVisitorDecorator.java:248)
	at org.eclipse.ocl.ecore.impl.LetExpImpl.accept(LetExpImpl.java:356)
	at org.eclipse.ocl.EvaluationVisitorImpl.visitLetExp(EvaluationVisitorImpl.java:2105)
	at org.eclipse.ocl.EvaluationVisitorDecorator.visitLetExp(EvaluationVisitorDecorator.java:248)
	at org.eclipse.ocl.ecore.impl.LetExpImpl.accept(LetExpImpl.java:356)
	at org.eclipse.ocl.EvaluationVisitorImpl.visitIfExp(EvaluationVisitorImpl.java:1999)
	at org.eclipse.ocl.EvaluationVisitorDecorator.visitIfExp(EvaluationVisitorDecorator.java:213)
	at org.eclipse.ocl.ecore.impl.IfExpImpl.accept(IfExpImpl.java:448)
	at org.eclipse.ocl.AbstractEvaluationVisitor.visitExpression(AbstractEvaluationVisitor.java:247)
	at org.eclipse.ocl.EvaluationVisitorDecorator.visitExpression(EvaluationVisitorDecorator.java:156)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1646)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:962)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitAcceleoQueryInvocation(AcceleoEvaluationVisitor.java:790)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1629)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:962)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitAcceleoQueryInvocation(AcceleoEvaluationVisitor.java:790)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1629)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:962)
	at org.eclipse.acceleo.model.mtl.impl.spec.QueryInvocationSpec.accept(QueryInvocationSpec.java:49)
	at org.eclipse.ocl.EvaluationVisitorImpl.visitLetExp(EvaluationVisitorImpl.java:2105)
	at org.eclipse.ocl.EvaluationVisitorDecorator.visitLetExp(EvaluationVisitorDecorator.java:248)
	at org.eclipse.ocl.ecore.impl.LetExpImpl.accept(LetExpImpl.java:356)
	at org.eclipse.ocl.EvaluationVisitorImpl.visitLetExp(EvaluationVisitorImpl.java:2105)
	at org.eclipse.ocl.EvaluationVisitorDecorator.visitLetExp(EvaluationVisitorDecorator.java:248)
	at org.eclipse.ocl.ecore.impl.LetExpImpl.accept(LetExpImpl.java:356)
	at org.eclipse.ocl.EvaluationVisitorImpl.visitLetExp(EvaluationVisitorImpl.java:2105)
	at org.eclipse.ocl.EvaluationVisitorDecorator.visitLetExp(EvaluationVisitorDecorator.java:248)
	at org.eclipse.ocl.ecore.impl.LetExpImpl.accept(LetExpImpl.java:356)
	at org.eclipse.ocl.EvaluationVisitorImpl.visitLetExp(EvaluationVisitorImpl.java:2105)
	at org.eclipse.ocl.EvaluationVisitorDecorator.visitLetExp(EvaluationVisitorDecorator.java:248)
	at org.eclipse.ocl.ecore.impl.LetExpImpl.accept(LetExpImpl.java:356)
	at org.eclipse.ocl.EvaluationVisitorImpl.visitLetExp(EvaluationVisitorImpl.java:2105)
	at org.eclipse.ocl.EvaluationVisitorDecorator.visitLetExp(EvaluationVisitorDecorator.java:248)
	at org.eclipse.ocl.ecore.impl.LetExpImpl.accept(LetExpImpl.java:356)
	at org.eclipse.ocl.AbstractEvaluationVisitor.visitExpression(AbstractEvaluationVisitor.java:247)
	at org.eclipse.ocl.EvaluationVisitorDecorator.visitExpression(EvaluationVisitorDecorator.java:156)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1646)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:962)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitAcceleoQueryInvocation(AcceleoEvaluationVisitor.java:790)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1629)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:962)
	at org.eclipse.acceleo.model.mtl.impl.spec.QueryInvocationSpec.accept(QueryInvocationSpec.java:49)
	at org.eclipse.ocl.EvaluationVisitorImpl.visitVariable(EvaluationVisitorImpl.java:1976)
	at org.eclipse.ocl.EvaluationVisitorDecorator.visitVariable(EvaluationVisitorDecorator.java:340)
	at org.eclipse.ocl.ecore.impl.VariableImpl.accept(VariableImpl.java:654)
	at org.eclipse.ocl.EvaluationVisitorImpl.visitLetExp(EvaluationVisitorImpl.java:2099)
	at org.eclipse.ocl.EvaluationVisitorDecorator.visitLetExp(EvaluationVisitorDecorator.java:248)
	at org.eclipse.ocl.ecore.impl.LetExpImpl.accept(LetExpImpl.java:356)
	at org.eclipse.ocl.AbstractEvaluationVisitor.visitExpression(AbstractEvaluationVisitor.java:247)
	at org.eclipse.ocl.EvaluationVisitorDecorator.visitExpression(EvaluationVisitorDecorator.java:156)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1646)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:962)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitAcceleoQueryInvocation(AcceleoEvaluationVisitor.java:790)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1629)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:962)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitAcceleoForBlock(AcceleoEvaluationVisitor.java:401)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1609)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:962)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitAcceleoTemplate(AcceleoEvaluationVisitor.java:831)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1596)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:962)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitAcceleoTemplateInvocation(AcceleoEvaluationVisitor.java:882)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1623)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:962)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitAcceleoTemplate(AcceleoEvaluationVisitor.java:831)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1596)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:962)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitAcceleoTemplateInvocation(AcceleoEvaluationVisitor.java:882)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1623)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:962)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitAcceleoFileBlock(AcceleoEvaluationVisitor.java:385)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1616)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:962)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitAcceleoTemplate(AcceleoEvaluationVisitor.java:831)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1596)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:962)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitAcceleoTemplateInvocation(AcceleoEvaluationVisitor.java:882)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1623)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:962)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitAcceleoForBlock(AcceleoEvaluationVisitor.java:497)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1609)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:962)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitAcceleoTemplate(AcceleoEvaluationVisitor.java:831)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1596)
	at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:962)
	at org.eclipse.ocl.internal.evaluation.QueryImpl.evaluate(QueryImpl.java:152)
	at org.eclipse.ocl.ecore.QueryImpl.evaluate(QueryImpl.java:62)
	at org.eclipse.acceleo.engine.generation.AcceleoEngine.doEvaluate(AcceleoEngine.java:265)
	at org.eclipse.acceleo.engine.generation.AcceleoEngine.evaluate(AcceleoEngine.java:130)
	at org.eclipse.acceleo.engine.service.AcceleoService.doGenerateTemplate(AcceleoService.java:544)
	at org.eclipse.acceleo.engine.service.AcceleoService.doGenerate(AcceleoService.java:380)
	at org.eclipse.acceleo.engine.service.AbstractAcceleoGenerator.generate(AbstractAcceleoGenerator.java:141)
	at org.eclipse.acceleo.engine.service.AbstractAcceleoGenerator.doGenerate(AbstractAcceleoGenerator.java:120)
	at PGWB_PSM2C.files.Generate.doGenerate(Generate.java:148)
	at org.eclipse.acceleo.ide.ui.launching.strategy.AcceleoLaunchOperation.run(AcceleoLaunchOperation.java:119)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1957)
	at org.eclipse.acceleo.ide.ui.launching.strategy.AcceleoPluginLaunchingStrategy.launch(AcceleoPluginLaunchingStrategy.java:225)
	at org.eclipse.acceleo.ide.ui.launching.strategy.AcceleoPluginLaunchingStrategy.launch(AcceleoPluginLaunchingStrategy.java:128)
	at org.eclipse.acceleo.internal.ide.ui.launching.AcceleoLaunchDelegate.launch(AcceleoLaunchDelegate.java:53)
	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:853)
	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:702)
	at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:924)
	at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1128)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

!ENTRY org.eclipse.acceleo.engine 2 2 2011-03-07 15:38:59.392
!MESSAGE Invalid result for expression if tobedone->isEmpty() then done else let bottom : Set(PG_Type) = tobedone->select(t : PG_Type | done->includesAll(subTypes(t))) in let newdone : Sequence(PG_Type) = done->union(bottom->asSequence()) in let newtobe : Set(PG_Type) = tobedone->-(bottom) in sortTypes(newdone,newtobe) endif at line 34 in Module helperPrimBlock for query sortTypes(Sequence(PG_Type),Set(PG_Type)). Last recorded value of self was [org.eclipse.emf.ecore.impl.DynamicEObjectImpl@197014f (eClass: org.eclipse.emf.ecore.impl.EClassImpl@14cf993 (name: PG_UserDefinedType) (instanceClassName: null) (abstract: false, interface: false))].
!STACK 0
org.eclipse.acceleo.engine.AcceleoEvaluationException: Invalid result for expression if tobedone->isEmpty() then done else let bottom : Set(PG_Type) = tobedone->select(t : PG_Type | done->includesAll(subTypes(t))) in let newdone : Sequence(PG_Type) = done->union(bottom->asSequence()) in let newtobe : Set(PG_Type) = tobedone->-(bottom) in sortTypes(newdone,newtobe) endif at line 34 in Module helperPrimBlock for query sortTypes(Sequence(PG_Type),Set(PG_Type)). Last recorded value of self was [org.eclipse.emf.ecore.impl.DynamicEObjectImpl@197014f (eClass: org.eclipse.emf.ecore.impl.EClassImpl@14cf993 (name: PG_UserDefinedType) (instanceClassName: null) (abstract: false, interface: false))].
	at helperPrimBlock.orderTypes(Set(PG_Type))(helperPrimBlock.mtl:0)
	at helperPrimBlock.exportedTypes(PG_PrimBlock)(helperPrimBlock.mtl:0)
	at helperPrimBlock.exportedTypes(PG_PrimBlock)(helperPrimBlock.mtl:0)
	at helperPrimBlock.exportedTypeDefs(PG_PrimBlock)(helperPrimBlock.mtl:0)
	at helperPrimBlock.exportedTypeDefs(PG_PrimBlock)(helperPrimBlock.mtl:0)
	at generatePBDDF.genExportedStructs(PG_PrimBlock)(generatePBDDF.mtl:0)
	at generatePBDDF.genExportedStructs(PG_PrimBlock)(generatePBDDF.mtl:91)
	at generatePBDDF.genExportedStructs(PG_PrimBlock)(generatePBDDF.mtl:90)
	at generatePBDDF.generatePBDDF(PG_PrimBlock)(generatePBDDF.mtl:0)
	at generatePBDDF.generatePBDDF(PG_PrimBlock)(generatePBDDF.mtl:9)
	at generatePrimBlock.generateDDF(PG_PrimBlock)(generatePrimBlock.mtl:0)
	at generatePrimBlock.generateDDF(PG_PrimBlock)(generatePrimBlock.mtl:10)
	at generatePrimBlock.generateDDF(PG_PrimBlock)(generatePrimBlock.mtl:9)
	at generate.generate(PG_Model)(generate.mtl:0)
	at generate.generate(PG_Model)(generate.mtl:8)
	at generate.generate(PG_Model)(generate.mtl:5)

!ENTRY org.eclipse.acceleo.engine 2 2 2011-03-07 15:38:59.423
!MESSAGE Invalid result for expression let exportedtypes : Sequence(PG_Type) = exportedTypes(b) in exportedtypes->select(temp14 : PG_Type | temp14.oclIsKindOf(pgwb_psm::pg_type::PG_UserDefinedType))->collect(temp15 : PG_Type | temp15.oclAsType(pgwb_psm::pg_type::PG_UserDefinedType)) at line 101 in Module helperPrimBlock for query exportedTypeDefs(PG_PrimBlock). Last recorded value of self was org.eclipse.emf.ecore.impl.DynamicEObjectImpl@801d5b (eClass: org.eclipse.emf.ecore.impl.EClassImpl@793129 (name: PG_PrimBlock) (instanceClassName: null) (abstract: false, interface: false)).
!STACK 0
org.eclipse.acceleo.engine.AcceleoEvaluationException: Invalid result for expression let exportedtypes : Sequence(PG_Type) = exportedTypes(b) in exportedtypes->select(temp14 : PG_Type | temp14.oclIsKindOf(pgwb_psm::pg_type::PG_UserDefinedType))->collect(temp15 : PG_Type | temp15.oclAsType(pgwb_psm::pg_type::PG_UserDefinedType)) at line 101 in Module helperPrimBlock for query exportedTypeDefs(PG_PrimBlock). Last recorded value of self was org.eclipse.emf.ecore.impl.DynamicEObjectImpl@801d5b (eClass: org.eclipse.emf.ecore.impl.EClassImpl@793129 (name: PG_PrimBlock) (instanceClassName: null) (abstract: false, interface: false)).
	at generatePBDDF.genExportedStructs(PG_PrimBlock)(generatePBDDF.mtl:0)
	at generatePBDDF.genExportedStructs(PG_PrimBlock)(generatePBDDF.mtl:91)
	at generatePBDDF.genExportedStructs(PG_PrimBlock)(generatePBDDF.mtl:90)
	at generatePBDDF.generatePBDDF(PG_PrimBlock)(generatePBDDF.mtl:0)
	at generatePBDDF.generatePBDDF(PG_PrimBlock)(generatePBDDF.mtl:9)
	at generatePrimBlock.generateDDF(PG_PrimBlock)(generatePrimBlock.mtl:0)
	at generatePrimBlock.generateDDF(PG_PrimBlock)(generatePrimBlock.mtl:10)
	at generatePrimBlock.generateDDF(PG_PrimBlock)(generatePrimBlock.mtl:9)
	at generate.generate(PG_Model)(generate.mtl:0)
	at generate.generate(PG_Model)(generate.mtl:8)
	at generate.generate(PG_Model)(generate.mtl:5)

!ENTRY org.eclipse.acceleo.engine 2 2 2011-03-07 15:38:59.423
!MESSAGE Invalid loop iteration at line 91 in Module generatePBDDF for block for (exportedTypeDefs(block)). Last recorded value of self was org.eclipse.emf.ecore.impl.DynamicEObjectImpl@801d5b (eClass: org.eclipse.emf.ecore.impl.EClassImpl@793129 (name: PG_PrimBlock) (instanceClassName: null) (abstract: false, interface: false)).
!STACK 0
org.eclipse.acceleo.engine.AcceleoEvaluationException: Invalid loop iteration at line 91 in Module generatePBDDF for block for (exportedTypeDefs(block)). Last recorded value of self was org.eclipse.emf.ecore.impl.DynamicEObjectImpl@801d5b (eClass: org.eclipse.emf.ecore.impl.EClassImpl@793129 (name: PG_PrimBlock) (instanceClassName: null) (abstract: false, interface: false)).
	at generatePBDDF.genExportedStructs(PG_PrimBlock)(generatePBDDF.mtl:91)
	at generatePBDDF.genExportedStructs(PG_PrimBlock)(generatePBDDF.mtl:90)
	at generatePBDDF.generatePBDDF(PG_PrimBlock)(generatePBDDF.mtl:0)
	at generatePBDDF.generatePBDDF(PG_PrimBlock)(generatePBDDF.mtl:9)
	at generatePrimBlock.generateDDF(PG_PrimBlock)(generatePrimBlock.mtl:0)
	at generatePrimBlock.generateDDF(PG_PrimBlock)(generatePrimBlock.mtl:10)
	at generatePrimBlock.generateDDF(PG_PrimBlock)(generatePrimBlock.mtl:9)
	at generate.generate(PG_Model)(generate.mtl:0)
	at generate.generate(PG_Model)(generate.mtl:8)
	at generate.generate(PG_Model)(generate.mtl:5)

!ENTRY org.eclipse.acceleo.engine 2 2 2011-03-07 15:39:00.017
!MESSAGE Invalid result for expression let internaltypes : Sequence(PG_Type) = internalTypes(b) in let exportedtypes : Sequence(PG_Type) = exportedTypes(b) in let filteredInternalTypes : Sequence(PG_Type) = internaltypes->reject(t : PG_Type | exportedtypes->includes(t)) in filteredInternalTypes->select(temp12 : PG_Type | temp12.oclIsKindOf(pgwb_psm::pg_type::PG_UserDefinedType))->collect(temp13 : PG_Type | temp13.oclAsType(pgwb_psm::pg_type::PG_UserDefinedType)) at line 93 in Module helperPrimBlock for query internalTypeDefs(PG_PrimBlock). Last recorded value of self was org.eclipse.emf.ecore.impl.DynamicEObjectImpl@801d5b (eClass: org.eclipse.emf.ecore.impl.EClassImpl@793129 (name: PG_PrimBlock) (instanceClassName: null) (abstract: false, interface: false)).
!STACK 0
org.eclipse.acceleo.engine.AcceleoEvaluationException: Invalid result for expression let internaltypes : Sequence(PG_Type) = internalTypes(b) in let exportedtypes : Sequence(PG_Type) = exportedTypes(b) in let filteredInternalTypes : Sequence(PG_Type) = internaltypes->reject(t : PG_Type | exportedtypes->includes(t)) in filteredInternalTypes->select(temp12 : PG_Type | temp12.oclIsKindOf(pgwb_psm::pg_type::PG_UserDefinedType))->collect(temp13 : PG_Type | temp13.oclAsType(pgwb_psm::pg_type::PG_UserDefinedType)) at line 93 in Module helperPrimBlock for query internalTypeDefs(PG_PrimBlock). Last recorded value of self was org.eclipse.emf.ecore.impl.DynamicEObjectImpl@801d5b (eClass: org.eclipse.emf.ecore.impl.EClassImpl@793129 (name: PG_PrimBlock) (instanceClassName: null) (abstract: false, interface: false)).
	at generatePBIntH.generatePBIntH(PG_PrimBlock)(generatePBIntH.mtl:0)
	at generatePBIntH.generatePBIntH(PG_PrimBlock)(generatePBIntH.mtl:87)
	at generatePBIntH.generatePBIntH(PG_PrimBlock)(generatePBIntH.mtl:8)
	at generatePrimBlock.generateIntH(PG_PrimBlock)(generatePrimBlock.mtl:0)
	at generatePrimBlock.generateIntH(PG_PrimBlock)(generatePrimBlock.mtl:16)
	at generatePrimBlock.generateIntH(PG_PrimBlock)(generatePrimBlock.mtl:15)
	at generate.generate(PG_Model)(generate.mtl:0)
	at generate.generate(PG_Model)(generate.mtl:8)
	at generate.generate(PG_Model)(generate.mtl:5)

!ENTRY org.eclipse.acceleo.engine 2 2 2011-03-07 15:39:00.017
!MESSAGE Invalid loop iteration at line 87 in Module generatePBIntH for block for (internalTypeDefs(b)). Last recorded value of self was org.eclipse.emf.ecore.impl.DynamicEObjectImpl@801d5b (eClass: org.eclipse.emf.ecore.impl.EClassImpl@793129 (name: PG_PrimBlock) (instanceClassName: null) (abstract: false, interface: false)).
!STACK 0
org.eclipse.acceleo.engine.AcceleoEvaluationException: Invalid loop iteration at line 87 in Module generatePBIntH for block for (internalTypeDefs(b)). Last recorded value of self was org.eclipse.emf.ecore.impl.DynamicEObjectImpl@801d5b (eClass: org.eclipse.emf.ecore.impl.EClassImpl@793129 (name: PG_PrimBlock) (instanceClassName: null) (abstract: false, interface: false)).
	at generatePBIntH.generatePBIntH(PG_PrimBlock)(generatePBIntH.mtl:87)
	at generatePBIntH.generatePBIntH(PG_PrimBlock)(generatePBIntH.mtl:8)
	at generatePrimBlock.generateIntH(PG_PrimBlock)(generatePrimBlock.mtl:0)
	at generatePrimBlock.generateIntH(PG_PrimBlock)(generatePrimBlock.mtl:16)
	at generatePrimBlock.generateIntH(PG_PrimBlock)(generatePrimBlock.mtl:15)
	at generate.generate(PG_Model)(generate.mtl:0)
	at generate.generate(PG_Model)(generate.mtl:8)
	at generate.generate(PG_Model)(generate.mtl:5)
Previous Topic:[CompleteOCL]definition uses definition
Next Topic:IMP
Goto Forum:
  


Current Time: Thu Jul 24 04:34:23 EDT 2014

Powered by FUDForum. Page generated in 0.02443 seconds