Skip to content

Commit 0a82201

Browse files
author
Alexander Pann
committed
Extract common compare logic into OH class and add support for sorting lists
1 parent 0fe1e95 commit 0a82201

File tree

8 files changed

+923
-410
lines changed

8 files changed

+923
-410
lines changed

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.genjava.toplevel/generator/template/[email protected]

Lines changed: 236 additions & 77 deletions
Large diffs are not rendered by default.

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.toplevel/models/org/iets3/core/expr/toplevel/plugin.mps

Lines changed: 233 additions & 100 deletions
Large diffs are not rendered by default.

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.toplevel/org.iets3.core.expr.toplevel.mpl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
<dependency reexport="false">34e84b8f-afa8-4364-abcd-a279fddddbe7(jetbrains.mps.editor.runtime)</dependency>
3434
<dependency reexport="false">3f233e7f-b8a6-46d2-a57f-795d56775243(Annotations)</dependency>
3535
<dependency reexport="false">24c96a96-b7a1-4f30-82da-0f8e279a2661(de.itemis.mps.editor.celllayout.styles)</dependency>
36+
<dependency reexport="false">52a8c4c0-f4b0-4243-bf00-9dfac3472876(org.iets3.core.expr.simpleTypes.runtime)</dependency>
3637
</dependencies>
3738
<languageVersions>
3839
<language slang="l:677f00fb-4488-405e-9885-abb75d472fd1:com.mbeddr.mpsutil.contextactions" version="0" />
@@ -138,6 +139,7 @@
138139
<module reference="9464fa06-5ab9-409b-9274-64ab29588457(org.iets3.core.expr.lambda)" version="0" />
139140
<module reference="f3eafff0-30d2-46d6-9150-f0f3b880ce27(org.iets3.core.expr.path)" version="0" />
140141
<module reference="6b277d9a-d52d-416f-a209-1919bd737f50(org.iets3.core.expr.simpleTypes)" version="1" />
142+
<module reference="52a8c4c0-f4b0-4243-bf00-9dfac3472876(org.iets3.core.expr.simpleTypes.runtime)" version="0" />
141143
<module reference="71934284-d7d1-45ee-a054-8c072591085f(org.iets3.core.expr.toplevel)" version="2" />
142144
</dependencyVersions>
143145
<extendedLanguages>

code/languages/org.iets3.opensource/solutions/org.iets3.core.expr.simpleTypes.runtime/models/org.iets3.core.expr.simpleTypes.runtime.mps

Lines changed: 264 additions & 11 deletions
Large diffs are not rendered by default.

code/languages/org.iets3.opensource/solutions/org.iets3.core.expr.temporal.runtime/models/org.iets3.core.expr.temporal.runtime.mps

