Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
JastAdd
relational-rags
Commits
63fedff9
Commit
63fedff9
authored
Feb 22, 2019
by
Johannes Mey
Browse files
(manually) merge branch align-names (commit
dcfe383c
)
parent
cb631f44
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
src/main/jastadd/Backend.jadd
View file @
63fedff9
...
...
@@ -187,7 +187,7 @@ aspect BackendDirectedAPI {
generateGetMany(sb);
// Add
sb.append(ind(1) + "public void " + toTypeDecl() + ".add
To
");
sb.append(ind(1) + "public void " + toTypeDecl() + ".add");
sb.append(nameCapitalized() + "(" + ofTypeDecl() + " o) {\n");
sb.append(ind(2) + "assertNotNull(o);\n");
sb.append(ind(2) + ASTNode.listClass + "<" + ofTypeDecl() + "> list = get" + getImplAttributeName() + "();\n");
...
...
@@ -199,7 +199,7 @@ aspect BackendDirectedAPI {
sb.append(ind(1) + "}\n");
// Remove
sb.append(ind(1) + "public void " + toTypeDecl() + ".remove
From
");
sb.append(ind(1) + "public void " + toTypeDecl() + ".remove");
sb.append(nameCapitalized() + "(" + ofTypeDecl() + " o) {\n");
sb.append(ind(2) + "assertNotNull(o);\n");
sb.append(ind(2) + ASTNode.listClass + "<" + ofTypeDecl() + "> list = get" + getImplAttributeName() + "();\n");
...
...
@@ -211,7 +211,7 @@ aspect BackendDirectedAPI {
public void RelationComponent.generateGetOne(StringBuilder sb) {
sb.append(ind(1) + "public " + ofTypeDecl() + " " + toTypeDecl());
sb.append("." + name() + "() {\n");
sb.append(".
get
" + name
Capitalized
() + "() {\n");
sb.append(ind(2) + "return get" + getImplAttributeName() + "();\n");
sb.append(ind(1) + "}\n");
}
...
...
@@ -220,7 +220,7 @@ aspect BackendDirectedAPI {
// has
sb.append(ind(1) + "public boolean " + toTypeDecl());
sb.append(".has" + nameCapitalized() + "() {\n");
sb.append(ind(2) + "return " + name() + "() != null;\n");
sb.append(ind(2) + "return
get
" + name
Capitalized
() + "() != null;\n");
sb.append(ind(1) + "}\n");
// clear
...
...
@@ -231,8 +231,15 @@ aspect BackendDirectedAPI {
}
public void RelationComponent.generateGetMany(StringBuilder sb) {
// getXs
sb.append(ind(1) + "public java.util.List<" + ofTypeDecl() + "> " + toTypeDecl());
sb.append("." + name() + "() {\n");
sb.append(".get" + nameCapitalized() + "s() {\n");
sb.append(ind(2) + "return get" + nameCapitalized() + "List();\n");
sb.append(ind(1) + "}\n");
// getXList
sb.append(ind(1) + "public java.util.List<" + ofTypeDecl() + "> " + toTypeDecl());
sb.append(".get" + nameCapitalized() + "List() {\n");
sb.append(ind(2) + ASTNode.listClass + "<" + ofTypeDecl() + "> l = get"
+ getImplAttributeName() + "();\n");
sb.append(ind(2) + "return l != null ? Collections.unmodifiableList(l) : Collections.emptyList();\n");
...
...
@@ -317,7 +324,7 @@ aspect BackendBidirectionalAPI {
generateGetMany(sb);
// Add
sb.append(ind(1) + "public void " + toTypeDecl() + ".add
To
");
sb.append(ind(1) + "public void " + toTypeDecl() + ".add");
sb.append(nameCapitalized() + "(" + ofTypeDecl() + " o) {\n");
sb.append(ind(2) + "assertNotNull(o);\n");
sb.append(ind(2) + ASTNode.listClass + "<" + ofTypeDecl() + "> list = get" + getImplAttributeName() + "();\n");
...
...
@@ -336,7 +343,7 @@ aspect BackendBidirectionalAPI {
sb.append(ind(1) + "}\n");
// Remove
sb.append(ind(1) + "public void " + toTypeDecl() + ".remove
From
");
sb.append(ind(1) + "public void " + toTypeDecl() + ".remove");
sb.append(nameCapitalized() + "(" + ofTypeDecl() + " o) {\n");
sb.append(ind(2) + "assertNotNull(o);\n");
sb.append(ind(2) + ASTNode.listClass + "<" + ofTypeDecl() + "> list = get" + getImplAttributeName() + "();\n");
...
...
@@ -356,7 +363,7 @@ aspect BackendBidirectionalAPI {
generateGetMany(sb);
// Add
sb.append(ind(1) + "public void " + toTypeDecl() + ".add
To
");
sb.append(ind(1) + "public void " + toTypeDecl() + ".add");
sb.append(nameCapitalized() + "(" + ofTypeDecl() + " o) {\n");
sb.append(ind(2) + "assertNotNull(o);\n");
sb.append(ind(2) + "if (o != null && o.get" + otherSide().getImplAttributeName() + "() != null) {\n");
...
...
@@ -376,7 +383,7 @@ aspect BackendBidirectionalAPI {
sb.append(ind(1) + "}\n");
// Remove
sb.append(ind(1) + "public void " + toTypeDecl() + ".remove
From
");
sb.append(ind(1) + "public void " + toTypeDecl() + ".remove");
sb.append(nameCapitalized() + "(" + ofTypeDecl() + " o) {\n");
sb.append(ind(2) + "assertNotNull(o);\n");
sb.append(ind(2) + ASTNode.listClass + "<" + ofTypeDecl() + "> list = get" + getImplAttributeName() + "();\n");
...
...
@@ -470,7 +477,7 @@ aspect LowerBoundCheck {
}
public void OneRelationComponent.generateLowerBoundCheck(StringBuilder sb) {
sb.append(ind(2) + "if (" + name() + "() == null) {\n");
sb.append(ind(2) + "if (
get
" + name
Capitalized
() + "() == null) {\n");
sb.append(ind(3) + "list.add(new Pair<>(this, \"" + name() + "\"));\n");
sb.append(ind(2) + "}\n");
}
...
...
@@ -542,4 +549,4 @@ aspect Utils {
}
return s;
}
}
\ No newline at end of file
}
tests/multipleFiles/All.java
View file @
63fedff9
This diff is collapsed.
Click to expand it.
tests/multipleFiles/Rules1.relast
View file @
63fedff9
B ::= <Name>;
rel A.
d
i1 -> B;
rel A.
d
i2? -> B;
rel A.
d
i3* -> B;
rel A.
D
i1 -> B;
rel A.
D
i2? -> B;
rel A.
D
i3* -> B;
tests/multipleFiles/Rules2.relast
View file @
63fedff9
...
...
@@ -2,6 +2,6 @@ Root ::= A* B*;
A ::= <Name>;
rel A.
b
i1 <-> B.
b
i1;
rel A.
b
i2 <-> B.
b
i2?;
rel A.
b
i3 <-> B.
b
i3*;
rel A.
B
i1 <-> B.
B
i1;
rel A.
B
i2 <-> B.
B
i2?;
rel A.
B
i3 <-> B.
B
i3*;
tests/multipleFiles/Rules3.relast
View file @
63fedff9
rel A.
b
i4? <-> B.
b
i4;
rel A.
b
i5? <-> B.
b
i5?;
rel A.
b
i6? <-> B.
b
i6*;
rel A.
B
i4? <-> B.
B
i4;
rel A.
B
i5? <-> B.
B
i5?;
rel A.
B
i6? <-> B.
B
i6*;
rel A.
b
i7* <-> B.
b
i7;
rel A.
b
i8* <-> B.
b
i8?;
rel A.
b
i9* <-> B.
b
i9*;
rel A.
B
i7* <-> B.
B
i7;
rel A.
B
i8* <-> B.
B
i8?;
rel A.
B
i9* <-> B.
B
i9*;
tests/valid/All.java
View file @
63fedff9
This diff is collapsed.
Click to expand it.
tests/valid/All.relast
View file @
63fedff9
...
...
@@ -2,18 +2,18 @@ Root ::= A* B*;
A ::= <Name>;
B ::= <Name>;
rel A.
d
i1 -> B;
rel A.
d
i2? -> B;
rel A.
d
i3* -> B;
rel A.
D
i1 -> B;
rel A.
D
i2? -> B;
rel A.
D
i3* -> B;
rel A.
b
i1 <-> B.
b
i1;
rel A.
b
i2 <-> B.
b
i2?;
rel A.
b
i3 <-> B.
b
i3*;
rel A.
B
i1 <-> B.
B
i1;
rel A.
B
i2 <-> B.
B
i2?;
rel A.
B
i3 <-> B.
B
i3*;
rel A.
b
i4? <-> B.
b
i4;
rel A.
b
i5? <-> B.
b
i5?;
rel A.
b
i6? <-> B.
b
i6*;
rel A.
B
i4? <-> B.
B
i4;
rel A.
B
i5? <-> B.
B
i5?;
rel A.
B
i6? <-> B.
B
i6*;
rel A.
b
i7* <-> B.
b
i7;
rel A.
b
i8* <-> B.
b
i8?;
rel A.
b
i9* <-> B.
b
i9*;
rel A.
B
i7* <-> B.
B
i7;
rel A.
B
i8* <-> B.
B
i8?;
rel A.
B
i9* <-> B.
B
i9*;
tests/valid/LowerBounds.java
View file @
63fedff9
...
...
@@ -10,9 +10,9 @@ public class LowerBounds extends AbstractTests {
* A ::= <Name> [C];
* B ::= <Name>;
* C ::= <Name>;
* rel A.
b
-> B;
* rel B.
c
<-> C.
b
;
* rel Root.
a
a? -> A;
* rel A.
Br
-> B;
* rel B.
Cr
<-> C.
Br
;
* rel Root.
A
a? -> A;
*/
public
void
test
()
{
Root
r
=
new
Root
();
...
...
@@ -29,19 +29,19 @@ public class LowerBounds extends AbstractTests {
assertTrue
(
r
.
violatesLowerBounds
());
a1
.
setB
(
b1
);
a2
.
setB
(
b2
);
b1
.
setC
(
c1
);
b2
.
setC
(
c2
);
a1
.
setB
r
(
b1
);
a2
.
setB
r
(
b2
);
b1
.
setC
r
(
c1
);
b2
.
setC
r
(
c2
);
assertFalse
(
r
.
violatesLowerBounds
());
b2
.
setC
(
c1
);
b2
.
setC
r
(
c1
);
assertTrue
(
r
.
violatesLowerBounds
());
b1
.
setC
(
c2
);
b1
.
setC
r
(
c2
);
assertFalse
(
r
.
violatesLowerBounds
());
}
}
\ No newline at end of file
}
tests/valid/LowerBounds.relast
View file @
63fedff9
...
...
@@ -3,6 +3,6 @@ A ::= <Name> [C];
B ::= <Name>;
C ::= <Name>;
rel A.
b
-> B;
rel B.
c
<-> C.
b
;
rel Root.
a
a? -> A;
rel A.
Br
-> B;
rel B.
Cr
<-> C.
Br
;
rel Root.
A
a? -> A;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment