Skip to content

Commit 7c87e1f

Browse files
authored
Merge pull request #145 from modelix/issue/MODELIX-464
MODELIX-463 MODELIX-464 model-api-gen fixes
2 parents b6e1282 + a46ba4d commit 7c87e1f

File tree

3 files changed

+63
-8
lines changed

3 files changed

+63
-8
lines changed

metamodel-export/org.modelix.metamodel.export/models/org.modelix.metamodel.export.mps

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1859,6 +1859,46 @@
18591859
<node concept="3$u5V9" id="4zSRxm70ylp" role="2OqNvi">
18601860
<node concept="1bVj0M" id="4zSRxm70ylr" role="23t8la">
18611861
<node concept="3clFbS" id="4zSRxm70yls" role="1bW5cS">
1862+
<node concept="3cpWs8" id="2HDFhwS9wkk" role="3cqZAp">
1863+
<node concept="3cpWsn" id="2HDFhwS9wkl" role="3cpWs9">
1864+
<property role="TrG5h" value="presentation" />
1865+
<node concept="3uibUv" id="2HDFhwS9wkm" role="1tU5fm">
1866+
<ref role="3uigEE" to="wyt6:~String" resolve="String" />
1867+
</node>
1868+
<node concept="3K4zz7" id="2HDFhwS9OjA" role="33vP2m">
1869+
<node concept="10Nm6u" id="2HDFhwS9QJZ" role="3K4E3e" />
1870+
<node concept="2OqwBi" id="2HDFhwS9UbM" role="3K4GZi">
1871+
<node concept="37vLTw" id="2HDFhwS9S9I" role="2Oq$k0">
1872+
<ref role="3cqZAo" node="4zSRxm70ylt" resolve="it" />
1873+
</node>
1874+
<node concept="3TrcHB" id="2HDFhwS9X9S" role="2OqNvi">
1875+
<ref role="3TsBF5" to="tpce:_jzzDSlxy8" resolve="presentation" />
1876+
</node>
1877+
</node>
1878+
<node concept="2OqwBi" id="2HDFhwS9FnO" role="3K4Cdx">
1879+
<node concept="2OqwBi" id="2HDFhwS9AgT" role="2Oq$k0">
1880+
<node concept="37vLTw" id="2HDFhwS9$gi" role="2Oq$k0">
1881+
<ref role="3cqZAo" node="4zSRxm70ylt" resolve="it" />
1882+
</node>
1883+
<node concept="3TrcHB" id="2HDFhwS9DnP" role="2OqNvi">
1884+
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
1885+
</node>
1886+
</node>
1887+
<node concept="liA8E" id="2HDFhwS9GXk" role="2OqNvi">
1888+
<ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
1889+
<node concept="2OqwBi" id="2HDFhwS9Kdp" role="37wK5m">
1890+
<node concept="37vLTw" id="2HDFhwS9I9E" role="2Oq$k0">
1891+
<ref role="3cqZAo" node="4zSRxm70ylt" resolve="it" />
1892+
</node>
1893+
<node concept="3TrcHB" id="2HDFhwS9MX2" role="2OqNvi">
1894+
<ref role="3TsBF5" to="tpce:_jzzDSlxy8" resolve="presentation" />
1895+
</node>
1896+
</node>
1897+
</node>
1898+
</node>
1899+
</node>
1900+
</node>
1901+
</node>
18621902
<node concept="3clFbF" id="4zSRxm70zVx" role="3cqZAp">
18631903
<node concept="2ShNRf" id="4zSRxm70zVv" role="3clFbG">
18641904
<node concept="1pGfFk" id="4zSRxm70Bwh" role="2ShVmc">
@@ -1893,13 +1933,8 @@
18931933
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
18941934
</node>
18951935
</node>
1896-
<node concept="2OqwBi" id="7ryKvClczo$" role="37wK5m">
1897-
<node concept="37vLTw" id="7ryKvClcxDd" role="2Oq$k0">
1898-
<ref role="3cqZAo" node="4zSRxm70ylt" resolve="it" />
1899-
</node>
1900-
<node concept="3TrcHB" id="7ryKvClc$FU" role="2OqNvi">
1901-
<ref role="3TsBF5" to="tpce:_jzzDSlxy8" resolve="presentation" />
1902-
</node>
1936+
<node concept="37vLTw" id="2HDFhwSa3K6" role="37wK5m">
1937+
<ref role="3cqZAo" node="2HDFhwS9wkl" resolve="presentation" />
19031938
</node>
19041939
</node>
19051940
</node>