Lines changed: 11 additions & 217 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<import index="2j0k" ref="r:a9ac3767-b241-4aa4-a973-d04bb5ce184c(org.iets3.core.expr.datetime.runtime)" />
1414
<import index="33ny" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)" />
1515
<import index="82uw" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util.function(JDK/)" />
16+
<import index="dj6k" ref="r:59d52af6-663b-49dc-8980-30d79b8dffa1(org.iets3.core.expr.simpleTypes.runtime)" />
1617
<import index="1ctc" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util.stream(JDK/)" implicit="true" />
1718
</imports>
1819
<registry>
@@ -5411,239 +5412,32 @@
54115412
<node concept="3Tm1VV" id="FLl_um7eIw" role="1B3o_S" />
54125413
<node concept="10Oyi0" id="FLl_um7eIy" role="3clF45" />
54135414
<node concept="37vLTG" id="FLl_um7eIz" role="3clF46">
5414-
<property role="TrG5h" value="value" />
5415+
<property role="TrG5h" value="other" />
54155416
<node concept="3uibUv" id="FLl_um7eI_" role="1tU5fm">
54165417
<ref role="3uigEE" node="50smQ1V9Ofy" resolve="TemporalValue" />
54175418
</node>
54185419
</node>
54195420
<node concept="3clFbS" id="FLl_um7eIA" role="3clF47">
5420-
<node concept="3cpWs8" id="FLl_um9YCC" role="3cqZAp">
5421-
<node concept="3cpWsn" id="FLl_um9YCD" role="3cpWs9">
5422-
<property role="TrG5h" value="thisIntervals" />
5423-
<node concept="3uibUv" id="FLl_um9Wz0" role="1tU5fm">
5424-
<ref role="3uigEE" to="33ny:~List" resolve="List" />
5425-
<node concept="3uibUv" id="FLl_um9Wz3" role="11_B2D">
5426-
<ref role="3uigEE" to="28m1:~LocalDate" resolve="LocalDate" />
5427-
</node>
5428-
</node>
5429-
<node concept="2OqwBi" id="FLl_um9YCE" role="33vP2m">
5430-
<node concept="Xjq3P" id="FLl_um9YCF" role="2Oq$k0" />
5431-
<node concept="liA8E" id="FLl_um9YCG" role="2OqNvi">
5421+
<node concept="3cpWs6" id="5wcxmW8A_aM" role="3cqZAp">
5422+
<node concept="2YIFZM" id="5wcxmW8A6fw" role="3cqZAk">
5423+
<ref role="37wK5l" to="dj6k:36hsHVf8gwW" resolve="compare" />
5424+
<ref role="1Pybhc" to="dj6k:36hsHVf8gww" resolve="OH" />
5425+
<node concept="2OqwBi" id="5wcxmW8AW5O" role="37wK5m">
5426+
<node concept="Xjq3P" id="5wcxmW8ARHL" role="2Oq$k0" />
5427+
<node concept="liA8E" id="5wcxmW8B2wx" role="2OqNvi">
54325428
<ref role="37wK5l" node="50smQ1VdGyd" resolve="intervals" />
54335429
</node>
54345430
</node>
5435-
</node>
5436-
</node>
5437-
<node concept="3cpWs8" id="FLl_umaq33" role="3cqZAp">
5438-
<node concept="3cpWsn" id="FLl_umaq34" role="3cpWs9">
5439-
<property role="TrG5h" value="otherIntervals" />
5440-
<node concept="3uibUv" id="FLl_umaq35" role="1tU5fm">
5441-
<ref role="3uigEE" to="33ny:~List" resolve="List" />
5442-
<node concept="3uibUv" id="FLl_umaq36" role="11_B2D">
5443-
<ref role="3uigEE" to="28m1:~LocalDate" resolve="LocalDate" />
5444-
</node>
5445-
</node>
5446-
<node concept="2OqwBi" id="FLl_umaq37" role="33vP2m">
5431+
<node concept="2OqwBi" id="FLl_umaq37" role="37wK5m">
54475432
<node concept="37vLTw" id="FLl_umaYvO" role="2Oq$k0">
5448-
<ref role="3cqZAo" node="FLl_um7eIz" resolve="value" />
5433+
<ref role="3cqZAo" node="FLl_um7eIz" resolve="other" />
54495434
</node>
54505435
<node concept="liA8E" id="FLl_umaq39" role="2OqNvi">
54515436
<ref role="37wK5l" node="50smQ1VdGyd" resolve="intervals" />
54525437
</node>
54535438
</node>
54545439
</node>
54555440
</node>
5456-
<node concept="3cpWs8" id="FLl_umhERu" role="3cqZAp">
5457-
<node concept="3cpWsn" id="FLl_umhERx" role="3cpWs9">
5458-
<property role="TrG5h" value="min" />
5459-
<node concept="10Oyi0" id="FLl_umhERs" role="1tU5fm" />
5460-
<node concept="3cmrfG" id="FLl_umhRL8" role="33vP2m">
5461-
<property role="3cmrfH" value="0" />
5462-
</node>
5463-
</node>
5464-
</node>
5465-
<node concept="3cpWs8" id="FLl_umhY5d" role="3cqZAp">
5466-
<node concept="3cpWsn" id="FLl_umhY5g" role="3cpWs9">
5467-
<property role="TrG5h" value="max" />
5468-
<node concept="10Oyi0" id="FLl_umhY5b" role="1tU5fm" />
5469-
<node concept="3cmrfG" id="FLl_umi99z" role="33vP2m">
5470-
<property role="3cmrfH" value="0" />
5471-
</node>
5472-
</node>
5473-
</node>
5474-
<node concept="1Dw8fO" id="FLl_umcst$" role="3cqZAp">
5475-
<node concept="3clFbS" id="FLl_umcstA" role="2LFqv$">
5476-
<node concept="3cpWs8" id="FLl_ume$E3" role="3cqZAp">
5477-
<node concept="3cpWsn" id="FLl_ume$E4" role="3cpWs9">
5478-
<property role="TrG5h" value="currentDate" />
5479-
<node concept="3uibUv" id="FLl_ume$E5" role="1tU5fm">
5480-
<ref role="3uigEE" to="28m1:~LocalDate" resolve="LocalDate" />
5481-
</node>
5482-
<node concept="2OqwBi" id="FLl_umgd$9" role="33vP2m">
5483-
<node concept="37vLTw" id="FLl_umg9fW" role="2Oq$k0">
5484-
<ref role="3cqZAo" node="FLl_um9YCD" resolve="thisIntervals" />
5485-
</node>
5486-
<node concept="liA8E" id="FLl_umgklX" role="2OqNvi">
5487-
<ref role="37wK5l" to="33ny:~List.get(int)" resolve="get" />
5488-
<node concept="37vLTw" id="FLl_umgr8Q" role="37wK5m">
5489-
<ref role="3cqZAo" node="FLl_umcstB" resolve="i" />
5490-
</node>
5491-
</node>
5492-
</node>
5493-
</node>
5494-
</node>
5495-
<node concept="3cpWs8" id="FLl_umgy2x" role="3cqZAp">
5496-
<node concept="3cpWsn" id="FLl_umgy2y" role="3cpWs9">
5497-
<property role="TrG5h" value="otherDate" />
5498-
<node concept="3uibUv" id="FLl_umgy2z" role="1tU5fm">
5499-
<ref role="3uigEE" to="28m1:~LocalDate" resolve="LocalDate" />
5500-
</node>
5501-
<node concept="2OqwBi" id="FLl_umgy2$" role="33vP2m">
5502-
<node concept="37vLTw" id="FLl_umgy2_" role="2Oq$k0">
5503-
<ref role="3cqZAo" node="FLl_umaq34" resolve="otherIntervals" />
5504-
</node>
5505-
<node concept="liA8E" id="FLl_umgy2A" role="2OqNvi">
5506-
<ref role="37wK5l" to="33ny:~List.get(int)" resolve="get" />
5507-
<node concept="37vLTw" id="FLl_umgy2B" role="37wK5m">
5508-
<ref role="3cqZAo" node="FLl_umcstB" resolve="i" />
5509-
</node>
5510-
</node>
5511-
</node>
5512-
</node>
5513-
</node>
5514-
<node concept="3cpWs8" id="FLl_umhpkT" role="3cqZAp">
5515-
<node concept="3cpWsn" id="FLl_umhpkU" role="3cpWs9">
5516-
<property role="TrG5h" value="result" />
5517-
<node concept="10Oyi0" id="FLl_umhmDI" role="1tU5fm" />
5518-
<node concept="2OqwBi" id="FLl_umhpkV" role="33vP2m">
5519-
<node concept="37vLTw" id="FLl_umhpkW" role="2Oq$k0">
5520-
<ref role="3cqZAo" node="FLl_ume$E4" resolve="currentDate" />
5521-
</node>
5522-
<node concept="liA8E" id="FLl_umhpkX" role="2OqNvi">
5523-
<ref role="37wK5l" to="28m1:~LocalDate.compareTo(java.time.chrono.ChronoLocalDate)" resolve="compareTo" />
5524-
<node concept="37vLTw" id="FLl_umhpkY" role="37wK5m">
5525-
<ref role="3cqZAo" node="FLl_umgy2y" resolve="otherDate" />
5526-
</node>
5527-
</node>
5528-
</node>
5529-
</node>
5530-
</node>
5531-
<node concept="3clFbF" id="FLl_umipFT" role="3cqZAp">
5532-
<node concept="37vLTI" id="FLl_umiwA$" role="3clFbG">
5533-
<node concept="2YIFZM" id="FLl_umiHEL" role="37vLTx">
5534-
<ref role="1Pybhc" to="wyt6:~Math" resolve="Math" />
5535-
<ref role="37wK5l" to="wyt6:~Math.min(int,int)" resolve="min" />
5536-
<node concept="37vLTw" id="FLl_umiOo7" role="37wK5m">
5537-
<ref role="3cqZAo" node="FLl_umhERx" resolve="min" />
5538-
</node>
5539-
<node concept="37vLTw" id="FLl_umiVFi" role="37wK5m">
5540-
<ref role="3cqZAo" node="FLl_umhpkU" resolve="result" />
5541-
</node>
5542-
</node>
5543-
<node concept="37vLTw" id="FLl_umipFR" role="37vLTJ">
5544-
<ref role="3cqZAo" node="FLl_umhERx" resolve="min" />
5545-
</node>
5546-
</node>
5547-
</node>
5548-
<node concept="3clFbF" id="FLl_umj7jh" role="3cqZAp">
5549-
<node concept="37vLTI" id="FLl_umjeeX" role="3clFbG">
5550-
<node concept="2YIFZM" id="FLl_umjrhL" role="37vLTx">
5551-
<ref role="1Pybhc" to="wyt6:~Math" resolve="Math" />
5552-
<ref role="37wK5l" to="wyt6:~Math.max(int,int)" resolve="max" />
5553-
<node concept="37vLTw" id="FLl_umjvOH" role="37wK5m">
5554-
<ref role="3cqZAo" node="FLl_umhY5g" resolve="max" />
5555-
</node>
5556-
<node concept="37vLTw" id="FLl_umjAGm" role="37wK5m">
5557-
<ref role="3cqZAo" node="FLl_umhpkU" resolve="result" />
5558-
</node>
5559-
</node>
5560-
<node concept="37vLTw" id="FLl_umj7jf" role="37vLTJ">
5561-
<ref role="3cqZAo" node="FLl_umhY5g" resolve="max" />
5562-
</node>
5563-
</node>
5564-
</node>
5565-
</node>
5566-
<node concept="3cpWsn" id="FLl_umcstB" role="1Duv9x">
5567-
<property role="TrG5h" value="i" />
5568-
<node concept="10Oyi0" id="FLl_umcyDp" role="1tU5fm" />
5569-
<node concept="3cmrfG" id="FLl_umcOvM" role="33vP2m">
5570-
<property role="3cmrfH" value="0" />
5571-
</node>
5572-
</node>
5573-
<node concept="3eOVzh" id="FLl_umd0Rj" role="1Dwp0S">
5574-
<node concept="37vLTw" id="FLl_umcTZd" role="3uHU7B">
5575-
<ref role="3cqZAo" node="FLl_umcstB" resolve="i" />
5576-
</node>
5577-
<node concept="2YIFZM" id="FLl_umfWe9" role="3uHU7w">
5578-
<ref role="1Pybhc" to="wyt6:~Math" resolve="Math" />
5579-
<ref role="37wK5l" to="wyt6:~Math.min(int,int)" resolve="min" />
5580-
<node concept="2OqwBi" id="FLl_umfWea" role="37wK5m">
5581-
<node concept="37vLTw" id="FLl_umfWeb" role="2Oq$k0">
5582-
<ref role="3cqZAo" node="FLl_um9YCD" resolve="thisIntervals" />
5583-
</node>
5584-
<node concept="liA8E" id="FLl_umfWec" role="2OqNvi">
5585-
<ref role="37wK5l" to="33ny:~List.size()" resolve="size" />
5586-
</node>
5587-
</node>
5588-
<node concept="2OqwBi" id="FLl_umfWed" role="37wK5m">
5589-
<node concept="37vLTw" id="FLl_umfWee" role="2Oq$k0">
5590-
<ref role="3cqZAo" node="FLl_umaq34" resolve="otherIntervals" />
5591-
</node>
5592-
<node concept="liA8E" id="FLl_umfWef" role="2OqNvi">
5593-
<ref role="37wK5l" to="33ny:~List.size()" resolve="size" />
5594-
</node>
5595-
</node>
5596-
</node>
5597-
</node>
5598-
<node concept="3uNrnE" id="7k6A8WfiCaV" role="1Dwrff">
5599-
<node concept="37vLTw" id="7k6A8WfiCaX" role="2$L3a6">
5600-
<ref role="3cqZAo" node="FLl_umcstB" resolve="i" />
5601-
</node>
5602-
</node>
5603-
</node>
5604-
<node concept="3clFbJ" id="FLl_umjJE7" role="3cqZAp">
5605-
<node concept="3clFbS" id="FLl_umjJE9" role="3clFbx">
5606-
<node concept="3cpWs6" id="FLl_umkeWL" role="3cqZAp">
5607-
<node concept="3cmrfG" id="FLl_umkj5R" role="3cqZAk">
5608-
<property role="3cmrfH" value="-1" />
5609-
</node>
5610-
</node>
5611-
</node>
5612-
<node concept="3eOVzh" id="FLl_umk4rB" role="3clFbw">
5613-
<node concept="3cmrfG" id="FLl_umk8NO" role="3uHU7w">
5614-
<property role="3cmrfH" value="0" />
5615-
</node>
5616-
<node concept="37vLTw" id="FLl_umjWZT" role="3uHU7B">
5617-
<ref role="3cqZAo" node="FLl_umhERx" resolve="min" />
5618-
</node>
5619-
</node>
5620-
<node concept="3eNFk2" id="FLl_umk$xC" role="3eNLev">
5621-
<node concept="3eOSWO" id="FLl_umloOF" role="3eO9$A">
5622-
<node concept="3cmrfG" id="FLl_umloOX" role="3uHU7w">
5623-
<property role="3cmrfH" value="0" />
5624-
</node>
5625-
<node concept="37vLTw" id="FLl_umlhWG" role="3uHU7B">
5626-
<ref role="3cqZAo" node="FLl_umhY5g" resolve="max" />
5627-
</node>
5628-
</node>
5629-
<node concept="3clFbS" id="FLl_umk$xE" role="3eOfB_">
5630-
<node concept="3cpWs6" id="FLl_umlvwt" role="3cqZAp">
5631-
<node concept="3cmrfG" id="FLl_umlAa$" role="3cqZAk">
5632-
<property role="3cmrfH" value="1" />
5633-
</node>
5634-
</node>
5635-
</node>
5636-
</node>
5637-
<node concept="9aQIb" id="FLl_umlGOw" role="9aQIa">
5638-
<node concept="3clFbS" id="FLl_umlGOx" role="9aQI4">
5639-
<node concept="3cpWs6" id="FLl_umlMBi" role="3cqZAp">
5640-
<node concept="3cmrfG" id="FLl_umlTi2" role="3cqZAk">
5641-
<property role="3cmrfH" value="0" />
5642-
</node>
5643-
</node>
5644-
</node>
5645-
</node>
5646-
</node>
56475441
</node>
56485442
<node concept="2AHcQZ" id="FLl_um7eIB" role="2AJF6D">
56495443
<ref role="2AI5Lk" to="wyt6:~Override" />

code/languages/org.iets3.opensource/solutions/org.iets3.core.expr.temporal.runtime/org.iets3.core.expr.temporal.runtime.msd

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
<dependencies>
1515
<dependency reexport="false">957f018c-4561-4081-9ad3-b8618bf1160d(org.iets3.core.expr.datetime.runtime)</dependency>
1616
<dependency reexport="false">6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)</dependency>
17+
<dependency reexport="false">52a8c4c0-f4b0-4243-bf00-9dfac3472876(org.iets3.core.expr.simpleTypes.runtime)</dependency>
1718
</dependencies>
1819
<languageVersions>
1920
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="12" />
@@ -23,6 +24,7 @@
2324
<dependencyVersions>
2425
<module reference="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" version="0" />
2526
<module reference="957f018c-4561-4081-9ad3-b8618bf1160d(org.iets3.core.expr.datetime.runtime)" version="0" />
27+
<module reference="52a8c4c0-f4b0-4243-bf00-9dfac3472876(org.iets3.core.expr.simpleTypes.runtime)" version="0" />
2628
<module reference="17ecc6b6-d106-4b60-87a9-3fde52f92301(org.iets3.core.expr.temporal.runtime)" version="0" />
2729
</dependencyVersions>
2830
</solution>

code/languages/org.iets3.opensource/solutions/org.iets3.opensource.build/models/org/iets3/opensource/build/build.mps

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1996,11 +1996,6 @@
19961996
<ref role="3bR37D" to="ffeo:1H905DlDUSw" resolve="MPS.OpenAPI" />
19971997
</node>
19981998
</node>
1999-
<node concept="1SiIV0" id="7iQqdOBku0B" role="3bR37C">
2000-
<node concept="3bR9La" id="7iQqdOBku0C" role="1SiIV1">
2001-
<ref role="3bR37D" to="ffeo:7Kfy9QB6KXW" resolve="jetbrains.mps.lang.core" />
2002-
</node>
2003-
</node>
20041999
</node>
20052000
<node concept="1E1JtD" id="_I$tx9JvQU" role="2G$12L">
20062001
<property role="BnDLt" value="true" />
@@ -3846,6 +3841,11 @@
38463841
<ref role="3bR37D" to="90a9:6SVXTgIel8z" resolve="de.itemis.mps.editor.celllayout.styles" />
38473842
</node>
38483843
</node>
3844+
<node concept="1SiIV0" id="5wcxmW8Dyvw" role="3bR37C">
3845+
<node concept="3bR9La" id="5wcxmW8Dyvx" role="1SiIV1">
3846+
<ref role="3bR37D" node="7jAOwAVRc2S" resolve="org.iets3.core.expr.simpleTypes.runtime" />
3847+
</node>
3848+
</node>
38493849
</node>
38503850
<node concept="1E1JtD" id="5a_u3OzLedQ" role="2G$12L">
38513851
<property role="BnDLt" value="true" />
@@ -6098,6 +6098,11 @@
60986098
</node>
60996099
</node>
61006100
</node>
6101+
<node concept="1SiIV0" id="5wcxmW8C4hH" role="3bR37C">
6102+
<node concept="3bR9La" id="5wcxmW8C4hI" role="1SiIV1">
6103+
<ref role="3bR37D" node="7jAOwAVRc2S" resolve="org.iets3.core.expr.simpleTypes.runtime" />
6104+
</node>
6105+
</node>
61016106
</node>
61026107
<node concept="1E1JtA" id="6XrtUF5gcnN" role="2G$12L">
61036108
<property role="BnDLt" value="true" />

0 commit comments

Comments
 (0)