Code Monkey home page Code Monkey logo

txtuml's People

Contributors

ambrusthomas avatar ancsinadam avatar andor225 avatar antalist avatar berpeti avatar bszalay33 avatar budaimartin avatar csagataj2 avatar djnemeth avatar dobreffandras avatar fanni96 avatar gerazo avatar gregobalu avatar jtamas96 avatar kmate avatar kmozsi avatar kovacsgabor avatar lkopi avatar moocska avatar mykeesg avatar nagyandras95 avatar nboldi avatar orsidudas avatar petra95 avatar sallyhalal avatar szokolai-mate avatar tamsv avatar tbodorkos avatar zoltanturi89 avatar zsgyulavari avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

txtuml's Issues

Error: The method +(int) is undefined

When trying to compile the following lines of code in an effect:

int y = 3;
int x = y + 1;

Where numForward is an attribute in the current class. However it is also produced when local variables are used.

Check java reserved names

state final; is a perfect state declaration in XtxtUML, but the generated code is bogus:

public class final extends StateMachine.State {}

Illegal project name is allowed

The wizard to create a new txtUML project allows illegal project names. These result in errors upon the creation of the project.

Description Resource    Path    Location    Type
Bundle symbolic name contains illegal characters.  Legal characters are A-Z a-z 0-9 . _ -   MANIFEST.MF /proba a/META-INF   line 1  Plug-in Problem

UML2 export tests

Please review the export.uml2.tests and export.uml2.tests.models projects and update them according to the recent changes that were made to the model exportation. These changes affected even the expected output so some tests might have become out-of-date.

Collection support needed, confusing error message

Collection<PerformanceTestModel.A> a = this->PerformanceTestModel.AB.a;

This instruction produces the following error:

Type mismatch: cannot convert from Collection<PerformanceTestModel.A> to Collection<PerformanceTestModel.A>

Maybe a java type should not be used that way, but then what is the suggested method to deal with collection types?

Exceptions while trying to edit code

The edited code (in class A):

        private void createChild() {
            PerformanceTestModel.B b = new PerformanceTestModel.B();
            b.
        }

Tried to autocomplete after b.

424032 [Worker-10] ERROR org.eclipse.xtext.xbase.jvmmodel.JvmModelAssociator  - Error calling inferrer
java.lang.IllegalArgumentException: Unhandled parameter types: [hu.elte.txtuml.xtxtuml.xtxtUML.impl.TUAttributeOrOperationDeclarationPrefixImpl@16c2cfd (visibility: package)]
    at hu.elte.txtuml.xtxtuml.jvmmodel.XtxtUMLJvmModelInferrer.toJvmMember(XtxtUMLJvmModelInferrer.java:674)
    at hu.elte.txtuml.xtxtuml.jvmmodel.XtxtUMLJvmModelInferrer.lambda$3(XtxtUMLJvmModelInferrer.java:215)
    at hu.elte.txtuml.xtxtuml.jvmmodel.XtxtUMLJvmModelInferrer$$Lambda$2/464733325.apply(Unknown Source)
    at org.eclipse.xtext.xbase.jvmmodel.JvmModelAssociator$1.run(JvmModelAssociator.java:397)
    at org.eclipse.xtext.xbase.jvmmodel.JvmModelAssociator.installDerivedState(JvmModelAssociator.java:407)
    at org.eclipse.xtext.resource.DerivedStateAwareResource.installDerivedState(DerivedStateAwareResource.java:240)
    at org.eclipse.xtext.xbase.resource.BatchLinkableResource.getContents(BatchLinkableResource.java:148)
    at org.eclipse.xtext.xbase.typesystem.internal.LogicalContainerAwareBatchTypeResolver.getEntryPoints(LogicalContainerAwareBatchTypeResolver.java:44)
    at org.eclipse.xtext.xbase.typesystem.internal.DefaultBatchTypeResolver.getTypeResolver(DefaultBatchTypeResolver.java:63)
    at org.eclipse.xtext.xbase.typesystem.internal.CachingBatchTypeResolver$1.get(CachingBatchTypeResolver.java:49)
    at org.eclipse.xtext.xbase.typesystem.internal.CachingBatchTypeResolver$1.get(CachingBatchTypeResolver.java:1)
    at org.eclipse.xtext.util.OnChangeEvictingCache.get(OnChangeEvictingCache.java:77)
    at org.eclipse.xtext.xbase.typesystem.internal.CachingBatchTypeResolver.doResolveTypes(CachingBatchTypeResolver.java:46)
    at org.eclipse.xtext.xbase.typesystem.internal.AbstractBatchTypeResolver.resolveTypes(AbstractBatchTypeResolver.java:69)
    at org.eclipse.xtext.xbase.resource.BatchLinkingService.resolveBatched(BatchLinkingService.java:71)
    at org.eclipse.xtext.xbase.resource.BatchLinkableResource.resolveLazyCrossReferences(BatchLinkableResource.java:165)
    at org.eclipse.xtext.EcoreUtil2.resolveLazyCrossReferences(EcoreUtil2.java:528)
    at org.eclipse.xtext.ui.editor.reconciler.XtextDocumentReconcileStrategy.postParse(XtextDocumentReconcileStrategy.java:175)
    at org.eclipse.xtext.ui.editor.reconciler.XtextDocumentReconcileStrategy.doReconcile(XtextDocumentReconcileStrategy.java:153)
    at org.eclipse.xtext.ui.editor.reconciler.XtextDocumentReconcileStrategy.reconcile(XtextDocumentReconcileStrategy.java:67)
    at org.eclipse.xtext.ui.editor.reconciler.XtextReconciler.doRun(XtextReconciler.java:442)
    at org.eclipse.xtext.ui.editor.reconciler.XtextReconciler.access$3(XtextReconciler.java:422)
    at org.eclipse.xtext.ui.editor.reconciler.XtextReconciler$1.process(XtextReconciler.java:363)
    at org.eclipse.xtext.ui.editor.reconciler.XtextReconciler$1.process(XtextReconciler.java:1)
    at org.eclipse.xtext.util.concurrent.IUnitOfWork$Void.exec(IUnitOfWork.java:37)
    at org.eclipse.xtext.resource.OutdatedStateManager.exec(OutdatedStateManager.java:121)
    at org.eclipse.xtext.ui.editor.model.XtextDocument$XtextDocumentLocker.modify(XtextDocument.java:428)
    at org.eclipse.xtext.ui.editor.model.XtextDocument.internalModify(XtextDocument.java:162)
    at org.eclipse.xtext.ui.editor.reconciler.XtextReconciler.run(XtextReconciler.java:360)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
426593 [main] ERROR org.eclipse.xtext.xbase.jvmmodel.JvmModelAssociator  - Error calling inferrer
java.lang.IllegalArgumentException: Unhandled parameter types: [hu.elte.txtuml.xtxtuml.xtxtUML.impl.TUAttributeOrOperationDeclarationPrefixImpl@15b12bc5 (visibility: package)]
    at hu.elte.txtuml.xtxtuml.jvmmodel.XtxtUMLJvmModelInferrer.toJvmMember(XtxtUMLJvmModelInferrer.java:674)
    at hu.elte.txtuml.xtxtuml.jvmmodel.XtxtUMLJvmModelInferrer.lambda$3(XtxtUMLJvmModelInferrer.java:215)
    at hu.elte.txtuml.xtxtuml.jvmmodel.XtxtUMLJvmModelInferrer$$Lambda$2/464733325.apply(Unknown Source)
    at org.eclipse.xtext.xbase.jvmmodel.JvmModelAssociator$1.run(JvmModelAssociator.java:397)
    at org.eclipse.xtext.xbase.jvmmodel.JvmModelAssociator.installDerivedState(JvmModelAssociator.java:407)
    at org.eclipse.xtext.resource.DerivedStateAwareResource.installDerivedState(DerivedStateAwareResource.java:240)
    at org.eclipse.xtext.xbase.resource.BatchLinkableResource.getContents(BatchLinkableResource.java:148)
    at org.eclipse.xtext.xbase.typesystem.internal.LogicalContainerAwareBatchTypeResolver.getEntryPoints(LogicalContainerAwareBatchTypeResolver.java:44)
    at org.eclipse.xtext.xbase.typesystem.internal.DefaultBatchTypeResolver.getTypeResolver(DefaultBatchTypeResolver.java:63)
    at org.eclipse.xtext.xbase.typesystem.internal.CachingBatchTypeResolver$1.get(CachingBatchTypeResolver.java:49)
    at org.eclipse.xtext.xbase.typesystem.internal.CachingBatchTypeResolver$1.get(CachingBatchTypeResolver.java:1)
    at org.eclipse.xtext.util.OnChangeEvictingCache.get(OnChangeEvictingCache.java:77)
    at org.eclipse.xtext.xbase.typesystem.internal.CachingBatchTypeResolver.doResolveTypes(CachingBatchTypeResolver.java:46)
    at org.eclipse.xtext.xbase.typesystem.internal.AbstractBatchTypeResolver.resolveTypes(AbstractBatchTypeResolver.java:69)
    at org.eclipse.xtext.xbase.resource.BatchLinkingService.resolveBatched(BatchLinkingService.java:71)
    at org.eclipse.xtext.xbase.resource.BatchLinkableResource.resolveLazyCrossReferences(BatchLinkableResource.java:165)
    at org.eclipse.xtext.EcoreUtil2.resolveLazyCrossReferences(EcoreUtil2.java:528)
    at org.eclipse.xtext.ui.editor.reconciler.XtextDocumentReconcileStrategy.postParse(XtextDocumentReconcileStrategy.java:175)
    at org.eclipse.xtext.ui.editor.reconciler.XtextDocumentReconcileStrategy.doReconcile(XtextDocumentReconcileStrategy.java:153)
    at org.eclipse.xtext.ui.editor.reconciler.XtextDocumentReconcileStrategy.reconcile(XtextDocumentReconcileStrategy.java:67)
    at org.eclipse.xtext.ui.editor.reconciler.XtextReconciler.doRun(XtextReconciler.java:442)
    at org.eclipse.xtext.ui.editor.reconciler.XtextReconciler.access$3(XtextReconciler.java:422)
    at org.eclipse.xtext.ui.editor.reconciler.XtextReconciler$DocumentListener$1.exec(XtextReconciler.java:133)
    at org.eclipse.xtext.ui.editor.reconciler.XtextReconciler$DocumentListener$1.exec(XtextReconciler.java:1)
    at org.eclipse.xtext.resource.OutdatedStateManager.exec(OutdatedStateManager.java:121)
    at org.eclipse.xtext.ui.editor.model.XtextDocument$XtextDocumentLocker.modify(XtextDocument.java:428)
    at org.eclipse.xtext.ui.editor.model.XtextDocument$XtextDocumentLocker.process(XtextDocument.java:337)
    at org.eclipse.xtext.ui.editor.reconciler.XtextReconciler$DocumentListener.performNecessaryUpdates(XtextReconciler.java:130)
    at org.eclipse.xtext.ui.editor.model.XtextDocument.updateContentBeforeRead(XtextDocument.java:249)
    at org.eclipse.xtext.ui.editor.model.XtextDocument$XtextDocumentLocker.internalReadOnly(XtextDocument.java:518)
    at org.eclipse.xtext.ui.editor.model.XtextDocument$XtextDocumentLocker.priorityReadOnly(XtextDocument.java:485)
    at org.eclipse.xtext.ui.editor.model.XtextDocument.priorityReadOnly(XtextDocument.java:142)
    at org.eclipse.xtext.ui.editor.contentassist.RepeatedContentAssistProcessor.computeCompletionProposals(RepeatedContentAssistProcessor.java:111)
    at org.eclipse.xtext.ui.editor.contentassist.RepeatedContentAssistProcessor.computeCompletionProposals(RepeatedContentAssistProcessor.java:80)
    at org.eclipse.jface.text.contentassist.ContentAssistant$5.run(ContentAssistant.java:1904)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1902)
    at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573)
    at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570)
    at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499)
    at org.eclipse.jface.text.contentassist.ContentAssistant.showPossibleCompletions(ContentAssistant.java:1720)
    at org.eclipse.jface.text.source.SourceViewer.doOperation(SourceViewer.java:932)
    at org.eclipse.jface.text.source.projection.ProjectionViewer.doOperation(ProjectionViewer.java:1501)
    at org.eclipse.ui.texteditor.ContentAssistAction$1.run(ContentAssistAction.java:82)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.ui.texteditor.ContentAssistAction.run(ContentAssistAction.java:80)
    at org.eclipse.jface.action.Action.runWithEvent(Action.java:519)
    at org.eclipse.jface.commands.ActionHandler.execute(ActionHandler.java:122)
    at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90)
    at sun.reflect.GeneratedMethodAccessor116.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:247)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:229)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
    at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:149)
    at org.eclipse.core.commands.Command.executeWithChecks(Command.java:499)
    at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
    at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)
    at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:286)
    at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:507)
    at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:558)
    at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:378)
    at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.access$0(KeyBindingDispatcher.java:324)
    at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:86)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1262)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1060)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1070)
    at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1112)
    at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1108)
    at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1529)
    at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4722)
    at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:343)
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:4610)
    at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:339)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5023)
    at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
    at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2549)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1438)

Let it possible to omit 1 from association end multiplicity

Currently an association can be declared like this:

    association AB {
        public 1 A a;
        public * B b;
    }

It would be much more nicer to write it implicitely declaring a as single multiplicity:

    association AB {
        public A a;
        public *B b;
    }

Omitting 1 is not only forbidden, but produces an exception:

java.lang.NullPointerException
    at hu.elte.txtuml.xtxtuml.jvmmodel.XtxtUMLJvmModelInferrer.calculateApiSuperType(XtxtUMLJvmModelInferrer.java:519)
    at hu.elte.txtuml.xtxtuml.jvmmodel.XtxtUMLJvmModelInferrer.lambda$14(XtxtUMLJvmModelInferrer.java:452)
    at hu.elte.txtuml.xtxtuml.jvmmodel.XtxtUMLJvmModelInferrer$$Lambda$26/1656456005.apply(Unknown Source)
    at org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder.initializeSafely(JvmTypesBuilder.java:206)
    at org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder.toClass(JvmTypesBuilder.java:384)
    at org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder.toClass(JvmTypesBuilder.java:361)
    at hu.elte.txtuml.xtxtuml.jvmmodel.XtxtUMLJvmModelInferrer._toJvmMember(XtxtUMLJvmModelInferrer.java:455)
    at hu.elte.txtuml.xtxtuml.jvmmodel.XtxtUMLJvmModelInferrer.toJvmMember(XtxtUMLJvmModelInferrer.java:670)
    at hu.elte.txtuml.xtxtuml.jvmmodel.XtxtUMLJvmModelInferrer.lambda$5(XtxtUMLJvmModelInferrer.java:290)
    at hu.elte.txtuml.xtxtuml.jvmmodel.XtxtUMLJvmModelInferrer$$Lambda$25/500951252.apply(Unknown Source)
    at org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder.initializeSafely(JvmTypesBuilder.java:206)
    at org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder.toClass(JvmTypesBuilder.java:384)
    at org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder.toClass(JvmTypesBuilder.java:361)
    at hu.elte.txtuml.xtxtuml.jvmmodel.XtxtUMLJvmModelInferrer._toJvmMember(XtxtUMLJvmModelInferrer.java:294)
    at hu.elte.txtuml.xtxtuml.jvmmodel.XtxtUMLJvmModelInferrer.toJvmMember(XtxtUMLJvmModelInferrer.java:654)
    at hu.elte.txtuml.xtxtuml.jvmmodel.XtxtUMLJvmModelInferrer.lambda$0(XtxtUMLJvmModelInferrer.java:93)
    at hu.elte.txtuml.xtxtuml.jvmmodel.XtxtUMLJvmModelInferrer$$Lambda$1/1059378513.apply(Unknown Source)
    at org.eclipse.xtext.xbase.jvmmodel.JvmModelAssociator$1.run(JvmModelAssociator.java:397)
    at org.eclipse.xtext.xbase.jvmmodel.JvmModelAssociator.installDerivedState(JvmModelAssociator.java:407)
    at org.eclipse.xtext.resource.DerivedStateAwareResource.installDerivedState(DerivedStateAwareResource.java:240)
    at org.eclipse.xtext.xbase.resource.BatchLinkableResource.getContents(BatchLinkableResource.java:148)
    at org.eclipse.xtext.xbase.typesystem.internal.LogicalContainerAwareBatchTypeResolver.getEntryPoints(LogicalContainerAwareBatchTypeResolver.java:44)
    at org.eclipse.xtext.xbase.typesystem.internal.DefaultBatchTypeResolver.getTypeResolver(DefaultBatchTypeResolver.java:63)
    at org.eclipse.xtext.xbase.typesystem.internal.CachingBatchTypeResolver$1.get(CachingBatchTypeResolver.java:49)
    at org.eclipse.xtext.xbase.typesystem.internal.CachingBatchTypeResolver$1.get(CachingBatchTypeResolver.java:1)
    at org.eclipse.xtext.util.OnChangeEvictingCache.get(OnChangeEvictingCache.java:77)
    at org.eclipse.xtext.xbase.typesystem.internal.CachingBatchTypeResolver.doResolveTypes(CachingBatchTypeResolver.java:46)
    at org.eclipse.xtext.xbase.typesystem.internal.AbstractBatchTypeResolver.resolveTypes(AbstractBatchTypeResolver.java:69)
    at org.eclipse.xtext.xbase.resource.BatchLinkingService.resolveBatched(BatchLinkingService.java:71)
    at org.eclipse.xtext.xbase.resource.BatchLinkableResource.resolveLazyCrossReferences(BatchLinkableResource.java:165)
    at org.eclipse.xtext.EcoreUtil2.resolveLazyCrossReferences(EcoreUtil2.java:528)
    at org.eclipse.xtext.ui.editor.reconciler.XtextDocumentReconcileStrategy.postParse(XtextDocumentReconcileStrategy.java:175)
    at org.eclipse.xtext.ui.editor.reconciler.XtextDocumentReconcileStrategy.doReconcile(XtextDocumentReconcileStrategy.java:153)
    at org.eclipse.xtext.ui.editor.reconciler.XtextDocumentReconcileStrategy.reconcile(XtextDocumentReconcileStrategy.java:67)
    at org.eclipse.xtext.ui.editor.reconciler.XtextReconciler.doRun(XtextReconciler.java:442)
    at org.eclipse.xtext.ui.editor.reconciler.XtextReconciler.access$3(XtextReconciler.java:422)
    at org.eclipse.xtext.ui.editor.reconciler.XtextReconciler$1.process(XtextReconciler.java:363)
    at org.eclipse.xtext.ui.editor.reconciler.XtextReconciler$1.process(XtextReconciler.java:1)
    at org.eclipse.xtext.util.concurrent.IUnitOfWork$Void.exec(IUnitOfWork.java:37)
    at org.eclipse.xtext.resource.OutdatedStateManager.exec(OutdatedStateManager.java:121)
    at org.eclipse.xtext.ui.editor.model.XtextDocument$XtextDocumentLocker.modify(XtextDocument.java:428)
    at org.eclipse.xtext.ui.editor.model.XtextDocument.internalModify(XtextDocument.java:162)
    at org.eclipse.xtext.ui.editor.reconciler.XtextReconciler.run(XtextReconciler.java:360)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Transition names should be optional

In the declaration of a transition:

transition init_A1 {
    from init;
    to A2;
}

It should be beneficial to be able omit the name, it can be generated from the from and to declarations.
The name should be in readable format, if the transition goes from A to B it should be A_B
If there are multiple transitions from A to B they should be labeled A_B_n where n is a number based on the order of declarations.

Improve validations and completion for send statements

Disable explicitly sending null and boolean literals. Also disable sending to explicit target null and boolean literals. Values null, true and false should be removed from the code completion in the place of signal and also at the target.

Re-export of unchanged model

Diagram generation re-exports the UML model each time a diagram is generated. Re-export should only be done if the txtUML model has changed. Otherwise only the changed diagrams should be re-generated.
(The long-term goal is incremental transformation.)

Migrate to Mars

The Papyrus API has been changed compared to Luna, therefore the Papyrus diagram generation plugin needs to be adapted.

JtxtUML validation is incomplete

Complete the validation of the structural part of the JtxtUML models and then add validation rules for the action code as well.

Split models into more files?

It is inevitable to let JtxtUML models to be split into more files. So the only question that remains is how to do it.

For the validation and the UML2 export it is a necessity to maintain some connection between the files of a model as we need to decide which files are part of it and which are not. My proposal is to keep all the files of a model in a single Java package and its subpackages. It would also be a good idea to have a main class representing the model in the top package. The subpackages could represent packages of the model.

Cannot install without Moka

Use clean Eclipse Luna Java edition, try to install the txtUML update site generated from txtUML trunk as of 2015-10-14.
The install fails, because it cannot find Moka.

Cannot complete the install because one or more required items could not be found.
  Software being installed: txtUML 0.1.1.201510140920 (hu.elte.txtuml.feature.feature.group 0.1.1.201510140920)
  Missing requirement: txtUML Diagnostic Extensions 0.1.0.201510140920 (hu.elte.txtuml.diagnostics 0.1.0.201510140920) requires 'bundle org.eclipse.papyrus.moka.ui 0.0.0' but it could not be found
  Cannot satisfy dependency:
    From: txtUML 0.1.1.201510140920 (hu.elte.txtuml.feature.feature.group 0.1.1.201510140920)
    To: hu.elte.txtuml.diagnostics [0.1.0.201510140920]

Changing Action.create?

Action.create might be enhanced with the use of lambda expressions.

Current syntax (with an int and a boolean parameter):

A a = Action.create(A.class, 2, true);

New syntax would be:

A a = Action.create(A::new, 2, true);

Pros:

  • The creation of the new object would need no reflection and therefore it would be much faster.
  • The number and type of the constructor parameters could be checked at compile time.

Cons:

  • This change has to be applied to every level of our implementation.

NullPointerException on model export

The performance test model produces that. There is a validation error in the model, and there are invalid files, but the error is not caused by neither of them.

java.lang.NullPointerException
  java.lang.NullPointerException
    at hu.elte.txtuml.export.uml2.transform.exporters.expressions.ExpressionExporter.createCallOperationAction(ExpressionExporter.java:280)
    at hu.elte.txtuml.export.uml2.transform.exporters.expressions.OperatorExporter.export(OperatorExporter.java:33)
    at hu.elte.txtuml.export.uml2.transform.exporters.expressions.OperatorExporter.exportRaw(OperatorExporter.java:25)
    at hu.elte.txtuml.export.uml2.transform.exporters.expressions.ExpressionVisitor.visit(ExpressionVisitor.java:140)
    at org.eclipse.jdt.core.dom.InfixExpression.accept0(InfixExpression.java:365)
    at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711)
    at hu.elte.txtuml.export.uml2.transform.exporters.expressions.ExpressionExporter.export(ExpressionExporter.java:94)
    at hu.elte.txtuml.export.uml2.transform.exporters.controls.IfActionExporter.exportIfStatement(IfActionExporter.java:45)
    at hu.elte.txtuml.export.uml2.transform.visitors.BlockVisitor.visit(BlockVisitor.java:84)
    at org.eclipse.jdt.core.dom.IfStatement.accept0(IfStatement.java:187)
    at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711)
    at hu.elte.txtuml.export.uml2.transform.exporters.BlockExporter.lambda$0(BlockExporter.java:93)
    at hu.elte.txtuml.export.uml2.transform.exporters.BlockExporter$$Lambda$31/1922254984.accept(Unknown Source)
    at java.lang.Iterable.forEach(Iterable.java:75)
    at hu.elte.txtuml.export.uml2.transform.exporters.BlockExporter.export(BlockExporter.java:92)
    at hu.elte.txtuml.export.uml2.transform.exporters.BlockExporter.exportBody(BlockExporter.java:65)
    at hu.elte.txtuml.export.uml2.transform.exporters.MethodBodyExporter.exportMethodBody(MethodBodyExporter.java:46)
    at hu.elte.txtuml.export.uml2.transform.exporters.MethodBodyExporter.export(MethodBodyExporter.java:32)
    at hu.elte.txtuml.export.uml2.transform.exporters.MethodBodyExporter.export(MethodBodyExporter.java:25)
    at hu.elte.txtuml.export.uml2.transform.exporters.VertexExporter.exportStateEntryAction(VertexExporter.java:93)
    at hu.elte.txtuml.export.uml2.transform.exporters.VertexExporter.exportVertex(VertexExporter.java:47)
    at hu.elte.txtuml.export.uml2.transform.visitors.VertexVisitor.visit(VertexVisitor.java:29)
    at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:453)
    at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711)
    at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2782)
    at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:470)
    at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711)
    at hu.elte.txtuml.export.uml2.transform.exporters.RegionExporter.exportVertices(RegionExporter.java:28)
    at hu.elte.txtuml.export.uml2.transform.exporters.RegionExporter.exportRegion(RegionExporter.java:20)
    at hu.elte.txtuml.export.uml2.transform.exporters.ModelExporter.exportStateMachine(ModelExporter.java:316)
    at hu.elte.txtuml.export.uml2.transform.exporters.ModelExporter.lambda$2(ModelExporter.java:304)
    at hu.elte.txtuml.export.uml2.transform.exporters.ModelExporter$$Lambda$30/881901549.accept(Unknown Source)
    at java.util.HashMap.forEach(HashMap.java:1280)
    at hu.elte.txtuml.export.uml2.transform.exporters.ModelExporter.exportStateMachinesOfEveryClass(ModelExporter.java:302)
    at hu.elte.txtuml.export.uml2.transform.exporters.ModelExporter.exportModel(ModelExporter.java:181)
    at hu.elte.txtuml.export.uml2.UML2.exportModel(UML2.java:107)
    at hu.elte.txtuml.export.uml2.UML2.exportModel(UML2.java:58)
    at hu.elte.txtuml.export.ExportUtils.exportTxtUMLModelToUML2(ExportUtils.java:31)
    at hu.elte.txtuml.export.papyrus.wizardz.TxtUMLVisuzalizeWizard$1.run(TxtUMLVisuzalizeWizard.java:109)
    at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:466)
    at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:374)
    at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:527)
    at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:284)
    at org.eclipse.ui.internal.progress.ProgressManager.run(ProgressManager.java:1190)
    at org.eclipse.ui.internal.progress.ProgressManager$RunnableWithStatus.run(ProgressManager.java:1380)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.ui.internal.progress.ProgressManager$5.run(ProgressManager.java:1214)
    at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:187)
    at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:156)
    at org.eclipse.swt.widgets.Display.syncExec(Display.java:4734)
    at org.eclipse.ui.internal.progress.ProgressManager.runInUI(ProgressManager.java:1211)
    at hu.elte.txtuml.export.papyrus.wizardz.TxtUMLVisuzalizeWizard.performFinish(TxtUMLVisuzalizeWizard.java:89)
    at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:853)
    at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:438)
    at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:619)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
    at org.eclipse.jface.window.Window.runEventLoop(Window.java:832)
    at org.eclipse.jface.window.Window.open(Window.java:808)
    at hu.elte.txtuml.export.papyrus.handlers.TxtUMLVisualizeHandler.execute(TxtUMLVisualizeHandler.java:27)
    at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:294)
    at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:247)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:229)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
    at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:149)
    at org.eclipse.core.commands.Command.executeWithChecks(Command.java:499)
    at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
    at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)
    at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:825)
    at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.handleWidgetSelection(HandledContributionItem.java:701)
    at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.access$6(HandledContributionItem.java:685)
    at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem$4.handleEvent(HandledContributionItem.java:613)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1438)

Texts in the 'new txtUML model' wizard

model_wizard
Text change suggestions:

  • "Type name is empty" ==> "Model name is empty"
  • "Type of model" ==> "Model syntax"
  • "standard txtUML Model (Pure Java syntax)" ==> "JtxtUML (Java syntax)"
  • "XtxtUML Model (Custom modelling syntax)" ==> "XtxtUML (custom syntax)"

Object equality and inequality checks

The current support for object equality and inequality checks (the use of == and != operators on objects) in exported models was quickly made to avoid a NullPointerException during exportation. Please, review this and look for a better solution if possible.

Enhance XtxtUML formatting

Now the formatter emits a single line, and only wraps it when it is longer than 80 characters. Implement a custom formatter.

Action.create fails when the constructor has primitive parameters

The create action fails (returns null) when I give it a parameter of type int.
A a = Action.create(PerformanceTestModel_.A.class, 10000);

The constructor looks like this:

public A(final int numCycles) {
    //...
}

The workaround is to use Integer parameter instead of an int (but that is a validator error).

Also, when the create action fails it should raise an exception and stop the execution instead of silently returning a null that causes a NullPointerException later.

Use :: for qualified names instead of .

The same . operator means different things, so this->PerformanceTestModel.AB.a.selectAny() must be written like (this->PerformanceTestModel.AB.a).selectAny(), that is strange. It would be nice to use double colon instead in qualified names.

The code generated from effect wont compile

The xtxtuml code:

        state finalstate {
            entry {
                if ((this->PerformanceTestModel.AB.a).isEmpty()) {
                } else {
                    PerformanceTestModel.A a = (this->PerformanceTestModel.AB.a).selectAny();
                    unlink(PerformanceTestModel.AB.a, a, AB.b, PerformanceTestModel.B.this);
                    a.childTerminated();
                }
                delete(PerformanceTestModel.B.this);
            }
        }

The generated code:

    public class finalstate extends StateMachine.State {
      @Override
      public void entry() {
        Collection<PerformanceTestModel.A> _ralfassocnavexpression = this.assoc(PerformanceTestModel.AB.a.class);
        boolean _isEmpty = _ralfassocnavexpression.isEmpty();
        if (_isEmpty) {
        } else {
          Collection<PerformanceTestModel.A> _ralfassocnavexpression_1 = this.assoc(PerformanceTestModel.AB.a.class);
          PerformanceTestModel.A a = _ralfassocnavexpression_1.selectAny();
          Action.<PerformanceTestModel.A, PerformanceTestModel.B>unlink(PerformanceTestModel.AB.a.class, a, PerformanceTestModel.AB.b.class, B.this);
          a.childTerminated();
        }
        Action.delete(B.this);
      }
    }

Where this should be qualified but it isn't.

Unusable diagram generated in case of contradictory diagram definition

In case the diagram definition is contradictory or the algorithm cannot solve the problem of overlapping boxes, the resulting diagram contains all boxes on top of each other.
In this case, the problematic boxes should be placed at empty locations, eg. under the rest of the diagram.

Updating editor state has encountered a problem

This error came up after silent exceptions started to appear in bigger numbers.

I was editing this code fragment:

                PerformanceTestModel.Forward sig = getSignal(PerformanceTestModel.Forward);
//              if (sig.nf % 4 == 0) {
//                  createChild();
//              }
                if ((this->PerformanceTestModel.AB.b).isEmpty()) {
//                  
                } else {
                    send new Forward(0) to this->PerformanceTestModel.AB.b;
                }
