Skip to content
GitLab
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
TDL Open Source
TOP IDE
Compare revisions
08a0eefefc558af548408549436c60333d680e48...18898793969983390c5ffcb1652c693be8a20942
Commits (2)
+ changed objectives and references to strings
· b58c73d1
Philip Makedonski
authored
Jun 30, 2020
b58c73d1
+ refined tplan2 formatter
· 18898793
Philip Makedonski
authored
Jun 30, 2020
18898793
Hide whitespace changes
Inline
Side-by-side
plugins/org.etsi.mts.tdl.TPLan2/src/org/etsi/mts/tdl/TPLan2.xtext
View file @
18898793
...
...
@@ -147,8 +147,8 @@ StructuredTestObjective returns to::StructuredTestObjective:
'Test Purpose'
'{'
'TP Id' name=Identifier
'Test objective' description=
Identifier
('Reference' objectiveURI+=
Identifier
(',' objectiveURI+=
Identifier
)*)?
'Test objective' description=
STRING
('Reference' objectiveURI+=
STRING
(',' objectiveURI+=
STRING
)*)?
('Config Id' configuration=[tdl::TestConfiguration|Identifier])?
('PICS Selection' picsReference+=FirstPICSReference (picsReference+=PICSReference)*)?
(initialConditions=InitialConditions)?
...
...
plugins/org.etsi.mts.tdl.TPLan2/src/org/etsi/mts/tdl/formatting2/TPLan2Formatter.xtend
View file @
18898793
...
...
@@ -11,6 +11,22 @@ import org.etsi.mts.tdl.ElementImport
import
org
.
etsi
.
mts
.
tdl
.
PackageableElement
import
org
.
etsi
.
mts
.
tdl
.
services
.
TPLan2GrammarAccess
import
org
.
etsi
.
mts
.
tdl
.
structuredobjectives
.
PICS
import
org
.
etsi
.
mts
.
tdl
.
TestConfiguration
import
org
.
etsi
.
mts
.
tdl
.
ComponentInstance
import
org
.
etsi
.
mts
.
tdl
.
Connection
import
org
.
etsi
.
mts
.
tdl
.
Element
import
org
.
etsi
.
mts
.
tdl
.
Annotation
import
org
.
etsi
.
mts
.
tdl
.
tdlPackage
import
org
.
eclipse
.
xtext
.
formatting2
.
regionaccess
.
ISemanticRegionsFinder
import
org
.
etsi
.
mts
.
tdl
.
structuredobjectives
.
StructuredTestObjective
import
org
.
eclipse
.
xtext
.
xbase
.
formatting2
.
XbaseFormatter
import
static
org
.
etsi
.
mts
.
tdl
.
structuredobjectives
.
StructuredObjectivesPackage
.
Literals
.*
import
static
org
.
etsi
.
mts
.
tdl
.
tdlPackage
.
Literals
.*
import
org
.
etsi
.
mts
.
tdl
.
structuredobjectives
.
ExpectedBehaviour
import
org
.
etsi
.
mts
.
tdl
.
structuredobjectives
.
EventSequence
import
org
.
etsi
.
mts
.
tdl
.
structuredobjectives
.
EventOccurrence
import
org
.
etsi
.
mts
.
tdl
.
structuredobjectives
.
Value
import
org
.
etsi
.
mts
.
tdl
.
structuredobjectives
.
EventOccurrenceSpecification
class
TPLan2Formatter
extends
AbstractFormatter2
{
...
...
@@ -18,17 +34,151 @@ class TPLan2Formatter extends AbstractFormatter2 {
def
dispatch
void
format
(
org
.
etsi
.
mts
.
tdl
.
Package
_package
,
extension
IFormattableDocument
document
)
{
//
TODO
:
format
HiddenRegions
around
keywords
,
attributes
,
cross
references
,
etc
.
interior
(
_package
.
regionFor
.
keyword
(
'Domain'
).
prepend
[
newLine
],
_package
.
regionFor
.
keyword
(
'}'
).
prepend
[
newLine
],
[
indent
]
)
interior
(
_package
.
regionFor
.
keyword
(
'{'
).
append
[
newLine
],
_package
.
regionFor
.
keyword
(
'}'
).
prepend
[
newLine
],
[
indent
]
)
_package
.
allRegionsFor
.
keyword
(
'entities'
).
prepend
[
newLine
]
_package
.
allRegionsFor
.
keyword
(
'events'
).
prepend
[
newLine
]
_package
.
allRegionsFor
.
keyword
(
';'
).
append
[
newLine
]
_package
.
allRegionsFor
.
keyword
(
':'
).
append
[
newLine
]
_package
.
allRegionsFor
.
keyword
(
'}'
).
prepend
[
indent
]
for
(
ElementImport
elementImport
:
_package
.
getImport
())
{
elementImport
.
format
;
}
for
(
PackageableElement
packageableElement
:
_package
.
getPackagedElement
())
{
packageableElement
.
format
;
packageableElement
.
prepend
[
newLine
]
packageableElement
.
format
}
for
(
org
.
etsi
.
mts
.
tdl
.
Package
__package
:
_package
.
getNestedPackage
())
{
__package
.
format
;
__package
.
format
}
for
(
Comment
comment
:
_package
.
getComment
())
{
comment
.
format
}
for
(
org
.
etsi
.
mts
.
tdl
.
Annotation
_annotation
:
_package
.
getAnnotation
())
{
_annotation
.
format
}
}
def
dispatch
void
format
(
PackageableElement
p
,
extension
IFormattableDocument
document
)
{
p
.
allRegionsFor
.
keyword
(
';'
).
append
[
newLine
]
interior
(
p
.
regionFor
.
keyword
(
'{'
).
append
[
newLine
],
p
.
regionFor
.
keyword
(
'}'
).
prepend
[
newLine
],
[
indent
]
)
p
.
append
[
newLine
]
}
def
dispatch
void
format
(
StructuredTestObjective
e
,
extension
IFormattableDocument
document
)
{
interior
(
e
.
regionFor
.
keyword
(
'{'
).
append
[
newLine
],
e
.
regionFor
.
keyword
(
'}'
).
prepend
[
newLine
],
[
indent
]
)
e
.
regionFor
.
feature
(
ELEMENT__NAME
).
append
[
newLine
]
e
.
regionFor
.
feature
(
TEST_OBJECTIVE__DESCRIPTION
).
append
[
newLine
]
//
e
.
regionFor
.
feature
(
TEST_OBJECTIVE__OBJECTIVE_URI
).
surround
[
newLine
]
e
.
expectedBehaviour
.
format
e
.
surround
[
indent
]
e
.
append
[
newLine
]
}
def
dispatch
void
format
(
ExpectedBehaviour
e
,
extension
IFormattableDocument
document
)
{
e
.
prepend
[
newLine
]
e
.
interior
[
indent
]
e
.
allRegionsFor
.
keyword
(
'ensure that'
).
prepend
[
newLine
]
e
.
allRegionsFor
.
keyword
(
'{'
).
append
[
newLine
]
e
.
allRegionsFor
.
keyword
(
'}'
).
surround
[
newLine
]
e
.
whenClause
.
format
e
.
thenClause
.
format
}
def
dispatch
void
format
(
EventSequence
e
,
extension
IFormattableDocument
document
)
{
for
(
o
:
e
.
events
)
{
o
.
format
}
}
def
dispatch
void
format
(
EventOccurrenceSpecification
e
,
extension
IFormattableDocument
document
)
{
e
.
surround
[
newLine
]
e
.
surround
[
indent
]
e
.
eventArgument
.
format
}
def
dispatch
void
format
(
Value
e
,
extension
IFormattableDocument
document
)
{
e
.
surround
[
newLine
]
e
.
surround
[
indent
]
interior
(
e
.
regionFor
.
keyword
(
'containing'
).
append
[
newLine
],
e
.
regionFor
.
keyword
(
';'
).
prepend
[
newLine
],
[
indent
]
)
e
.
allRegionsFor
.
keyword
(
','
).
append
[
newLine
]
}
def
dispatch
void
format
(
TestConfiguration
e
,
extension
IFormattableDocument
document
)
{
interior
(
e
.
regionFor
.
keyword
(
'{'
).
append
[
newLine
],
e
.
regionFor
.
keyword
(
'}'
).
prepend
[
newLine
],
[
indent
]
)
for
(
i
:
e
.
componentInstance
)
{
i
.
format
}
for
(
c
:
e
.
connection
)
{
c
.
format
}
}
def
dispatch
void
format
(
ComponentInstance
e
,
extension
IFormattableDocument
document
)
{
e
.
regionFor
.
keyword
(
';'
).
append
[
newLine
]
}
def
dispatch
void
format
(
Connection
e
,
extension
IFormattableDocument
document
)
{
e
.
regionFor
.
keyword
(
';'
).
append
[
newLine
]
for
(
g
:
e
.
endPoint
)
{
g
.
regionFor
.
keyword
(
'.'
).
prepend
[
noSpace
].
append
[
noSpace
]
}
}
def
dispatch
void
format
(
Element
e
,
extension
IFormattableDocument
document
)
{
e
.
prepend
[
newLine
]
interior
(
e
.
regionFor
.
keyword
(
'{'
).
append
[
newLine
],
e
.
regionFor
.
keyword
(
'}'
).
prepend
[
newLine
],
[
indent
]
)
for
(
c
:
e
.
getComment
())
{
c
.
format
;
}
for
(
a
:
e
.
getAnnotation
())
{
a
.
format
}
}
def
dispatch
void
format
(
PICS
pICS
,
extension
IFormattableDocument
document
)
{
//
TODO
:
format
HiddenRegions
around
keywords
,
attributes
,
cross
references
,
etc
.
for
(
Comment
comment
:
pICS
.
getComment
())
{
...
...
@@ -36,5 +186,19 @@ class TPLan2Formatter extends AbstractFormatter2 {
}
}
def
dispatch
void
format
(
Annotation
e
,
extension
IFormattableDocument
document
)
{
if
(
e
.
value
.
isNullOrEmpty
)
{
e
.
prepend
[
newLine
]
e
.
regionFor
.
keyword
(
';'
).
append
[
newLine
]
}
else
{
e
.
prepend
[
newLine
]
e
.
regionFor
.
keyword
(
';'
).
append
[
newLine
]
}
}
def
dispatch
void
format
(
Comment
e
,
extension
IFormattableDocument
document
)
{
e
.
prepend
[
newLine
]
}
//
TODO
:
implement
for
PICSReference
,
Entity
,
Event
,
EventSpecificationTemplate
,
EventOccurrenceSpecification
,
StructuredTestObjective
,
InitialConditions
,
ExpectedBehaviour
,
FinalConditions
,
EventSequence
,
RepeatedEventSequence
,
EventTemplateOccurrence
,
EntityBinding
,
TimeConstraint
,
EntityReference
,
EventReference
,
LiteralValue
,
Content
,
DataReference
,
DataInstanceUse
,
ParameterBinding
,
ContentReference
,
LiteralValueReference
,
StructuredDataType
,
StructuredDataInstance
,
MemberAssignment
,
TestConfiguration
,
Connection
,
ComponentType
}