Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
codeling
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
ADVERT
codeling
Commits
512b814b
Commit
512b814b
authored
Dec 18, 2017
by
Marco Konersmann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Removes unused code
parent
6ae40f44
Changes
35
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
0 additions
and
5155 deletions
+0
-5155
StateMachineTransformationTest.xtend
...chine/transformation/StateMachineTransformationTest.xtend
+0
-166
StateTransformationTest.xtend
...Statemachine/transformation/StateTransformationTest.xtend
+0
-159
TransitionsTransformationTest.xtend
...rmation/state_feature/TransitionsTransformationTest.xtend
+0
-83
StatesTransformationTest.xtend
...ation/statemachine_feature/StatesTransformationTest.xtend
+0
-293
.classpath
...ge Integration/examples/ase2017/mechanisms.ejb/.classpath
+0
-9
.gitignore
...ge Integration/examples/ase2017/mechanisms.ejb/.gitignore
+0
-3
.project
...uage Integration/examples/ase2017/mechanisms.ejb/.project
+0
-34
org.eclipse.jdt.core.prefs
...e2017/mechanisms.ejb/.settings/org.eclipse.jdt.core.prefs
+0
-8
MANIFEST.MF
...tion/examples/ase2017/mechanisms.ejb/META-INF/MANIFEST.MF
+0
-24
build.properties
...egration/examples/ase2017/mechanisms.ejb/build.properties
+0
-10
plugin.properties
...gration/examples/ase2017/mechanisms.ejb/plugin.properties
+0
-4
plugin.xml
...ge Integration/examples/ase2017/mechanisms.ejb/plugin.xml
+0
-17
BusinessOperation.java
...hanisms.ejb/src/main/generated/ejb/BusinessOperation.java
+0
-50
State.java
.../ase2017/mechanisms.ejb/src/main/generated/ejb/State.java
+0
-95
StateMachine.java
...7/mechanisms.ejb/src/main/generated/ejb/StateMachine.java
+0
-95
StatefulBean.java
...7/mechanisms.ejb/src/main/generated/ejb/StatefulBean.java
+0
-102
Transition.java
...017/mechanisms.ejb/src/main/generated/ejb/Transition.java
+0
-104
ejbFactory.java
...017/mechanisms.ejb/src/main/generated/ejb/ejbFactory.java
+0
-78
ejbPackage.java
...017/mechanisms.ejb/src/main/generated/ejb/ejbPackage.java
+0
-717
BusinessOperationImpl.java
...jb/src/main/generated/ejb/impl/BusinessOperationImpl.java
+0
-161
StateImpl.java
...mechanisms.ejb/src/main/generated/ejb/impl/StateImpl.java
+0
-279
StateMachineImpl.java
...sms.ejb/src/main/generated/ejb/impl/StateMachineImpl.java
+0
-278
StatefulBeanImpl.java
...sms.ejb/src/main/generated/ejb/impl/StatefulBeanImpl.java
+0
-290
TransitionImpl.java
...nisms.ejb/src/main/generated/ejb/impl/TransitionImpl.java
+0
-284
ejbFactoryImpl.java
...nisms.ejb/src/main/generated/ejb/impl/ejbFactoryImpl.java
+0
-143
ejbPackageImpl.java
...nisms.ejb/src/main/generated/ejb/impl/ejbPackageImpl.java
+0
-404
ejbAdapterFactory.java
...ms.ejb/src/main/generated/ejb/util/ejbAdapterFactory.java
+0
-195
ejbSwitch.java
...mechanisms.ejb/src/main/generated/ejb/util/ejbSwitch.java
+0
-198
StatefulBeanMechanism.xtend
...g/mechanisms/ejb/statefulbean/StatefulBeanMechanism.xtend
+0
-66
StatefulBeanTransformation.xtend
...hanisms/ejb/statefulbean/StatefulBeanTransformation.xtend
+0
-88
EJBReferenceMechanism.xtend
...ms/ejb/statefulbean/reference/EJBReferenceMechanism.xtend
+0
-66
EJBReferenceTransformation.xtend
...b/statefulbean/reference/EJBReferenceTransformation.xtend
+0
-121
ejbsm.aird
...ples/ase2017/mechanisms.ejb/src/main/resources/ejbsm.aird
+0
-476
ejbsm.ecore
...les/ase2017/mechanisms.ejb/src/main/resources/ejbsm.ecore
+0
-36
ejbsm.genmodel
.../ase2017/mechanisms.ejb/src/main/resources/ejbsm.genmodel
+0
-19
No files found.
Language Integration/examples/ase2017/ejbWithStateMachine.transformation.test/src/main/java/org/codeling/lang/ejbWithStatemachine/transformation/StateMachineTransformationTest.xtend
deleted
100644 → 0
View file @
6ae40f44
package
org
.
codeling
.
lang
.
ejbWithStatemachine
.
transformation
import
de
.
mkonersmann
.
advert
.
java
.
embed
.
JDTUtils
import
java
.
util
.
Arrays
import
org
.
codeling
.
lang
.
ejbWithStatemachine
.
mm
.
ejbWithSM
.
StateMachine
import
org
.
codeling
.
lang
.
ejbWithStatemachine
.
mm
.
ejbWithSM
.
ejbWithSMFactory
import
org
.
codeling
.
utils
.
IDRegistry
import
org
.
eclipse
.
jdt
.
core
.
IJavaProject
import
org
.
eclipse
.
jdt
.
core
.
IPackageFragment
import
org
.
junit
.
Test
import
static
org
.
junit
.
Assert
.*
class
StateMachineTransformationTest
{
@
Test
def
toModel
()
{
//
Prepare
val
testName
=
"toModel"
;
val
projectName
=
this
.
class
.
simpleName
+
"_"
+
testName
;
val
IJavaProject
project
=
JDTUtils
.
createSimpleProject
(
projectName
);
val
IPackageFragment
testPackage
=
project
.
getPackageFragmentRoots
().
get
(
0
).
createPackageFragment
(
projectName
,
true
,
null
);
val
contents
=
'''
package «projectName»;
import org.codeling.lang.ejbWithStatemachine.mm.StateMachine;
@StateMachine
public class MyStateMachine {
}'''
;
val
cu
=
testPackage
.
createCompilationUnit
(
"MyStateMachine.java"
,
contents
,
true
,
null
)
val
StateMachineTransformation
t
=
new
StateMachineTransformation
(
null
);
t
.
codeElement
=
cu
.
getType
(
"MyStateMachine"
);
t
.
parentCodeElement
=
testPackage
;
t
.
IDRegistry
=
new
IDRegistry
();
t
.
parentModelElement
=
ejbWithSMFactory
.
eINSTANCE
.
createStateMachine
();
//
Execute
val
StateMachine
s
=
t
.
transformToModel
();
//
Evaluate
assertNotNull
(
s
);
assertEquals
(
"MyStateMachine"
,
s
.
name
);
assertEquals
(
0
,
s
.
states
.
size
);
assertNull
(
s
.
initial
);
}
@
Test
def
deleteCodeFragments
()
{
//
Prepare
val
testName
=
"deleteCodeFragments"
;
val
projectName
=
this
.
class
.
simpleName
+
"_"
+
testName
;
val
IJavaProject
project
=
JDTUtils
.
createSimpleProject
(
projectName
);
val
IPackageFragment
testPackage
=
project
.
getPackageFragmentRoots
().
get
(
0
).
createPackageFragment
(
projectName
,
true
,
null
);
val
contents
=
'''
package «projectName»;
import org.codeling.lang.ejbWithStatemachine.mm.StateMachine;
@StateMachine
public class MyStateMachine {
}'''
;
val
cu
=
testPackage
.
createCompilationUnit
(
"MyStateMachine.java"
,
contents
,
true
,
null
)
val
StateMachine
modelElement
=
ejbWithSMFactory
.
eINSTANCE
.
createStateMachine
();
modelElement
.
name
=
"MyStateMachine"
;
val
StateMachineTransformation
t
=
new
StateMachineTransformation
(
null
);
t
.
codeElement
=
cu
.
getType
(
"MyStateMachine"
);
//
Execute
t
.
deleteCodeFragments
();
//
Evaluate
assertFalse
(
cu
.
exists
);
}
@
Test
def
createCodeFragments
()
{
//
Prepare
val
testName
=
"createCodeFragments"
;
val
projectName
=
this
.
class
.
simpleName
+
"_"
+
testName
;
val
IJavaProject
project
=
JDTUtils
.
createSimpleProject
(
projectName
);
val
IPackageFragment
testPackage
=
project
.
getPackageFragmentRoots
().
get
(
0
).
createPackageFragment
(
projectName
,
true
,
null
);
val
StateMachine
modelElement
=
ejbWithSMFactory
.
eINSTANCE
.
createStateMachine
();
modelElement
.
name
=
"MyStateMachine"
;
val
StateMachineTransformation
t
=
new
StateMachineTransformation
(
null
);
t
.
modelElement
=
modelElement
;
t
.
codeRoot
=
Arrays
.
asList
(
project
);
//
Execute
t
.
createCodeFragments
();
//
Evaluate
val
contents
=
'''
package «projectName»;
import org.codeling.lang.ejbWithStatemachine.mm.StateMachine;
@StateMachine
public class MyStateMachine {}'''
;
val
cu
=
testPackage
.
getCompilationUnit
(
"MyStateMachine.java"
);
assertTrue
(
cu
.
exists
());
assertEquals
(
contents
,
cu
.
source
);
}
@
Test
def
updateCodeFragments
()
{
//
Prepare
val
testName
=
"updateCodeFragments"
;
val
projectName
=
this
.
class
.
simpleName
+
"_"
+
testName
;
val
IJavaProject
project
=
JDTUtils
.
createSimpleProject
(
projectName
);
val
IPackageFragment
testPackage
=
project
.
getPackageFragmentRoots
().
get
(
0
).
createPackageFragment
(
projectName
,
true
,
null
);
val
contents
=
'''
package «projectName»;
import org.codeling.lang.ejbWithStatemachine.mm.StateMachine;
@StateMachine
public class MyStateMachine {
}'''
;
val
cu
=
testPackage
.
createCompilationUnit
(
"MyStateMachine.java"
,
contents
,
true
,
null
)
val
StateMachine
priorModelElement
=
ejbWithSMFactory
.
eINSTANCE
.
createStateMachine
();
priorModelElement
.
name
=
"MyStateMachine"
;
val
StateMachine
modelElement
=
ejbWithSMFactory
.
eINSTANCE
.
createStateMachine
();
modelElement
.
name
=
"MyNewStateMachine"
;
val
StateMachineTransformation
t
=
new
StateMachineTransformation
(
null
);
t
.
codeElement
=
cu
.
getType
(
"MyStateMachine"
);
t
.
priorModelElement
=
priorModelElement
;
t
.
modelElement
=
modelElement
;
//
Execute
t
.
updateCodeFragments
();
//
Evaluate
val
newCu
=
testPackage
.
getCompilationUnit
(
"MyNewStateMachine.java"
)
assertFalse
(
cu
.
exists
);
assertTrue
(
newCu
.
exists
);
val
newContents
=
'''
package «projectName»;
import org.codeling.lang.ejbWithStatemachine.mm.StateMachine;
@StateMachine
public class MyNewStateMachine {
}'''
;
assertEquals
(
newContents
,
newCu
.
source
);
}
}
Language Integration/examples/ase2017/ejbWithStateMachine.transformation.test/src/main/java/org/codeling/lang/ejbWithStatemachine/transformation/StateTransformationTest.xtend
deleted
100644 → 0
View file @
6ae40f44
package
org
.
codeling
.
lang
.
ejbWithStatemachine
.
transformation
import
de
.
mkonersmann
.
advert
.
java
.
embed
.
JDTUtils
import
java
.
util
.
Arrays
import
org
.
codeling
.
lang
.
ejbWithStatemachine
.
mm
.
ejbWithSM
.
State
import
org
.
codeling
.
lang
.
ejbWithStatemachine
.
mm
.
ejbWithSM
.
ejbWithSMFactory
import
org
.
codeling
.
utils
.
IDRegistry
import
org
.
eclipse
.
jdt
.
core
.
IJavaProject
import
org
.
eclipse
.
jdt
.
core
.
IPackageFragment
import
org
.
junit
.
Test
import
static
org
.
junit
.
Assert
.*
class
StateTransformationTest
{
@
Test
def
toModel
()
{
//
Prepare
val
testName
=
"toModel"
;
val
projectName
=
this
.
class
.
simpleName
+
"_"
+
testName
;
val
IJavaProject
project
=
JDTUtils
.
createSimpleProject
(
projectName
);
val
IPackageFragment
testPackage
=
project
.
getPackageFragmentRoots
().
get
(
0
).
createPackageFragment
(
projectName
,
true
,
null
);
val
contents
=
'''
package «projectName»;
import org.codeling.lang.ejbWithStatemachine.mm.State;
public class MyState implements State {
}'''
;
val
cu
=
testPackage
.
createCompilationUnit
(
"MyState.java"
,
contents
,
true
,
null
)
val
StateTransformation
t
=
new
StateTransformation
(
null
);
t
.
codeElement
=
cu
.
getType
(
"MyState"
);
t
.
parentCodeElement
=
testPackage
;
t
.
IDRegistry
=
new
IDRegistry
();
t
.
parentModelElement
=
ejbWithSMFactory
.
eINSTANCE
.
createStateMachine
();
//
Execute
val
State
s
=
t
.
transformToModel
();
//
Evaluate
assertNotNull
(
s
);
assertEquals
(
"MyState"
,
s
.
name
);
assertEquals
(
0
,
s
.
transition
.
size
);
}
@
Test
def
deleteCodeFragments
()
{
//
Prepare
val
testName
=
"deleteModelElement"
;
val
projectName
=
this
.
class
.
simpleName
+
"_"
+
testName
;
val
IJavaProject
project
=
JDTUtils
.
createSimpleProject
(
projectName
);
val
IPackageFragment
testPackage
=
project
.
getPackageFragmentRoots
().
get
(
0
).
createPackageFragment
(
projectName
,
true
,
null
);
val
contents
=
'''
package «projectName»;
import org.codeling.lang.ejbWithStatemachine.mm.State;
public class MyState implements State {
}'''
;
val
cu
=
testPackage
.
createCompilationUnit
(
"MyState.java"
,
contents
,
true
,
null
)
val
State
modelElement
=
ejbWithSMFactory
.
eINSTANCE
.
createState
();
modelElement
.
name
=
"MyState"
;
val
StateTransformation
t
=
new
StateTransformation
(
null
);
t
.
codeElement
=
cu
.
getType
(
"MyState"
);
//
Execute
t
.
deleteCodeFragments
();
//
Evaluate
assertFalse
(
cu
.
exists
);
}
@
Test
def
createCodeFragments
()
{
//
Prepare
val
testName
=
"createCodeFragments"
;
val
projectName
=
this
.
class
.
simpleName
+
"_"
+
testName
;
val
IJavaProject
project
=
JDTUtils
.
createSimpleProject
(
projectName
);
val
IPackageFragment
testPackage
=
project
.
getPackageFragmentRoots
().
get
(
0
).
createPackageFragment
(
projectName
,
true
,
null
);
val
State
modelElement
=
ejbWithSMFactory
.
eINSTANCE
.
createState
();
modelElement
.
name
=
"MyState"
;
val
StateTransformation
t
=
new
StateTransformation
(
null
);
t
.
modelElement
=
modelElement
;
t
.
codeRoot
=
Arrays
.
asList
(
project
);
//
Execute
t
.
createCodeFragments
();
//
Evaluate
val
contents
=
'''
package «projectName»;
import org.codeling.lang.ejbWithStatemachine.mm.State;
public class MyState implements State {}'''
;
val
cu
=
testPackage
.
getCompilationUnit
(
"MyState.java"
);
assertTrue
(
cu
.
exists
());
assertEquals
(
contents
,
cu
.
source
);
}
@
Test
def
updateCodeFragments
()
{
//
Prepare
val
testName
=
"updateCodeFragments"
;
val
projectName
=
this
.
class
.
simpleName
+
"_"
+
testName
;
val
IJavaProject
project
=
JDTUtils
.
createSimpleProject
(
projectName
);
val
IPackageFragment
testPackage
=
project
.
getPackageFragmentRoots
().
get
(
0
).
createPackageFragment
(
projectName
,
true
,
null
);
val
contents
=
'''
package «projectName»;
import org.codeling.lang.ejbWithStatemachine.mm.State;
public class MyState implements State {
}'''
;
val
cu
=
testPackage
.
createCompilationUnit
(
"MyState.java"
,
contents
,
true
,
null
)
val
State
priorModelElement
=
ejbWithSMFactory
.
eINSTANCE
.
createState
();
priorModelElement
.
name
=
"MyState"
;
val
State
modelElement
=
ejbWithSMFactory
.
eINSTANCE
.
createState
();
modelElement
.
name
=
"MyNewState"
;
val
StateTransformation
t
=
new
StateTransformation
(
null
);
t
.
codeElement
=
cu
.
getType
(
"MyState"
);
t
.
priorModelElement
=
priorModelElement
;
t
.
modelElement
=
modelElement
;
//
Execute
t
.
updateCodeFragments
();
//
Evaluate
val
newCu
=
testPackage
.
getCompilationUnit
(
"MyNewState.java"
)
assertFalse
(
cu
.
exists
);
assertTrue
(
newCu
.
exists
);
val
newContents
=
'''
package «projectName»;
import org.codeling.lang.ejbWithStatemachine.mm.State;
public class MyNewState implements State {
}'''
;
assertEquals
(
newContents
,
newCu
.
source
);
}
}
Language Integration/examples/ase2017/ejbWithStateMachine.transformation.test/src/main/java/org/codeling/lang/ejbWithStatemachine/transformation/state_feature/TransitionsTransformationTest.xtend
deleted
100644 → 0
View file @
6ae40f44
package
org
.
codeling
.
lang
.
ejbWithStatemachine
.
transformation
.
state_feature
import
de
.
mkonersmann
.
advert
.
java
.
embed
.
JDTUtils
import
org
.
codeling
.
lang
.
ejbWithStatemachine
.
mm
.
ejbWithSM
.
State
import
org
.
codeling
.
lang
.
ejbWithStatemachine
.
mm
.
ejbWithSM
.
Transition
import
org
.
codeling
.
lang
.
ejbWithStatemachine
.
mm
.
ejbWithSM
.
ejbWithSMFactory
import
org
.
codeling
.
lang
.
ejbWithStatemachine
.
transformation
.
TransitionTransformation
import
org
.
eclipse
.
jdt
.
core
.
IJavaProject
import
org
.
eclipse
.
jdt
.
core
.
IPackageFragment
import
org
.
junit
.
Test
import
static
org
.
junit
.
Assert
.*
class
TransitionsTransformationTest
{
@
Test
def
toModel
()
{
//
Prepare
val
testName
=
"toModel"
;
val
projectName
=
this
.
class
.
simpleName
+
"_"
+
testName
;
val
IJavaProject
project
=
JDTUtils
.
createSimpleProject
(
projectName
);
val
IPackageFragment
testPackage
=
project
.
getPackageFragmentRoots
().
get
(
0
).
createPackageFragment
(
projectName
,
true
,
null
);
val
contentsState
=
'''
package «projectName»;
import org.codeling.lang.ejbWithStatemachine.mm.State;
import org.codeling.lang.ejbWithStatemachine.mm.state_feature.Transition;
public class MyState implements State {
@Transition
public void doSomething(){
}
}'''
;
val
originStateCU
=
testPackage
.
createCompilationUnit
(
"MyState.java"
,
contentsState
,
true
,
null
);
val
State
state
=
ejbWithSMFactory
.
eINSTANCE
.
createState
;
state
.
name
=
"MyState"
val
TransitionsTransformation
t
=
new
TransitionsTransformation
(
null
);
t
.
parentCodeElement
=
originStateCU
.
getType
(
"MyState"
);
t
.
codeElement
=
originStateCU
.
getType
(
"MyState"
);
t
.
modelElement
=
state
;
//
For
reference
transformations
,
it
is
necessary
to
first
execute
the
target
's transformation
val TransitionTransformation target = new TransitionTransformation(t);
target.parentCodeElement = originStateCU.getType("MyState");
target.codeElement = t.codeElement.getMethod("doSomething", {
});
// Execute
val Transition transition = target.transformToModel;
// Containment Transformations need the targets to be set prior to transform to model
t.targetObjects = newArrayList(transition);
val State s = t.transformToModel;
// Evaluate
assertNotNull(s);
assertNotNull(transition);
assertNotNull(s.transition);
assertEquals(1, s.transition.size);
assertEquals("doSomething", s.transition.get(0).name);
assertSame(transition, s.transition.get(0));
}
@Test
def deleteCodeFragments() {
fail("Not implemented yet")
}
@Test
def createCodeFragments() {
fail("Not implemented yet")
}
@Test
def updateCodeFragments() {
fail("Not implemented yet")
}
}
Language Integration/examples/ase2017/ejbWithStateMachine.transformation.test/src/main/java/org/codeling/lang/ejbWithStatemachine/transformation/statemachine_feature/StatesTransformationTest.xtend
deleted
100644 → 0
View file @
6ae40f44
package
org
.
codeling
.
lang
.
ejbWithStatemachine
.
transformation
.
statemachine_feature
import
de
.
mkonersmann
.
advert
.
java
.
embed
.
JDTUtils
import
de
.
mkonersmann
.
advert
.
java
.
embed
.
transformation
.
AbstractModelCodeTransformation
import
java
.
util
.
LinkedList
import
java
.
util
.
List
import
org
.
codeling
.
lang
.
ejbWithStatemachine
.
mm
.
ejbWithSM
.
State
import
org
.
codeling
.
lang
.
ejbWithStatemachine
.
mm
.
ejbWithSM
.
StateMachine
import
org
.
codeling
.
lang
.
ejbWithStatemachine
.
mm
.
ejbWithSM
.
ejbWithSMFactory
import
org
.
codeling
.
lang
.
ejbWithStatemachine
.
mm
.
ejbWithSM
.
ejbWithSMPackage
import
org
.
codeling
.
lang
.
ejbWithStatemachine
.
transformation
.
StateTransformation
import
org
.
codeling
.
mechanisms
.
MechanismsMapping
import
org
.
codeling
.
mechanisms
.
classes
.
MarkerInterfaceMechanism
import
org
.
eclipse
.
core
.
resources
.
IResource
import
org
.
eclipse
.
jdt
.
core
.
IJavaProject
import
org
.
eclipse
.
jdt
.
core
.
IPackageFragment
import
org
.
junit
.
Test
import
static
org
.
junit
.
Assert
.*
class
StatesTransformationTest
{
@
Test
def
toModel
()
{
//
Prepare
val
testName
=
"toModel"
;
val
projectName
=
this
.
class
.
simpleName
+
"_"
+
testName
;
val
IJavaProject
project
=
JDTUtils
.
createSimpleProject
(
projectName
);
val
IPackageFragment
testPackage
=
project
.
getPackageFragmentRoots
().
get
(
0
).
createPackageFragment
(
projectName
,
true
,
null
);
val
contentsSM
=
'''
package «projectName»;
import org.codeling.lang.ejbWithStatemachine.mm.State;
import org.codeling.lang.ejbWithStatemachine.mm.StateMachine;
import org.codeling.lang.ejbWithStatemachine.mm.stateMachine_feature.States;
@StateMachine
public class MyStateMachine {
@States({MyState.class})
State[] states;
}'''
;
val
stateMachineCU
=
testPackage
.
createCompilationUnit
(
"MyStateMachine.java"
,
contentsSM
,
true
,
null
);
val
contentsState
=
'''
package «projectName»;
import org.codeling.lang.ejbWithStatemachine.mm.State;
public class MyState implements State {
}'''
;
testPackage
.
createCompilationUnit
(
"MyState.java"
,
contentsState
,
true
,
null
);
val
StatesTransformation
t
=
new
StatesTransformation
(
null
);
t
.
codeElement
=
stateMachineCU
.
getType
(
"MyStateMachine"
);
t
.
modelElement
=
ejbWithSMFactory
.
eINSTANCE
.
createStateMachine
();
//
Execute
val
List
<
State
>
targetStates
=
new
LinkedList
();
for
(
AbstractModelCodeTransformation
<?,?>
child
:
t
.
createChildTransformationsToModel
)
{
val
StateTransformation
stateTransformation
=
child
as
StateTransformation
;
val
State
targetState
=
stateTransformation
.
transformToModel
;
targetStates
.
add
(
targetState
);
}
t
.
targetObjects
=
targetStates
;
val
StateMachine
s
=
t
.
transformToModel
;
//
Evaluate
assertNotNull
(
s
);
assertNotNull
(
s
.
states
);
assertEquals
(
1
,
s
.
states
.
size
);
assertEquals
(
"MyState"
,
s
.
states
.
get
(
0
).
name
)
}
@
Test
def
deleteCodeFragments
()
{
//
Prepare
val
testName
=
"deleteCodeFragments"
;
val
projectName
=
this
.
class
.
simpleName
+
"_"
+
testName
;
val
IJavaProject
project
=
JDTUtils
.
createSimpleProject
(
projectName
);
val
IPackageFragment
testPackage
=
project
.
getPackageFragmentRoots
().
get
(
0
).
createPackageFragment
(
projectName
,
true
,
null
);
val
contentsSM
=
'''
package «projectName»;
import org.codeling.lang.ejbWithStatemachine.mm.State;
import org.codeling.lang.ejbWithStatemachine.mm.StateMachine;
import org.codeling.lang.ejbWithStatemachine.mm.stateMachine_feature.States;
@StateMachine
public class MyStateMachine {
@States({MyState.class})
State[] states;
}'''
;
val
stateMachineCU
=
testPackage
.
createCompilationUnit
(
"MyStateMachine.java"
,
contentsSM
,
true
,
null
);
val
contentsState
=
'''
package «projectName»;
import org.codeling.lang.ejbWithStatemachine.mm.State;
public class MyState implements State {
}'''
;
testPackage
.
createCompilationUnit
(
"MyState.java"
,
contentsState
,
true
,
null
);
val
StateMachine
myStateMachine
=
ejbWithSMFactory
.
eINSTANCE
.
createStateMachine
;
myStateMachine
.
name
=
"MyStateMachine"
;
val
State
myState
=
ejbWithSMFactory
.
eINSTANCE
.
createState
;
myState
.
name
=
"MyState"
;
myStateMachine
.
states
.
add
(
myState
);
val
StatesTransformation
t
=
new
StatesTransformation
(
null
);
t
.
parentCodeElement
=
stateMachineCU
.
getType
(
"MyStateMachine"
);
t
.
codeElement
=
stateMachineCU
.
getType
(
"MyStateMachine"
);
t
.
modelElement
=
myStateMachine
;
//
Execute
t
.
deleteCodeFragments
;
//
Evaluate
val
expectedCode
=
'''
package «projectName»;
import org.codeling.lang.ejbWithStatemachine.mm.State;
import org.codeling.lang.ejbWithStatemachine.mm.StateMachine;
import org.codeling.lang.ejbWithStatemachine.mm.stateMachine_feature.States;
@StateMachine
public class MyStateMachine {
}'''
assertEquals
(
expectedCode
,
stateMachineCU
.
source
)
}
@
Test
def
createCodeFragments
()
{
//
Prepare
val
testName
=
"createCodeFragments"
;
val
projectName
=
this
.
class
.
simpleName
+
"_"
+
testName
;
val
IJavaProject
project
=
JDTUtils
.
createSimpleProject
(
projectName
);
val
IPackageFragment
testPackage
=
project
.
getPackageFragmentRoots
().
get
(
0
).
createPackageFragment
(
projectName
,
true
,
null
);
val
contentsSM
=
'''
package «projectName»;
import org.codeling.lang.ejbWithStatemachine.mm.State;
import org.codeling.lang.ejbWithStatemachine.mm.StateMachine;
import org.codeling.lang.ejbWithStatemachine.mm.stateMachine_feature.States;
@StateMachine
public class MyStateMachine {
}'''
;
val
stateMachineCU
=
testPackage
.
createCompilationUnit
(
"MyStateMachine.java"
,
contentsSM
,
true
,
null
);
val
contentsState
=
'''
package «projectName»;
<