model-api-gen-gradle-test/src/test/kotlin/GeneratedApiTest.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import jetbrains.mps.baseLanguage.C_ClassConcept
2+
import jetbrains.mps.baseLanguage.ClassConcept
23
import jetbrains.mps.baseLanguage.jdk8.C_SuperInterfaceMethodCall_old
4+
import jetbrains.mps.baseLanguage.jdk8.SuperInterfaceMethodCall_old
35
import jetbrains.mps.lang.behavior.C_ConceptMethodDeclaration
6+
import jetbrains.mps.lang.behavior.ConceptMethodDeclaration
47
import jetbrains.mps.lang.core.L_jetbrains_mps_lang_core
58
import jetbrains.mps.lang.editor.*
69
import jetbrains.mps.lang.smodel.query.CustomScope_old
@@ -45,10 +48,21 @@ class GeneratedApiTest {
4548
val foundDeprecatedProperty = C_ConceptMethodDeclaration::class.members.any { it.hasDeprecationWithMessage() }
4649
val foundDeprecatedChildLink = C_ClassConcept::class.members.any { it.hasDeprecationWithMessage() }
4750
val foundDeprecatedReference = C_SuperInterfaceMethodCall_old::class.members.any { it.hasDeprecationWithMessage() }
51+
52+
val foundDeprecatedNodeWrapper = SuperInterfaceMethodCall_old::class.hasDeprecationWithMessage()
53+
val foundDeprecatedNodeProperty = ConceptMethodDeclaration::class.members.any { it.hasDeprecationWithMessage() }
54+
val foundDeprecatedNodeChildLink = ClassConcept::class.members.any { it.hasDeprecationWithMessage() }
55+
val foundDeprecatedNodeReference = SuperInterfaceMethodCall_old::class.members.any { it.hasDeprecationWithMessage() }
56+
4857
assert(foundDeprecatedConcept)
4958
assert(foundDeprecatedProperty)
5059
assert(foundDeprecatedChildLink)
5160
assert(foundDeprecatedReference)
61+
62+
assert(foundDeprecatedNodeWrapper)
63+
assert(foundDeprecatedNodeProperty)
64+
assert(foundDeprecatedNodeChildLink)
65+
assert(foundDeprecatedNodeReference)
5266
}
5367

5468
private fun KAnnotatedElement.hasDeprecationWithMessage() =

model-api-gen/src/main/kotlin/org/modelix/metamodel/generator/MetaModelGenerator.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ class MetaModelGenerator(val outputDir: Path, val nameConfig: NameConfig = NameC
148148
member.presentation ?: "")
149149
.build()
150150
)
151-
getLiteralCodeBuilder.addStatement("%S -> %L", member.uid, member.name)
151+
getLiteralCodeBuilder.addStatement("%S -> %N", member.uid, member.name)
152152
}
153153

154154
getLiteralFunBuilder.addCode(
@@ -619,6 +619,7 @@ class MetaModelGenerator(val outputDir: Path, val nameConfig: NameConfig = NameC
619619

620620
private fun generateNodeWrapperInterface(concept: ProcessedConcept): TypeSpec {
621621
return TypeSpec.interfaceBuilder(concept.nodeWrapperInterfaceType()).apply {
622+
addDeprecationIfNecessary(concept)
622623
if (concept.extends.isEmpty()) addSuperinterface(ITypedNode::class.asTypeName())
623624
for (extended in concept.extends) {
624625
addSuperinterface(extended.resolved.nodeWrapperInterfaceType())
@@ -628,6 +629,7 @@ class MetaModelGenerator(val outputDir: Path, val nameConfig: NameConfig = NameC
628629
is ProcessedProperty -> {
629630
addProperty(
630631
PropertySpec.builder(feature.generatedName, feature.asKotlinType())
632+
.addDeprecationIfNecessary(feature)
631633
.mutable(true)
632634
.build()
633635
)
@@ -636,6 +638,7 @@ class MetaModelGenerator(val outputDir: Path, val nameConfig: NameConfig = NameC
636638
"raw_" + feature.generatedName,
637639
String::class.asTypeName().copy(nullable = true)
638640
)
641+
.addDeprecationIfNecessary(feature)
639642
.mutable(true)
640643
.build()
641644
)
@@ -651,6 +654,7 @@ class MetaModelGenerator(val outputDir: Path, val nameConfig: NameConfig = NameC
651654
)
652655
addProperty(
653656
PropertySpec.builder(feature.generatedName, type)
657+
.addDeprecationIfNecessary(feature)
654658
.build()
655659
)
656660
}
@@ -661,6 +665,7 @@ class MetaModelGenerator(val outputDir: Path, val nameConfig: NameConfig = NameC
661665
feature.generatedName,
662666
feature.type.resolved.nodeWrapperInterfaceType().copy(nullable = feature.optional)
663667
)
668+
.addDeprecationIfNecessary(feature)
664669
.mutable(true)
665670
.build()
666671
)
@@ -669,6 +674,7 @@ class MetaModelGenerator(val outputDir: Path, val nameConfig: NameConfig = NameC
669674
"raw_" + feature.generatedName,
670675
INode::class.asTypeName().copy(nullable = true)
671676
)
677+
.addDeprecationIfNecessary(feature)
672678
.mutable(true)
673679
.build()
674680
)

0 commit comments

Comments
 (0)