Error updating dirty state editor
Missing type computation for expression type: RAlfAssocNavExpression / ExpressionTypeComputationState: ExpressionAwareStackedResolvedTypes: [
  expressionTypes:
    org.eclipse.xtext.xbase.impl.XNumberLiteralImpl@79c074f2 (value: 0) ->
      TypeData [expectation=ObservableTypeExpectation [expectation=int], type=int, flags=[UNCHECKED], returnType=false]
    org.eclipse.xtext.xbase.impl.XConstructorCallImplCustom@4fd6351d (invalidFeatureIssueCode: null, validFeature: false, explicitConstructorCall: true, anonymousClassConstructorCall: false) ->
      TypeData [expectation=NoExpectation [expectation=<no expectation>], type=Forward, flags=[UNCHECKED], returnType=false]
    hu.elte.txtuml.xtxtuml.xtxtUML.impl.RAlfSendSignalExpressionImpl@b8f3b0e ->
      TypeData [expectation=NoExpectation [expectation=<no expectation>], type=Forward, flags=[UNCHECKED], returnType=false]
  featureLinking:
    org.eclipse.xtext.xbase.impl.XConstructorCallImplCustom@4fd6351d (invalidFeatureIssueCode: null, validFeature: false, explicitConstructorCall: true, anonymousClassConstructorCall: false) -> ConstructorLinkingCandidate [Forward:PerformanceTestModel$Forward.Forward(int) [key: Forward(int)+]]
  parent: [
    parent: [
      expressionTypes:
        this ->
          TypeData [expectation=RootNoExpectation [expectation=<no expectation>], type=PerformanceTestModel$A$A1_A2, flags=[UNCHECKED], returnType=true]
          TypeData [expectation=RootNoExpectation [expectation=<no expectation>], type=PerformanceTestModel$A$A1_A2, flags=[UNCHECKED], returnType=false]
        hu.elte.txtuml.xtxtuml.xtxtUML.impl.RAlfAssocNavExpressionImpl@3e8d7f80 ->
          TypeData [expectation=TypeExpectation [expectation=Collection<PerformanceTestModel$B>], type=Collection<PerformanceTestModel$B>, flags=[UNCHECKED], returnType=false]
        <RAlfAssocNavExpressionImpl>.isEmpty() ->
          TypeData [expectation=TypeExpectation [expectation=boolean], type=boolean, flags=[UNCHECKED], returnType=false]
        {

} ->
          TypeData [expectation=NoExpectation [expectation=<no expectation>], type=null, flags=[UNCHECKED], returnType=false]
        org.eclipse.xtext.xbase.impl.XIfExpressionImpl@41cf7b8f ->
          TypeData [expectation=NoExpectation [expectation=<no expectation>], type=null, flags=[UNCHECKED], returnType=false]
      featureLinking:
        this -> FeatureLinkingCandidate [SimpleIdentifiableElementDescription[this]]
        <RAlfAssocNavExpressionImpl>.isEmpty() ->  [isEmpty:hu.elte.txtuml.api.model.Collection.isEmpty() [key: isEmpty()+]]
      propagatedTypes:
        org.eclipse.xtext.xbase.impl.XIfExpressionImpl@41cf7b8f
      parent: [
        types:
          var sig -> Forward
        expressionTypes:
          <implicit: PerformanceTestModel$A$A1_A2> ->
            TypeData [expectation=TypeExpectation [expectation=PerformanceTestModel$A$A1_A2], type=PerformanceTestModel$A$A1_A2, flags=[UNCHECKED], returnType=false]
          PerformanceTestModel ->
            TypeData [expectation=TypeExpectation [expectation=<void not allowed>], type=Class<PerformanceTestModel>, flags=[UNCHECKED], returnType=false]
          <XFeatureCallImplCustom>.Forward ->
            TypeData [expectation=ObservableTypeExpectation [expectation=Class<Forward>], type=Class<Forward>, flags=[UNCHECKED], returnType=false]
          getSignal(<XMemberFeatureCallImplCustom>) ->
            TypeData [expectation=TypeExpectation [expectation=Forward], type=Forward, flags=[UNCHECKED], returnType=false]
          var sig ->
            TypeData [expectation=NoExpectation [expectation=<no expectation>], type=void, flags=[UNCHECKED], returnType=false]
        featureLinking:
          <implicit: PerformanceTestModel$A$A1_A2> -> org.eclipse.xtext.xbase.typesystem.internal.ImplicitReceiver@36c3a476
          getSignal(<XMemberFeatureCallImplCustom>) -> FeatureLinkingCandidate [getSignal:hu.elte.txtuml.api.model.StateMachine$Transition.getSignal(java.lang.Class) [key: getSignal(java.lang.Class):implicitReceiver+]]
          PerformanceTestModel -> TypeLiteralLinkingCandidate [TypeLiteralDescription[PerformanceTestModel]]
          <XFeatureCallImplCustom>.Forward ->  [TypeLiteralDescription[Forward]]
        typeParameterHints:
          java.lang.Object@1a85de09 ->
            LightweightBoundTypeArgument [
  typeReference = Forward
  source = RESOLVED
  origin = Forward
  declaredVariance = INVARIANT
  actualVariance = INVARIANT
]
        parent: [
          types:
            JvmOperation: PerformanceTestModel$A$A1_A2.effect() (visibility: PUBLIC, simpleName: effect, identifier: PerformanceTestModel$A$A1_A2.effect(), deprecated: <unset>) (varArgs: false) (static: false, final: false, abstract: false, synchronized: false, default: false, native: false, strictFloatingPoint: false) -> void
          parent: [
            reassignedTypes:
              JvmGenericType: hu.elte.txtuml.api.model.StateMachine$Transition (visibility: PUBLIC, simpleName: Transition, identifier: hu.elte.txtuml.api.model.StateMachine$Transition, deprecated: false) (abstract: false, static: false, final: false, packageName: null) (interface: false, strictFloatingPoint: false, anonymous: false) -> StateMachine$Transition
              JvmGenericType: PerformanceTestModel$A$A1_A2 (visibility: PUBLIC, simpleName: A1_A2, identifier: PerformanceTestModel$A$A1_A2, deprecated: <unset>) (abstract: false, static: false, final: false, packageName: null) (interface: false, strictFloatingPoint: false, anonymous: false) -> PerformanceTestModel$A$A1_A2
            parent: [
              types:
                JvmField: PerformanceTestModel$A.remainingCycles (visibility: DEFAULT, simpleName: remainingCycles, identifier: PerformanceTestModel$A.remainingCycles, deprecated: <unset>) (static: false, final: false, volatile: false, transient: false, constant: <unset>, constantValue: null) -> int
                JvmField: PerformanceTestModel$A.numForward (visibility: DEFAULT, simpleName: numForward, identifier: PerformanceTestModel$A.numForward, deprecated: <unset>) (static: false, final: false, volatile: false, transient: false, constant: <unset>, constantValue: null) -> int
                JvmConstructor: PerformanceTestModel$A.A(int) (visibility: PUBLIC, simpleName: A, identifier: PerformanceTestModel$A.A(int), deprecated: <unset>) (varArgs: false) -> PerformanceTestModel$A
                JvmConstructor: PerformanceTestModel$A$init.init() (visibility: PUBLIC, simpleName: init, identifier: PerformanceTestModel$A$init.init(), deprecated: <unset>) (varArgs: false) -> PerformanceTestModel$A$init
                JvmOperation: PerformanceTestModel$A$A1.entry() (visibility: PUBLIC, simpleName: entry, identifier: PerformanceTestModel$A$A1.entry(), deprecated: <unset>) (varArgs: false) (static: false, final: false, abstract: false, synchronized: false, default: false, native: false, strictFloatingPoint: false) -> void
                JvmConstructor: PerformanceTestModel$A$A1.A1() (visibility: PUBLIC, simpleName: A1, identifier: PerformanceTestModel$A$A1.A1(), deprecated: <unset>) (varArgs: false) -> PerformanceTestModel$A$A1
                JvmConstructor: PerformanceTestModel$A$A2.A2() (visibility: PUBLIC, simpleName: A2, identifier: PerformanceTestModel$A$A2.A2(), deprecated: <unset>) (varArgs: false) -> PerformanceTestModel$A$A2
                JvmConstructor: PerformanceTestModel$A$A3.A3() (visibility: PUBLIC, simpleName: A3, identifier: PerformanceTestModel$A$A3.A3(), deprecated: <unset>) (varArgs: false) -> PerformanceTestModel$A$A3
                JvmConstructor: PerformanceTestModel$A$A4.A4() (visibility: PUBLIC, simpleName: A4, identifier: PerformanceTestModel$A$A4.A4(), deprecated: <unset>) (varArgs: false) -> PerformanceTestModel$A$A4
                JvmOperation: PerformanceTestModel$A.createChild() (visibility: PRIVATE, simpleName: createChild, identifier: PerformanceTestModel$A.createChild(), deprecated: <unset>) (varArgs: false) (static: false, final: false, abstract: false, synchronized: false, default: false, native: false, strictFloatingPoint: false) -> void
                var b -> PerformanceTestModel$B
                JvmOperation: PerformanceTestModel$A.childTerminated() (visibility: PRIVATE, simpleName: childTerminated, identifier: PerformanceTestModel$A.childTerminated(), deprecated: <unset>) (varArgs: false) (static: false, final: false, abstract: false, synchronized: false, default: false, native: false, strictFloatingPoint: false) -> void
                JvmOperation: PerformanceTestModel$A$init_A1.effect() (visibility: PUBLIC, simpleName: effect, identifier: PerformanceTestModel$A$init_A1.effect(), deprecated: <unset>) (varArgs: false) (static: false, final: false, abstract: false, synchronized: false, default: false, native: false, strictFloatingPoint: false) -> void
                JvmConstructor: PerformanceTestModel$A$init_A1.init_A1() (visibility: PUBLIC, simpleName: init_A1, identifier: PerformanceTestModel$A$init_A1.init_A1(), deprecated: <unset>) (varArgs: false) -> PerformanceTestModel$A$init_A1
              reassignedTypes:
                JvmGenericType: hu.elte.txtuml.api.model.ModelClass (visibility: PUBLIC, simpleName: ModelClass, identifier: hu.elte.txtuml.api.model.ModelClass, deprecated: false) (abstract: false, static: false, final: false, packageName: hu.elte.txtuml.api.model) (interface: false, strictFloatingPoint: false, anonymous: false) -> ModelClass
                JvmGenericType: PerformanceTestModel$A (visibility: PUBLIC, simpleName: A, identifier: PerformanceTestModel$A, deprecated: <unset>) (abstract: false, static: false, final: false, packageName: PerformanceTestModel) (interface: false, strictFloatingPoint: false, anonymous: false) -> PerformanceTestModel$A
              expressionTypes:
                <implicit: PerformanceTestModel$A> ->
                  TypeData [expectation=TypeExpectation [expectation=PerformanceTestModel$A], type=PerformanceTestModel$A, flags=[UNCHECKED], returnType=false]
                numCycles ->
                  TypeData [expectation=ObservableTypeExpectation [expectation=int], type=int, flags=[UNCHECKED], returnType=false]
                <null>.remainingCycles = <XFeatureCallImplCustom> ->
                  TypeData [expectation=NoExpectation [expectation=<no expectation>], type=int, flags=[UNCHECKED], returnType=false]
                <implicit: PerformanceTestModel$A> ->
                  TypeData [expectation=TypeExpectation [expectation=PerformanceTestModel$A], type=PerformanceTestModel$A, flags=[UNCHECKED], returnType=false]
                org.eclipse.xtext.xbase.impl.XNumberLiteralImpl@419fe75d (value: 0) ->
                  TypeData [expectation=ObservableTypeExpectation [expectation=int], type=int, flags=[UNCHECKED], returnType=false]
                <null>.numForward = <XNumberLiteralImpl> ->
                  TypeData [expectation=NoExpectation [expectation=<no expectation>], type=int, flags=[UNCHECKED], returnType=false]
                {
  <null>.remainingCycles = <XFeatureCallImplCustom>
  <null>.numForward = <XNumberLiteralImpl>
} ->
                  TypeData [expectation=RootTypeExpectation [expectation=void], type=void, flags=[SUCCESS, CHECKED], returnType=true]
                  TypeData [expectation=RootTypeExpectation [expectation=void], type=void, flags=[SUCCESS, CHECKED], returnType=false]
                {

} ->
                  TypeData [expectation=RootTypeExpectation [expectation=void], type=void, flags=[SUCCESS, CHECKED], returnType=true]
                  TypeData [expectation=RootTypeExpectation [expectation=void], type=void, flags=[SUCCESS, CHECKED], returnType=false]
                org.eclipse.xtext.xbase.impl.XConstructorCallImplCustom@3d9d2bd3 (invalidFeatureIssueCode: null, validFeature: false, explicitConstructorCall: true, anonymousClassConstructorCall: false) ->
                  TypeData [expectation=TypeExpectation [expectation=PerformanceTestModel$B], type=PerformanceTestModel$B, flags=[UNCHECKED], returnType=false]
                var b ->
                  TypeData [expectation=NoExpectation [expectation=<no expectation>], type=void, flags=[UNCHECKED], returnType=false]
                {
  var b
} ->
                  TypeData [expectation=RootTypeExpectation [expectation=void], type=void, flags=[SUCCESS, CHECKED], returnType=true]
                  TypeData [expectation=RootTypeExpectation [expectation=void], type=void, flags=[SUCCESS, CHECKED], returnType=false]
                org.eclipse.xtext.xbase.impl.XConstructorCallImplCustom@84135aa (invalidFeatureIssueCode: null, validFeature: false, explicitConstructorCall: true, anonymousClassConstructorCall: false) ->
                  TypeData [expectation=NoExpectation [expectation=<no expectation>], type=Backward, flags=[UNCHECKED], returnType=false]
                hu.elte.txtuml.xtxtuml.xtxtUML.impl.RAlfSendSignalExpressionImpl@4c7c1651 ->
                  TypeData [expectation=NoExpectation [expectation=<no expectation>], type=ModelElement, flags=[UNCHECKED, MERGED], returnType=true]
                  TypeData [expectation=NoExpectation [expectation=<no expectation>], type=ModelElement, flags=[UNCHECKED, MERGED], returnType=false]
                this ->
                  TypeData [expectation=NoExpectation [expectation=<no expectation>], type=PerformanceTestModel$A, flags=[UNCHECKED], returnType=false]
                {
  hu.elte.txtuml.xtxtuml.xtxtUML.impl.RAlfSendSignalExpressionImpl@4c7c1651
} ->
                  TypeData [expectation=RootTypeExpectation [expectation=void], type=void, flags=[SUCCESS, CHECKED], returnType=true]
                  TypeData [expectation=RootTypeExpectation [expectation=void], type=void, flags=[SUCCESS, CHECKED], returnType=false]
                <implicit: PerformanceTestModel$A> ->
                  TypeData [expectation=TypeExpectation [expectation=PerformanceTestModel$A], type=PerformanceTestModel$A, flags=[UNCHECKED], returnType=false]
                numForward ->
                  TypeData [expectation=ObservableTypeExpectation [expectation=int], type=int, flags=[UNCHECKED], returnType=false]
                org.eclipse.xtext.xbase.impl.XConstructorCallImplCustom@ad30ea0 (invalidFeatureIssueCode: null, validFeature: false, explicitConstructorCall: true, anonymousClassConstructorCall: false) ->
                  TypeData [expectation=NoExpectation [expectation=<no expectation>], type=Forward, flags=[UNCHECKED], returnType=false]
                hu.elte.txtuml.xtxtuml.xtxtUML.impl.RAlfSendSignalExpressionImpl@4eef1c52 ->
                  TypeData [expectation=NoExpectation [expectation=<no expectation>], type=ModelElement, flags=[UNCHECKED, MERGED], returnType=true]
                  TypeData [expectation=NoExpectation [expectation=<no expectation>], type=ModelElement, flags=[UNCHECKED, MERGED], returnType=false]
                PerformanceTestModel ->
                  TypeData [expectation=TypeExpectation [expectation=<void not allowed>], type=Class<PerformanceTestModel>, flags=[UNCHECKED], returnType=false]
                <XFeatureCallImplCustom>.A ->
                  TypeData [expectation=TypeExpectation [expectation=<void not allowed>], type=Class<PerformanceTestModel$A>, flags=[UNCHECKED], returnType=false]
                <XMemberFeatureCallImplCustom>.this ->
                  TypeData [expectation=NoExpectation [expectation=<no expectation>], type=PerformanceTestModel$A, flags=[UNCHECKED], returnType=false]
                {
  hu.elte.txtuml.xtxtuml.xtxtUML.impl.RAlfSendSignalExpressionImpl@4eef1c52
} ->
                  TypeData [expectation=RootTypeExpectation [expectation=void], type=void, flags=[SUCCESS, CHECKED], returnType=true]
                  TypeData [expectation=RootTypeExpectation [expectation=void], type=void, flags=[SUCCESS, CHECKED], returnType=false]
              featureLinking:
                <implicit: PerformanceTestModel$A> -> org.eclipse.xtext.xbase.typesystem.internal.ImplicitReceiver@198b51b7
                <null>.remainingCycles = <XFeatureCallImplCustom> -> FeatureLinkingCandidate [remainingCycles:PerformanceTestModel$A.remainingCycles [key: remainingCycles:implicitReceiver+]]
                numCycles -> FeatureLinkingCandidate [SimpleIdentifiableElementDescription[numCycles]]
                <implicit: PerformanceTestModel$A> -> org.eclipse.xtext.xbase.typesystem.internal.ImplicitReceiver@6a867ba4
                <null>.numForward = <XNumberLiteralImpl> -> FeatureLinkingCandidate [numForward:PerformanceTestModel$A.numForward [key: numForward:implicitReceiver+]]
                org.eclipse.xtext.xbase.impl.XConstructorCallImplCustom@3d9d2bd3 (invalidFeatureIssueCode: null, validFeature: false, explicitConstructorCall: true, anonymousClassConstructorCall: false) -> ConstructorLinkingCandidate [PerformanceTestModel.B:PerformanceTestModel$B.B() [key: B()+]]
                org.eclipse.xtext.xbase.impl.XConstructorCallImplCustom@84135aa (invalidFeatureIssueCode: null, validFeature: false, explicitConstructorCall: true, anonymousClassConstructorCall: false) -> ConstructorLinkingCandidate [Backward:PerformanceTestModel$Backward.Backward() [key: Backward()+]]
                this -> FeatureLinkingCandidate [SimpleIdentifiableElementDescription[this]]
                org.eclipse.xtext.xbase.impl.XConstructorCallImplCustom@ad30ea0 (invalidFeatureIssueCode: null, validFeature: false, explicitConstructorCall: true, anonymousClassConstructorCall: false) -> ConstructorLinkingCandidate [Forward:PerformanceTestModel$Forward.Forward(int) [key: Forward(int)+]]
                <implicit: PerformanceTestModel$A> -> org.eclipse.xtext.xbase.typesystem.internal.ImplicitReceiver@414d9296
                numForward -> FeatureLinkingCandidate [numForward:PerformanceTestModel$A.numForward [key: numForward:implicitReceiver+]]
                PerformanceTestModel -> TypeLiteralLinkingCandidate [TypeLiteralDescription[PerformanceTestModel]]
                <XFeatureCallImplCustom>.A ->  [TypeLiteralDescription[A]]
                <XMemberFeatureCallImplCustom>.this ->  [this:PerformanceTestModel$A [key: A+qualifiedThis]]
              parent: [
                types:
                  JvmOperation: PerformanceTestModel$Test.test() (visibility: PUBLIC, simpleName: test, identifier: PerformanceTestModel$Test.test(), deprecated: <unset>) (varArgs: false) (static: false, final: false, abstract: false, synchronized: false, default: false, native: false, strictFloatingPoint: false) -> void
                  JvmConstructor: PerformanceTestModel$Test.Test() (visibility: PUBLIC, simpleName: Test, identifier: PerformanceTestModel$Test.Test(), deprecated: <unset>) (varArgs: false) -> PerformanceTestModel$Test
                reassignedTypes:
                  JvmGenericType: hu.elte.txtuml.api.model.Model (visibility: PUBLIC, simpleName: Model, identifier: hu.elte.txtuml.api.model.Model, deprecated: false) (abstract: false, static: false, final: false, packageName: hu.elte.txtuml.api.model) (interface: false, strictFloatingPoint: false, anonymous: false) -> Model
                  JvmGenericType: PerformanceTestModel (visibility: PUBLIC, simpleName: PerformanceTestModel, identifier: PerformanceTestModel, deprecated: <unset>) (abstract: false, static: false, final: false, packageName: null) (interface: false, strictFloatingPoint: false, anonymous: false) -> PerformanceTestModel
                expressionTypes:
                  org.eclipse.xtext.xbase.impl.XNumberLiteralImpl@2745eab6 (value: 10000) ->
                    TypeData [expectation=ObservableTypeExpectation [expectation=int], type=int, flags=[UNCHECKED], returnType=false]
                  org.eclipse.xtext.xbase.impl.XConstructorCallImplCustom@9df263b (invalidFeatureIssueCode: null, validFeature: false, explicitConstructorCall: true, anonymousClassConstructorCall: false) ->
                    TypeData [expectation=NoExpectation [expectation=<no expectation>], type=PerformanceTestModel$A, flags=[UNCHECKED], returnType=false]
                  {
  org.eclipse.xtext.xbase.impl.XConstructorCallImplCustom@9df263b (invalidFeatureIssueCode: null, validFeature: false, explicitConstructorCall: true, anonymousClassConstructorCall: false)
} ->
                    TypeData [expectation=RootTypeExpectation [expectation=void], type=void, flags=[SUCCESS, CHECKED], returnType=true]
                    TypeData [expectation=RootTypeExpectation [expectation=void], type=void, flags=[SUCCESS, CHECKED], returnType=false]
                featureLinking:
                  org.eclipse.xtext.xbase.impl.XConstructorCallImplCustom@9df263b (invalidFeatureIssueCode: null, validFeature: false, explicitConstructorCall: true, anonymousClassConstructorCall: false) -> ConstructorLinkingCandidate [A:PerformanceTestModel$A.A(int) [key: A(int)+]]
                parent: []
              ]
            ]
          ]
        ]
      ]
    ]
  ]
]

Overlapping phantom boxes

If more than one phantom boxes are overlapping, an error message is shown. The algorithm should allow phantoms to overlap with any boxes, including phantoms and visible boxes too.
overlap_phantom_error

Misplaced open curly brace

When creating a new JtxtUML/XtxtUML model, the open curly brace of the model is not separated with a space.

class a extends Model{

}
model a{

}

Opening .xtxtuml file fails

Using an installed version of trunk as of 2015.10.14.
When creating a new XtxtUML model (either from the wizard or by creating a new file with .xtxtuml extension) the following error and exceptions are produced:
xtxtuml_model_creation_error

org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: hu/elte/txtuml/xtxtuml/XtxtUMLRuntimeModule
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:62)
    at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:888)
    at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:869)
    at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:120)
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:337)
    at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:258)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:104)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:73)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:55)
    at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:127)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:983)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:662)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
    at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1246)
    at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer$1.handleEvent(LazyStackRenderer.java:69)
    at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:40)
    at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:187)
    at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:156)
    at org.eclipse.swt.widgets.Display.syncExec(Display.java:4734)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:218)
    at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:36)
    at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:197)
    at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197)
    at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
    at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135)
    at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78)
    at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39)
    at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:81)
    at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:59)
    at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374)
    at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:171)
    at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:488)
    at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:454)
    at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:705)
    at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:392)
    at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1145)
    at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3210)
    at org.eclipse.ui.internal.WorkbenchPage.access$23(WorkbenchPage.java:3125)
    at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:3107)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3102)
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3066)
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3047)
    at org.eclipse.ui.ide.IDE.openEditor(IDE.java:573)
    at hu.elte.txtuml.project.wizards.TxtUMLModelFileCreatorWizard.performFinish(TxtUMLModelFileCreatorWizard.java:42)
    at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:853)
    at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:438)
    at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:619)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
    at org.eclipse.jface.window.Window.runEventLoop(Window.java:832)
    at org.eclipse.jface.window.Window.open(Window.java:808)
    at org.eclipse.ui.internal.handlers.WizardHandler$New.executeHandler(WizardHandler.java:269)
    at org.eclipse.ui.internal.handlers.WizardHandler.execute(WizardHandler.java:290)
    at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:294)
    at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:247)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:229)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
    at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:149)
    at org.eclipse.core.commands.Command.executeWithChecks(Command.java:499)
    at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
    at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)
    at org.eclipse.ui.internal.handlers.LegacyHandlerService.executeCommand(LegacyHandlerService.java:343)
    at org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:159)
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:595)
    at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:511)
    at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:420)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1438)
Caused by: java.lang.NoClassDefFoundError: hu/elte/txtuml/xtxtuml/XtxtUMLRuntimeModule
    at hu.elte.txtuml.xtxtuml.ui.internal.XtxtUMLActivator.getRuntimeModule(XtxtUMLActivator.java:77)
    at hu.elte.txtuml.xtxtuml.ui.internal.XtxtUMLActivator.createInjector(XtxtUMLActivator.java:63)
    at hu.elte.txtuml.xtxtuml.ui.internal.XtxtUMLActivator.getInjector(XtxtUMLActivator.java:55)
    at hu.elte.txtuml.xtxtuml.ui.XtxtUMLExecutableExtensionFactory.getInjector(XtxtUMLExecutableExtensionFactory.java:26)
    at org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory.create(AbstractGuiceAwareExecutableExtensionFactory.java:49)
    at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:262)
    at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
    at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:285)
    at org.eclipse.ui.internal.registry.EditorDescriptor.createEditor(EditorDescriptor.java:235)
    at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:349)
    at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPart(CompatibilityPart.java:265)
    at org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor.createPart(CompatibilityEditor.java:63)
    at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:303)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
    ... 110 more

java.lang.NoClassDefFoundError: hu/elte/txtuml/xtxtuml/XtxtUMLRuntimeModule
at hu.elte.txtuml.xtxtuml.ui.internal.XtxtUMLActivator.getRuntimeModule(XtxtUMLActivator.java:77)
at hu.elte.txtuml.xtxtuml.ui.internal.XtxtUMLActivator.createInjector(XtxtUMLActivator.java:63)
at hu.elte.txtuml.xtxtuml.ui.internal.XtxtUMLActivator.getInjector(XtxtUMLActivator.java:55)
at hu.elte.txtuml.xtxtuml.ui.XtxtUMLExecutableExtensionFactory.getInjector(XtxtUMLExecutableExtensionFactory.java:26)
at org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory.create(AbstractGuiceAwareExecutableExtensionFactory.java:49)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:262)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:285)
at org.eclipse.ui.internal.registry.EditorDescriptor.getEditorMatchingStrategy(EditorDescriptor.java:638)
at org.eclipse.ui.internal.WorkbenchPage.checkEditor(WorkbenchPage.java:2312)
at org.eclipse.ui.internal.WorkbenchPage.findEditors(WorkbenchPage.java:2282)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3160)
at org.eclipse.ui.internal.WorkbenchPage.access$23(WorkbenchPage.java:3125)
at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:3107)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3102)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3066)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3056)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:541)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:500)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:360)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:167)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:268)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:233)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:275)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:251)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.handleOpen(PackageExplorerActionGroup.java:376)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$4.open(PackageExplorerPart.java:538)
at org.eclipse.ui.OpenAndLinkWithEditorHelper$InternalListener.open(OpenAndLinkWithEditorHelper.java:48)
at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:853)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:178)
at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:850)
at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1142)
at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1249)
at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:278)
at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:272)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:313)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
at org.eclipse.equinox.launcher.Main.main(Main.java:1438)


Destructor support?

ModelClass should contain a destroy method that is automatically called when the object is destroyed with Action.delete.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.