From 858b9c3b22d7951927a423f520b40f92547ecd9e Mon Sep 17 00:00:00 2001 From: JonnathanRiquelmo Date: Mon, 25 Apr 2022 05:38:27 -0300 Subject: [PATCH] Project update - evolving the occurrence diagram generator --- .../antlr/ErDslParser$NameMappings.class | Bin 8284 -> 8286 bytes .../antlr/internal/InternalErDslParser.class | Bin 69220 -> 69226 bytes .../antlr/internal/InternalErDslParser.g | 20 +- .../antlr/internal/InternalErDslParser.tokens | 2 +- .../lexer/InternalErDslLexer$DFA12.class | Bin 3878 -> 3879 bytes .../antlr/lexer/InternalErDslLexer.class | Bin 42602 -> 42703 bytes .../antlr/lexer/InternalErDslLexer.g | 2 +- .../antlr/lexer/InternalErDslLexer.tokens | 2 +- .../ide/contentassist/antlr/ErDslParser.java | 2 +- .../antlr/internal/InternalErDslParser.g | 20 +- .../antlr/internal/InternalErDslParser.java | 58 +- .../antlr/internal/InternalErDslParser.tokens | 2 +- .../antlr/lexer/InternalErDslLexer.g | 2 +- .../antlr/lexer/InternalErDslLexer.java | 111 ++-- .../antlr/lexer/InternalErDslLexer.tokens | 2 +- .../erdsl/tests/.ErDslParsingTest.xtendbin | Bin 3367 -> 3367 bytes .../erdsl/tests/.ErDslParsingTest.xtendbin | Bin 3367 -> 3367 bytes .../unipampa/erdsl/ui/.ErDslUiModule.xtendbin | Bin 2287 -> 2287 bytes .../.ErDslCodeMiningProvider.xtendbin | Bin 2763 -> 2763 bytes .../.ErDslProposalProvider.xtendbin | Bin 1743 -> 1743 bytes .../AbstractErDslProposalProvider.class | Bin 5607 -> 5608 bytes .../.ErDslDescriptionLabelProvider.xtendbin | Bin 1919 -> 1919 bytes .../ui/labeling/.ErDslLabelProvider.xtendbin | Bin 2357 -> 2357 bytes .../.ErDslOutlineTreeProvider.xtendbin | Bin 1773 -> 1773 bytes .../quickfix/.ErDslQuickfixProvider.xtendbin | Bin 1738 -> 1738 bytes .../.ErDslFileTemplateProvider.xtendbin | Bin 4330 -> 4330 bytes .../.ErDslProjectTemplateProvider.xtendbin | Bin 6954 -> 6954 bytes .../AbstractErDslProposalProvider.java | 2 +- .../unipampa/erdsl/ui/.ErDslUiModule.xtendbin | Bin 2287 -> 2287 bytes .../.ErDslCodeMiningProvider.xtendbin | Bin 2763 -> 2763 bytes .../.ErDslProposalProvider.xtendbin | Bin 1743 -> 1743 bytes .../.ErDslDescriptionLabelProvider.xtendbin | Bin 1919 -> 1919 bytes .../ui/labeling/.ErDslLabelProvider.xtendbin | Bin 2357 -> 2357 bytes .../.ErDslOutlineTreeProvider.xtendbin | Bin 1773 -> 1773 bytes .../quickfix/.ErDslQuickfixProvider.xtendbin | Bin 1738 -> 1738 bytes .../.ErDslFileTemplateProvider.xtendbin | Bin 4330 -> 4330 bytes .../.ErDslProjectTemplateProvider.xtendbin | Bin 6954 -> 6954 bytes .../bin/org/xtext/unipampa/erdsl/ErDsl.xtext | 2 +- .../org/xtext/unipampa/erdsl/ErDsl.xtextbin | Bin 3758 -> 3760 bytes .../erdsl/erDsl/ErDslPackage$Literals.class | Bin 3172 -> 3174 bytes .../unipampa/erdsl/erDsl/ErDslPackage.class | Bin 3271 -> 3273 bytes .../xtext/unipampa/erdsl/erDsl/Relation.class | Bin 780 -> 782 bytes .../erdsl/erDsl/impl/ErDslPackageImpl.class | Bin 9611 -> 9613 bytes .../erdsl/erDsl/impl/RelationImpl.class | Bin 7099 -> 7105 bytes .../generator/.ErDslGenerator.java._trace | Bin 4953 -> 4953 bytes .../erdsl/generator/.ErDslGenerator.xtendbin | Bin 4539 -> 4545 bytes .../generator/.HtmlFileGenerator.xtendbin | Bin 20882 -> 20882 bytes .../generator/.MysqlFileGenerator.xtendbin | Bin 24209 -> 24209 bytes .../.OccurrenceDiagramGenerator.java._trace | Bin 0 -> 16940 bytes .../.OccurrenceDiagramGenerator.xtendbin | Bin 0 -> 7184 bytes .../.OcurrenceDiagramGenerator.java._trace | Bin 1551 -> 4532 bytes .../.OcurrenceDiagramGenerator.xtendbin | Bin 3307 -> 0 bytes .../.PlantUmlFileGenerator.java._trace | Bin 15644 -> 15285 bytes .../generator/.PlantUmlFileGenerator.xtendbin | Bin 7634 -> 7598 bytes .../.PostgresqlFileGenerator.xtendbin | Bin 24566 -> 24566 bytes .../erdsl/generator/ErDslGenerator.class | Bin 4120 -> 4122 bytes .../erdsl/generator/ErDslGenerator.xtend | 2 +- .../OccurrenceDiagramGenerator.class | Bin 0 -> 15204 bytes .../OccurrenceDiagramGenerator.xtend | 252 ++++++++ .../generator/OcurrenceDiagramGenerator.class | Bin 3228 -> 0 bytes .../generator/OcurrenceDiagramGenerator.xtend | 27 - .../generator/PlantUmlFileGenerator.class | Bin 12493 -> 12365 bytes .../generator/PlantUmlFileGenerator.xtend | 4 +- .../antlr/internal/InternalErDslParser.class | Bin 26999 -> 27005 bytes .../antlr/internal/InternalErDslParser.g | 6 +- .../antlr/internal/InternalErDslParser.tokens | 2 +- .../lexer/InternalErDslLexer$DFA12.class | Bin 3823 -> 3824 bytes .../antlr/lexer/InternalErDslLexer.class | Bin 42520 -> 42621 bytes .../parser/antlr/lexer/InternalErDslLexer.g | 2 +- .../antlr/lexer/InternalErDslLexer.tokens | 2 +- .../scoping/.ErDslScopeProvider.xtendbin | Bin 2970 -> 2970 bytes .../ErDslGrammarAccess$RelationElements.class | Bin 5551 -> 5557 bytes .../model/generated/ErDsl.ecore | 2 +- .../model/generated/ErDsl.genmodel | 2 +- .../org/xtext/unipampa/erdsl/ErDsl.xtextbin | Bin 3758 -> 3760 bytes .../unipampa/erdsl/erDsl/ErDslPackage.java | 16 +- .../xtext/unipampa/erdsl/erDsl/Relation.java | 20 +- .../erdsl/erDsl/impl/ErDslPackageImpl.java | 6 +- .../erdsl/erDsl/impl/RelationImpl.java | 46 +- .../antlr/internal/InternalErDslParser.g | 6 +- .../antlr/internal/InternalErDslParser.java | 32 +- .../antlr/internal/InternalErDslParser.tokens | 2 +- .../parser/antlr/lexer/InternalErDslLexer.g | 2 +- .../antlr/lexer/InternalErDslLexer.java | 111 ++-- .../antlr/lexer/InternalErDslLexer.tokens | 2 +- .../serializer/ErDslSemanticSequencer.java | 2 +- .../erdsl/services/ErDslGrammarAccess.java | 18 +- .../src/org/xtext/unipampa/erdsl/ErDsl.xtext | 2 +- .../erdsl/generator/ErDslGenerator.xtend | 2 +- .../OccurrenceDiagramGenerator.xtend | 252 ++++++++ .../generator/OcurrenceDiagramGenerator.xtend | 27 - .../generator/PlantUmlFileGenerator.xtend | 4 +- .../generator/.ErDslGenerator.java._trace | Bin 4953 -> 4953 bytes .../erdsl/generator/.ErDslGenerator.xtendbin | Bin 4539 -> 4545 bytes .../generator/.HtmlFileGenerator.xtendbin | Bin 20882 -> 20882 bytes .../generator/.MysqlFileGenerator.xtendbin | Bin 24209 -> 24209 bytes .../.OccurrenceDiagramGenerator.java._trace | Bin 0 -> 16940 bytes .../.OccurrenceDiagramGenerator.xtendbin | Bin 0 -> 7184 bytes .../.OcurrenceDiagramGenerator.java._trace | Bin 1551 -> 4532 bytes .../.OcurrenceDiagramGenerator.xtendbin | Bin 3307 -> 0 bytes .../.PlantUmlFileGenerator.java._trace | Bin 15644 -> 15285 bytes .../generator/.PlantUmlFileGenerator.xtendbin | Bin 7634 -> 7598 bytes .../.PostgresqlFileGenerator.xtendbin | Bin 24566 -> 24566 bytes .../erdsl/generator/ErDslGenerator.java | 2 +- .../generator/OccurrenceDiagramGenerator.java | 553 ++++++++++++++++++ .../generator/OcurrenceDiagramGenerator.java | 41 -- .../generator/PlantUmlFileGenerator.java | 9 +- .../scoping/.ErDslScopeProvider.xtendbin | Bin 2970 -> 2970 bytes 108 files changed, 1330 insertions(+), 353 deletions(-) create mode 100644 org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.OccurrenceDiagramGenerator.java._trace create mode 100644 org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.OccurrenceDiagramGenerator.xtendbin delete mode 100644 org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.OcurrenceDiagramGenerator.xtendbin create mode 100644 org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/OccurrenceDiagramGenerator.class create mode 100644 org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/OccurrenceDiagramGenerator.xtend delete mode 100644 org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/OcurrenceDiagramGenerator.class delete mode 100644 org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/OcurrenceDiagramGenerator.xtend create mode 100644 org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/OccurrenceDiagramGenerator.xtend delete mode 100644 org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/OcurrenceDiagramGenerator.xtend create mode 100644 org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.OccurrenceDiagramGenerator.java._trace create mode 100644 org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.OccurrenceDiagramGenerator.xtendbin delete mode 100644 org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.OcurrenceDiagramGenerator.xtendbin create mode 100644 org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/OccurrenceDiagramGenerator.java delete mode 100644 org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/OcurrenceDiagramGenerator.java diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/ErDslParser$NameMappings.class b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/ErDslParser$NameMappings.class index 9fb46a639c725e8b85c6f265cf58d5da792235be..fc6b6c3bff346c62f6750853dc32295c1ff1b5c4 100644 GIT binary patch delta 43 ycmccPaL-|byEvOEExLt@7PUW%=e!ToAH(!x%W=K7iA>x{j33@Vr)F%+={xo{^)Pl<5KE#e z^5RIWh^AN-IdLuy#Id*#vtnMXi#0JNwnbfB3Rg^vU9llDq9HcLzPJ(<;fWK`7K@@J zwnSO%2w$8{;_#FmW!}bf3#Gm8pU-|~4=WR1*CapIMs2xJj0Zgv1gECgNv``*5cr|J XsolDB)!!x@#IcD&^M7c+n&#yjxN|t! delta 259 zcmX}n%}N4M07vn2Ys7y#5mA{T6%isKArX-gQPGD%#9$E-Ee4V65XgwbxQluSw?0CP z;PwD7c*jCtc$GJ6&vDE+=(?YFPfquN}?<_ zMMdn1KwM2=c=esheq{Vo{1TnS>NmMXecLxt_{OW+ij)y cy*La5*RMb13$@?6JxCH8x9$I=%N*Oc9}BED+yDRo diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.g b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.g index 9e82861..792da78 100644 --- a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.g +++ b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.g @@ -64,7 +64,7 @@ import org.xtext.unipampa.erdsl.services.ErDslGrammarAccess; tokenNameToValue.put("PartialDisjoint", "'partial/disjoint'"); tokenNameToValue.put("TotalOverlapped", "'total/overlapped'"); tokenNameToValue.put("PartialOverlapped", "'partial/overlapped'"); - tokenNameToValue.put("GenerateOcurrenceDiagram", "'@generateOcurrenceDiagram'"); + tokenNameToValue.put("GenerateOccurrenceDiagram", "'@generateOccurrenceDiagram'"); } public void setGrammarAccess(ErDslGrammarAccess grammarAccess) { @@ -1611,9 +1611,9 @@ rule__Relation__Group__3__Impl } : ( - { before(grammarAccess.getRelationAccess().getOcurrenceAssignment_3()); } - (rule__Relation__OcurrenceAssignment_3)? - { after(grammarAccess.getRelationAccess().getOcurrenceAssignment_3()); } + { before(grammarAccess.getRelationAccess().getOccurrenceAssignment_3()); } + (rule__Relation__OccurrenceAssignment_3)? + { after(grammarAccess.getRelationAccess().getOccurrenceAssignment_3()); } ) ; finally { @@ -2304,19 +2304,19 @@ finally { restoreStackSize(stackSize); } -rule__Relation__OcurrenceAssignment_3 +rule__Relation__OccurrenceAssignment_3 @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getRelationAccess().getOcurrenceGenerateOcurrenceDiagramKeyword_3_0()); } + { before(grammarAccess.getRelationAccess().getOccurrenceGenerateOccurrenceDiagramKeyword_3_0()); } ( - { before(grammarAccess.getRelationAccess().getOcurrenceGenerateOcurrenceDiagramKeyword_3_0()); } - GenerateOcurrenceDiagram - { after(grammarAccess.getRelationAccess().getOcurrenceGenerateOcurrenceDiagramKeyword_3_0()); } + { before(grammarAccess.getRelationAccess().getOccurrenceGenerateOccurrenceDiagramKeyword_3_0()); } + GenerateOccurrenceDiagram + { after(grammarAccess.getRelationAccess().getOccurrenceGenerateOccurrenceDiagramKeyword_3_0()); } ) - { after(grammarAccess.getRelationAccess().getOcurrenceGenerateOcurrenceDiagramKeyword_3_0()); } + { after(grammarAccess.getRelationAccess().getOccurrenceGenerateOccurrenceDiagramKeyword_3_0()); } ) ; finally { diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.tokens b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.tokens index 2e5643b..8442fb3 100644 --- a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.tokens +++ b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.tokens @@ -4,7 +4,7 @@ '(1:N)'=25 ','=32 ';'=33 -'@generateOcurrenceDiagram'=4 +'@generateOccurrenceDiagram'=4 'All'=29 'Diagram'=16 'Domain'=19 diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer$DFA12.class b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer$DFA12.class index 342f3d1c81cdc26ddb2ea3ec461b2fe59d3552b7..db581e3d21a801ce0007cee0679efd16e669b5e3 100644 GIT binary patch delta 271 zcmWN{O(?^07zgn0^LsY=t9^eCN>Pj5mXeE{h~?#I9NgSiN+~-j#SS<*Y31m+nHkGJ zZ+S^+LK2cBNkWn&A;jWy{v`ZKfA&`;8qaH)Tk3iD1QT$W1UZcorcllq1eivUv#4PP zb(}*3=h4D!yw+)!1$WTd)7T;mm*C|xD!BTe*HFcE)N>P!+(Ik2(asz?xPxx)qM!R1 z;Q=Ojh!l^o!4n+w6n8ws7th7V3#sI#RP#zgyp}HBNH1??fcG-W2btibOz}z5e3liy zNG`-z6Xu(V@WVv;X@>c2#`$A1%xjZ{wprD%^=hXr(1h$e=}wUV delta 271 zcmWN{O(=tL90&04@Be#7&%yV(xS$rhEhQ&T#PV`94sLEMrPQ1p#11$)Y2{|j%hqCA zok|ZQDFQ4-#=}mYuC6#dWN2}c`>&^1d!)6TR0xG$P8ph${68v07 zBUjMORkSjJP9~#Gc88?gF*~o3br`1M;Rb4%`OllEr;8SDp^e+<;x2l)hhAnezy zfJq)=jya@wge>zY@EAp&;FG6P!GhHBOd5DD0bWQyFJ*{VGRkY2;*HGmR${!9H5O%u z_mT_n!36neLVPkKd^Qt&F*AHMX})VaKeU@)8sxY3v7{mX>YyV!?09tCu{7e8>9kYs Hdgzls*Z)y! diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.class b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.class index 082023a4ddcbe327dc219f6cc29675360f7cfad6..0cfb20535f3886af9f2f0649d1fd0c7d47e02ba9 100644 GIT binary patch delta 7828 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 delta 7897 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

Ci&j(htoDY ziT2ndXsl^P?YHQpJ)X|nlLG&)-B%Rv>e_f$*Pc#ZdlnV4XH!XgZt%>f z4aC0)qYtTo9l(i8>4^O?2v_0cwRGCv0KyEqV1G_I_BOg|2kC~rlWy6&>7JcM5A6M* zK1fgPBlO(H7leJ1$v(}>J_idI*k|Xkwy$y_`vw=aZ*d9x9+$BnaC!SNhuBZKs{Nd6 z`0W>5%OQ?%6xVay+|cpix1XAuI)%8oQ(t@_ zP6Q8j>T#mekViOCJj!XxW1Z&wmeYz;owl6jbmVDHXHIvz^Gv4~&vyFqTxS3;a0YY0 zN#rHY2=4Z=Gm2L_V|lIf7O!_wIm1cgEzUIF=A`pi&P?9v%;s;Lxt!%J;C)Vj4?0Wu ku=6n=b5` builder, builder.put(grammarAccess.getRelationAccess().getRightEndingAssignment_1_3(), "rule__Relation__RightEndingAssignment_1_3"); builder.put(grammarAccess.getRelationAccess().getAttributesAssignment_2_1(), "rule__Relation__AttributesAssignment_2_1"); builder.put(grammarAccess.getRelationAccess().getAttributesAssignment_2_2_1(), "rule__Relation__AttributesAssignment_2_2_1"); - builder.put(grammarAccess.getRelationAccess().getOcurrenceAssignment_3(), "rule__Relation__OcurrenceAssignment_3"); + builder.put(grammarAccess.getRelationAccess().getOccurrenceAssignment_3(), "rule__Relation__OccurrenceAssignment_3"); builder.put(grammarAccess.getRelationSideRightAccess().getCardinalityAssignment_0_0(), "rule__RelationSideRight__CardinalityAssignment_0_0"); builder.put(grammarAccess.getRelationSideRightAccess().getTargetAssignment_0_1(), "rule__RelationSideRight__TargetAssignment_0_1"); builder.put(grammarAccess.getRelationSideRightAccess().getTargetAssignment_1(), "rule__RelationSideRight__TargetAssignment_1"); diff --git a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.g b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.g index 9e82861..792da78 100644 --- a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.g +++ b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.g @@ -64,7 +64,7 @@ import org.xtext.unipampa.erdsl.services.ErDslGrammarAccess; tokenNameToValue.put("PartialDisjoint", "'partial/disjoint'"); tokenNameToValue.put("TotalOverlapped", "'total/overlapped'"); tokenNameToValue.put("PartialOverlapped", "'partial/overlapped'"); - tokenNameToValue.put("GenerateOcurrenceDiagram", "'@generateOcurrenceDiagram'"); + tokenNameToValue.put("GenerateOccurrenceDiagram", "'@generateOccurrenceDiagram'"); } public void setGrammarAccess(ErDslGrammarAccess grammarAccess) { @@ -1611,9 +1611,9 @@ rule__Relation__Group__3__Impl } : ( - { before(grammarAccess.getRelationAccess().getOcurrenceAssignment_3()); } - (rule__Relation__OcurrenceAssignment_3)? - { after(grammarAccess.getRelationAccess().getOcurrenceAssignment_3()); } + { before(grammarAccess.getRelationAccess().getOccurrenceAssignment_3()); } + (rule__Relation__OccurrenceAssignment_3)? + { after(grammarAccess.getRelationAccess().getOccurrenceAssignment_3()); } ) ; finally { @@ -2304,19 +2304,19 @@ finally { restoreStackSize(stackSize); } -rule__Relation__OcurrenceAssignment_3 +rule__Relation__OccurrenceAssignment_3 @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getRelationAccess().getOcurrenceGenerateOcurrenceDiagramKeyword_3_0()); } + { before(grammarAccess.getRelationAccess().getOccurrenceGenerateOccurrenceDiagramKeyword_3_0()); } ( - { before(grammarAccess.getRelationAccess().getOcurrenceGenerateOcurrenceDiagramKeyword_3_0()); } - GenerateOcurrenceDiagram - { after(grammarAccess.getRelationAccess().getOcurrenceGenerateOcurrenceDiagramKeyword_3_0()); } + { before(grammarAccess.getRelationAccess().getOccurrenceGenerateOccurrenceDiagramKeyword_3_0()); } + GenerateOccurrenceDiagram + { after(grammarAccess.getRelationAccess().getOccurrenceGenerateOccurrenceDiagramKeyword_3_0()); } ) - { after(grammarAccess.getRelationAccess().getOcurrenceGenerateOcurrenceDiagramKeyword_3_0()); } + { after(grammarAccess.getRelationAccess().getOccurrenceGenerateOccurrenceDiagramKeyword_3_0()); } ) ; finally { diff --git a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.java b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.java index 6081f84..5c0708b 100644 --- a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.java +++ b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.java @@ -24,13 +24,14 @@ @SuppressWarnings("all") public class InternalErDslParser extends AbstractInternalContentAssistParser { public static final String[] tokenNames = new String[] { - "", "", "", "", "GenerateOcurrenceDiagram", "PartialOverlapped", "PartialDisjoint", "TotalOverlapped", "TotalDisjoint", "LogicalSchema", "Relationships", "IsIdentifier", "PostgreSQL", "Entities", "Generate", "Datetime", "Diagram", "Boolean", "Relates", "Domain", "Double", "String", "LeftParenthesisDigitZeroColonDigitOneRightParenthesis", "N", "LeftParenthesisDigitOneColonDigitOneRightParenthesis", "N_1", "MySQL", "Money", "File", "All", "Int", "Is", "Comma", "Semicolon", "LeftSquareBracket", "RightSquareBracket", "LeftCurlyBracket", "RightCurlyBracket", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER" + "", "", "", "", "GenerateOccurrenceDiagram", "PartialOverlapped", "PartialDisjoint", "TotalOverlapped", "TotalDisjoint", "LogicalSchema", "Relationships", "IsIdentifier", "PostgreSQL", "Entities", "Generate", "Datetime", "Diagram", "Boolean", "Relates", "Domain", "Double", "String", "LeftParenthesisDigitZeroColonDigitOneRightParenthesis", "N", "LeftParenthesisDigitOneColonDigitOneRightParenthesis", "N_1", "MySQL", "Money", "File", "All", "Int", "Is", "Comma", "Semicolon", "LeftSquareBracket", "RightSquareBracket", "LeftCurlyBracket", "RightCurlyBracket", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER" }; public static final int All=29; public static final int N_1=25; public static final int PostgreSQL=12; public static final int String=21; public static final int TotalOverlapped=7; + public static final int GenerateOccurrenceDiagram=4; public static final int MySQL=26; public static final int Boolean=17; public static final int RightSquareBracket=35; @@ -49,7 +50,6 @@ public class InternalErDslParser extends AbstractInternalContentAssistParser { public static final int Is=31; public static final int RULE_STRING=40; public static final int LeftParenthesisDigitZeroColonDigitOneRightParenthesis=22; - public static final int GenerateOcurrenceDiagram=4; public static final int N=23; public static final int Int=30; public static final int RULE_SL_COMMENT=42; @@ -123,7 +123,7 @@ public InternalErDslParser(TokenStream input, RecognizerSharedState state) { tokenNameToValue.put("PartialDisjoint", "'partial/disjoint'"); tokenNameToValue.put("TotalOverlapped", "'total/overlapped'"); tokenNameToValue.put("PartialOverlapped", "'partial/overlapped'"); - tokenNameToValue.put("GenerateOcurrenceDiagram", "'@generateOcurrenceDiagram'"); + tokenNameToValue.put("GenerateOccurrenceDiagram", "'@generateOccurrenceDiagram'"); } public void setGrammarAccess(ErDslGrammarAccess grammarAccess) { @@ -4975,32 +4975,32 @@ public final void rule__Relation__Group__3() throws RecognitionException { // $ANTLR start "rule__Relation__Group__3__Impl" - // InternalErDslParser.g:1608:1: rule__Relation__Group__3__Impl : ( ( rule__Relation__OcurrenceAssignment_3 )? ) ; + // InternalErDslParser.g:1608:1: rule__Relation__Group__3__Impl : ( ( rule__Relation__OccurrenceAssignment_3 )? ) ; public final void rule__Relation__Group__3__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1612:1: ( ( ( rule__Relation__OcurrenceAssignment_3 )? ) ) - // InternalErDslParser.g:1613:1: ( ( rule__Relation__OcurrenceAssignment_3 )? ) + // InternalErDslParser.g:1612:1: ( ( ( rule__Relation__OccurrenceAssignment_3 )? ) ) + // InternalErDslParser.g:1613:1: ( ( rule__Relation__OccurrenceAssignment_3 )? ) { - // InternalErDslParser.g:1613:1: ( ( rule__Relation__OcurrenceAssignment_3 )? ) - // InternalErDslParser.g:1614:2: ( rule__Relation__OcurrenceAssignment_3 )? + // InternalErDslParser.g:1613:1: ( ( rule__Relation__OccurrenceAssignment_3 )? ) + // InternalErDslParser.g:1614:2: ( rule__Relation__OccurrenceAssignment_3 )? { - before(grammarAccess.getRelationAccess().getOcurrenceAssignment_3()); - // InternalErDslParser.g:1615:2: ( rule__Relation__OcurrenceAssignment_3 )? + before(grammarAccess.getRelationAccess().getOccurrenceAssignment_3()); + // InternalErDslParser.g:1615:2: ( rule__Relation__OccurrenceAssignment_3 )? int alt16=2; int LA16_0 = input.LA(1); - if ( (LA16_0==GenerateOcurrenceDiagram) ) { + if ( (LA16_0==GenerateOccurrenceDiagram) ) { alt16=1; } switch (alt16) { case 1 : - // InternalErDslParser.g:1615:3: rule__Relation__OcurrenceAssignment_3 + // InternalErDslParser.g:1615:3: rule__Relation__OccurrenceAssignment_3 { pushFollow(FOLLOW_2); - rule__Relation__OcurrenceAssignment_3(); + rule__Relation__OccurrenceAssignment_3(); state._fsp--; @@ -5010,7 +5010,7 @@ public final void rule__Relation__Group__3__Impl() throws RecognitionException { } - after(grammarAccess.getRelationAccess().getOcurrenceAssignment_3()); + after(grammarAccess.getRelationAccess().getOccurrenceAssignment_3()); } @@ -6982,30 +6982,30 @@ public final void rule__Relation__AttributesAssignment_2_2_1() throws Recognitio // $ANTLR end "rule__Relation__AttributesAssignment_2_2_1" - // $ANTLR start "rule__Relation__OcurrenceAssignment_3" - // InternalErDslParser.g:2307:1: rule__Relation__OcurrenceAssignment_3 : ( ( GenerateOcurrenceDiagram ) ) ; - public final void rule__Relation__OcurrenceAssignment_3() throws RecognitionException { + // $ANTLR start "rule__Relation__OccurrenceAssignment_3" + // InternalErDslParser.g:2307:1: rule__Relation__OccurrenceAssignment_3 : ( ( GenerateOccurrenceDiagram ) ) ; + public final void rule__Relation__OccurrenceAssignment_3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2311:1: ( ( ( GenerateOcurrenceDiagram ) ) ) - // InternalErDslParser.g:2312:2: ( ( GenerateOcurrenceDiagram ) ) + // InternalErDslParser.g:2311:1: ( ( ( GenerateOccurrenceDiagram ) ) ) + // InternalErDslParser.g:2312:2: ( ( GenerateOccurrenceDiagram ) ) { - // InternalErDslParser.g:2312:2: ( ( GenerateOcurrenceDiagram ) ) - // InternalErDslParser.g:2313:3: ( GenerateOcurrenceDiagram ) + // InternalErDslParser.g:2312:2: ( ( GenerateOccurrenceDiagram ) ) + // InternalErDslParser.g:2313:3: ( GenerateOccurrenceDiagram ) { - before(grammarAccess.getRelationAccess().getOcurrenceGenerateOcurrenceDiagramKeyword_3_0()); - // InternalErDslParser.g:2314:3: ( GenerateOcurrenceDiagram ) - // InternalErDslParser.g:2315:4: GenerateOcurrenceDiagram + before(grammarAccess.getRelationAccess().getOccurrenceGenerateOccurrenceDiagramKeyword_3_0()); + // InternalErDslParser.g:2314:3: ( GenerateOccurrenceDiagram ) + // InternalErDslParser.g:2315:4: GenerateOccurrenceDiagram { - before(grammarAccess.getRelationAccess().getOcurrenceGenerateOcurrenceDiagramKeyword_3_0()); - match(input,GenerateOcurrenceDiagram,FOLLOW_2); - after(grammarAccess.getRelationAccess().getOcurrenceGenerateOcurrenceDiagramKeyword_3_0()); + before(grammarAccess.getRelationAccess().getOccurrenceGenerateOccurrenceDiagramKeyword_3_0()); + match(input,GenerateOccurrenceDiagram,FOLLOW_2); + after(grammarAccess.getRelationAccess().getOccurrenceGenerateOccurrenceDiagramKeyword_3_0()); } - after(grammarAccess.getRelationAccess().getOcurrenceGenerateOcurrenceDiagramKeyword_3_0()); + after(grammarAccess.getRelationAccess().getOccurrenceGenerateOccurrenceDiagramKeyword_3_0()); } @@ -7024,7 +7024,7 @@ public final void rule__Relation__OcurrenceAssignment_3() throws RecognitionExce } return ; } - // $ANTLR end "rule__Relation__OcurrenceAssignment_3" + // $ANTLR end "rule__Relation__OccurrenceAssignment_3" // $ANTLR start "rule__RelationSideRight__CardinalityAssignment_0_0" diff --git a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.tokens b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.tokens index 2e5643b..8442fb3 100644 --- a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.tokens +++ b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.tokens @@ -4,7 +4,7 @@ '(1:N)'=25 ','=32 ';'=33 -'@generateOcurrenceDiagram'=4 +'@generateOccurrenceDiagram'=4 'All'=29 'Diagram'=16 'Domain'=19 diff --git a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.g b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.g index 5433a64..ab73b4b 100644 --- a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.g +++ b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.g @@ -11,7 +11,7 @@ package org.xtext.unipampa.erdsl.ide.contentassist.antlr.lexer; import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer; } -GenerateOcurrenceDiagram : '@'('G'|'g')('E'|'e')('N'|'n')('E'|'e')('R'|'r')('A'|'a')('T'|'t')('E'|'e')('O'|'o')('C'|'c')('U'|'u')('R'|'r')('R'|'r')('E'|'e')('N'|'n')('C'|'c')('E'|'e')('D'|'d')('I'|'i')('A'|'a')('G'|'g')('R'|'r')('A'|'a')('M'|'m'); +GenerateOccurrenceDiagram : '@'('G'|'g')('E'|'e')('N'|'n')('E'|'e')('R'|'r')('A'|'a')('T'|'t')('E'|'e')('O'|'o')('C'|'c')('C'|'c')('U'|'u')('R'|'r')('R'|'r')('E'|'e')('N'|'n')('C'|'c')('E'|'e')('D'|'d')('I'|'i')('A'|'a')('G'|'g')('R'|'r')('A'|'a')('M'|'m'); PartialOverlapped : ('P'|'p')('A'|'a')('R'|'r')('T'|'t')('I'|'i')('A'|'a')('L'|'l')'/'('O'|'o')('V'|'v')('E'|'e')('R'|'r')('L'|'l')('A'|'a')('P'|'p')('P'|'p')('E'|'e')('D'|'d'); diff --git a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.java b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.java index eb72828..94d3399 100644 --- a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.java +++ b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.java @@ -17,6 +17,7 @@ public class InternalErDslLexer extends Lexer { public static final int PostgreSQL=12; public static final int String=21; public static final int TotalOverlapped=7; + public static final int GenerateOccurrenceDiagram=4; public static final int MySQL=26; public static final int Boolean=17; public static final int RightSquareBracket=35; @@ -35,7 +36,6 @@ public class InternalErDslLexer extends Lexer { public static final int Is=31; public static final int RULE_STRING=40; public static final int LeftParenthesisDigitZeroColonDigitOneRightParenthesis=22; - public static final int GenerateOcurrenceDiagram=4; public static final int N=23; public static final int Int=30; public static final int RULE_SL_COMMENT=42; @@ -68,13 +68,13 @@ public InternalErDslLexer(CharStream input, RecognizerSharedState state) { } public String getGrammarFileName() { return "InternalErDslLexer.g"; } - // $ANTLR start "GenerateOcurrenceDiagram" - public final void mGenerateOcurrenceDiagram() throws RecognitionException { + // $ANTLR start "GenerateOccurrenceDiagram" + public final void mGenerateOccurrenceDiagram() throws RecognitionException { try { - int _type = GenerateOcurrenceDiagram; + int _type = GenerateOccurrenceDiagram; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:14:26: ( '@' ( 'G' | 'g' ) ( 'E' | 'e' ) ( 'N' | 'n' ) ( 'E' | 'e' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'O' | 'o' ) ( 'C' | 'c' ) ( 'U' | 'u' ) ( 'R' | 'r' ) ( 'R' | 'r' ) ( 'E' | 'e' ) ( 'N' | 'n' ) ( 'C' | 'c' ) ( 'E' | 'e' ) ( 'D' | 'd' ) ( 'I' | 'i' ) ( 'A' | 'a' ) ( 'G' | 'g' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'M' | 'm' ) ) - // InternalErDslLexer.g:14:28: '@' ( 'G' | 'g' ) ( 'E' | 'e' ) ( 'N' | 'n' ) ( 'E' | 'e' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'O' | 'o' ) ( 'C' | 'c' ) ( 'U' | 'u' ) ( 'R' | 'r' ) ( 'R' | 'r' ) ( 'E' | 'e' ) ( 'N' | 'n' ) ( 'C' | 'c' ) ( 'E' | 'e' ) ( 'D' | 'd' ) ( 'I' | 'i' ) ( 'A' | 'a' ) ( 'G' | 'g' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'M' | 'm' ) + // InternalErDslLexer.g:14:27: ( '@' ( 'G' | 'g' ) ( 'E' | 'e' ) ( 'N' | 'n' ) ( 'E' | 'e' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'O' | 'o' ) ( 'C' | 'c' ) ( 'C' | 'c' ) ( 'U' | 'u' ) ( 'R' | 'r' ) ( 'R' | 'r' ) ( 'E' | 'e' ) ( 'N' | 'n' ) ( 'C' | 'c' ) ( 'E' | 'e' ) ( 'D' | 'd' ) ( 'I' | 'i' ) ( 'A' | 'a' ) ( 'G' | 'g' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'M' | 'm' ) ) + // InternalErDslLexer.g:14:29: '@' ( 'G' | 'g' ) ( 'E' | 'e' ) ( 'N' | 'n' ) ( 'E' | 'e' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'O' | 'o' ) ( 'C' | 'c' ) ( 'C' | 'c' ) ( 'U' | 'u' ) ( 'R' | 'r' ) ( 'R' | 'r' ) ( 'E' | 'e' ) ( 'N' | 'n' ) ( 'C' | 'c' ) ( 'E' | 'e' ) ( 'D' | 'd' ) ( 'I' | 'i' ) ( 'A' | 'a' ) ( 'G' | 'g' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'M' | 'm' ) { match('@'); if ( input.LA(1)=='G'||input.LA(1)=='g' ) { @@ -167,6 +167,15 @@ public final void mGenerateOcurrenceDiagram() throws RecognitionException { recover(mse); throw mse;} + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { input.consume(); @@ -302,7 +311,7 @@ public final void mGenerateOcurrenceDiagram() throws RecognitionException { finally { } } - // $ANTLR end "GenerateOcurrenceDiagram" + // $ANTLR end "GenerateOccurrenceDiagram" // $ANTLR start "PartialOverlapped" public final void mPartialOverlapped() throws RecognitionException { @@ -3213,292 +3222,292 @@ public final void mRULE_ANY_OTHER() throws RecognitionException { // $ANTLR end "RULE_ANY_OTHER" public void mTokens() throws RecognitionException { - // InternalErDslLexer.g:1:8: ( GenerateOcurrenceDiagram | PartialOverlapped | PartialDisjoint | TotalOverlapped | TotalDisjoint | LogicalSchema | Relationships | IsIdentifier | PostgreSQL | Entities | Generate | Datetime | Diagram | Boolean | Relates | Domain | Double | String | LeftParenthesisDigitZeroColonDigitOneRightParenthesis | N | LeftParenthesisDigitOneColonDigitOneRightParenthesis | N_1 | MySQL | Money | File | All | Int | Is | Comma | Semicolon | LeftSquareBracket | RightSquareBracket | LeftCurlyBracket | RightCurlyBracket | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + // InternalErDslLexer.g:1:8: ( GenerateOccurrenceDiagram | PartialOverlapped | PartialDisjoint | TotalOverlapped | TotalDisjoint | LogicalSchema | Relationships | IsIdentifier | PostgreSQL | Entities | Generate | Datetime | Diagram | Boolean | Relates | Domain | Double | String | LeftParenthesisDigitZeroColonDigitOneRightParenthesis | N | LeftParenthesisDigitOneColonDigitOneRightParenthesis | N_1 | MySQL | Money | File | All | Int | Is | Comma | Semicolon | LeftSquareBracket | RightSquareBracket | LeftCurlyBracket | RightCurlyBracket | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) int alt12=41; alt12 = dfa12.predict(input); switch (alt12) { case 1 : - // InternalErDslLexer.g:1:10: GenerateOcurrenceDiagram + // InternalErDslLexer.g:1:10: GenerateOccurrenceDiagram { - mGenerateOcurrenceDiagram(); + mGenerateOccurrenceDiagram(); } break; case 2 : - // InternalErDslLexer.g:1:35: PartialOverlapped + // InternalErDslLexer.g:1:36: PartialOverlapped { mPartialOverlapped(); } break; case 3 : - // InternalErDslLexer.g:1:53: PartialDisjoint + // InternalErDslLexer.g:1:54: PartialDisjoint { mPartialDisjoint(); } break; case 4 : - // InternalErDslLexer.g:1:69: TotalOverlapped + // InternalErDslLexer.g:1:70: TotalOverlapped { mTotalOverlapped(); } break; case 5 : - // InternalErDslLexer.g:1:85: TotalDisjoint + // InternalErDslLexer.g:1:86: TotalDisjoint { mTotalDisjoint(); } break; case 6 : - // InternalErDslLexer.g:1:99: LogicalSchema + // InternalErDslLexer.g:1:100: LogicalSchema { mLogicalSchema(); } break; case 7 : - // InternalErDslLexer.g:1:113: Relationships + // InternalErDslLexer.g:1:114: Relationships { mRelationships(); } break; case 8 : - // InternalErDslLexer.g:1:127: IsIdentifier + // InternalErDslLexer.g:1:128: IsIdentifier { mIsIdentifier(); } break; case 9 : - // InternalErDslLexer.g:1:140: PostgreSQL + // InternalErDslLexer.g:1:141: PostgreSQL { mPostgreSQL(); } break; case 10 : - // InternalErDslLexer.g:1:151: Entities + // InternalErDslLexer.g:1:152: Entities { mEntities(); } break; case 11 : - // InternalErDslLexer.g:1:160: Generate + // InternalErDslLexer.g:1:161: Generate { mGenerate(); } break; case 12 : - // InternalErDslLexer.g:1:169: Datetime + // InternalErDslLexer.g:1:170: Datetime { mDatetime(); } break; case 13 : - // InternalErDslLexer.g:1:178: Diagram + // InternalErDslLexer.g:1:179: Diagram { mDiagram(); } break; case 14 : - // InternalErDslLexer.g:1:186: Boolean + // InternalErDslLexer.g:1:187: Boolean { mBoolean(); } break; case 15 : - // InternalErDslLexer.g:1:194: Relates + // InternalErDslLexer.g:1:195: Relates { mRelates(); } break; case 16 : - // InternalErDslLexer.g:1:202: Domain + // InternalErDslLexer.g:1:203: Domain { mDomain(); } break; case 17 : - // InternalErDslLexer.g:1:209: Double + // InternalErDslLexer.g:1:210: Double { mDouble(); } break; case 18 : - // InternalErDslLexer.g:1:216: String + // InternalErDslLexer.g:1:217: String { mString(); } break; case 19 : - // InternalErDslLexer.g:1:223: LeftParenthesisDigitZeroColonDigitOneRightParenthesis + // InternalErDslLexer.g:1:224: LeftParenthesisDigitZeroColonDigitOneRightParenthesis { mLeftParenthesisDigitZeroColonDigitOneRightParenthesis(); } break; case 20 : - // InternalErDslLexer.g:1:277: N + // InternalErDslLexer.g:1:278: N { mN(); } break; case 21 : - // InternalErDslLexer.g:1:279: LeftParenthesisDigitOneColonDigitOneRightParenthesis + // InternalErDslLexer.g:1:280: LeftParenthesisDigitOneColonDigitOneRightParenthesis { mLeftParenthesisDigitOneColonDigitOneRightParenthesis(); } break; case 22 : - // InternalErDslLexer.g:1:332: N_1 + // InternalErDslLexer.g:1:333: N_1 { mN_1(); } break; case 23 : - // InternalErDslLexer.g:1:336: MySQL + // InternalErDslLexer.g:1:337: MySQL { mMySQL(); } break; case 24 : - // InternalErDslLexer.g:1:342: Money + // InternalErDslLexer.g:1:343: Money { mMoney(); } break; case 25 : - // InternalErDslLexer.g:1:348: File + // InternalErDslLexer.g:1:349: File { mFile(); } break; case 26 : - // InternalErDslLexer.g:1:353: All + // InternalErDslLexer.g:1:354: All { mAll(); } break; case 27 : - // InternalErDslLexer.g:1:357: Int + // InternalErDslLexer.g:1:358: Int { mInt(); } break; case 28 : - // InternalErDslLexer.g:1:361: Is + // InternalErDslLexer.g:1:362: Is { mIs(); } break; case 29 : - // InternalErDslLexer.g:1:364: Comma + // InternalErDslLexer.g:1:365: Comma { mComma(); } break; case 30 : - // InternalErDslLexer.g:1:370: Semicolon + // InternalErDslLexer.g:1:371: Semicolon { mSemicolon(); } break; case 31 : - // InternalErDslLexer.g:1:380: LeftSquareBracket + // InternalErDslLexer.g:1:381: LeftSquareBracket { mLeftSquareBracket(); } break; case 32 : - // InternalErDslLexer.g:1:398: RightSquareBracket + // InternalErDslLexer.g:1:399: RightSquareBracket { mRightSquareBracket(); } break; case 33 : - // InternalErDslLexer.g:1:417: LeftCurlyBracket + // InternalErDslLexer.g:1:418: LeftCurlyBracket { mLeftCurlyBracket(); } break; case 34 : - // InternalErDslLexer.g:1:434: RightCurlyBracket + // InternalErDslLexer.g:1:435: RightCurlyBracket { mRightCurlyBracket(); } break; case 35 : - // InternalErDslLexer.g:1:452: RULE_ID + // InternalErDslLexer.g:1:453: RULE_ID { mRULE_ID(); } break; case 36 : - // InternalErDslLexer.g:1:460: RULE_INT + // InternalErDslLexer.g:1:461: RULE_INT { mRULE_INT(); } break; case 37 : - // InternalErDslLexer.g:1:469: RULE_STRING + // InternalErDslLexer.g:1:470: RULE_STRING { mRULE_STRING(); } break; case 38 : - // InternalErDslLexer.g:1:481: RULE_ML_COMMENT + // InternalErDslLexer.g:1:482: RULE_ML_COMMENT { mRULE_ML_COMMENT(); } break; case 39 : - // InternalErDslLexer.g:1:497: RULE_SL_COMMENT + // InternalErDslLexer.g:1:498: RULE_SL_COMMENT { mRULE_SL_COMMENT(); } break; case 40 : - // InternalErDslLexer.g:1:513: RULE_WS + // InternalErDslLexer.g:1:514: RULE_WS { mRULE_WS(); } break; case 41 : - // InternalErDslLexer.g:1:521: RULE_ANY_OTHER + // InternalErDslLexer.g:1:522: RULE_ANY_OTHER { mRULE_ANY_OTHER(); @@ -3750,7 +3759,7 @@ public DFA12(BaseRecognizer recognizer) { this.transition = DFA12_transition; } public String getDescription() { - return "1:1: Tokens : ( GenerateOcurrenceDiagram | PartialOverlapped | PartialDisjoint | TotalOverlapped | TotalDisjoint | LogicalSchema | Relationships | IsIdentifier | PostgreSQL | Entities | Generate | Datetime | Diagram | Boolean | Relates | Domain | Double | String | LeftParenthesisDigitZeroColonDigitOneRightParenthesis | N | LeftParenthesisDigitOneColonDigitOneRightParenthesis | N_1 | MySQL | Money | File | All | Int | Is | Comma | Semicolon | LeftSquareBracket | RightSquareBracket | LeftCurlyBracket | RightCurlyBracket | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; + return "1:1: Tokens : ( GenerateOccurrenceDiagram | PartialOverlapped | PartialDisjoint | TotalOverlapped | TotalDisjoint | LogicalSchema | Relationships | IsIdentifier | PostgreSQL | Entities | Generate | Datetime | Diagram | Boolean | Relates | Domain | Double | String | LeftParenthesisDigitZeroColonDigitOneRightParenthesis | N | LeftParenthesisDigitOneColonDigitOneRightParenthesis | N_1 | MySQL | Money | File | All | Int | Is | Comma | Semicolon | LeftSquareBracket | RightSquareBracket | LeftCurlyBracket | RightCurlyBracket | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; } public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { IntStream input = _input; diff --git a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.tokens b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.tokens index da340ad..7ae75a9 100644 --- a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.tokens +++ b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.tokens @@ -8,7 +8,7 @@ Double=20 Entities=13 File=28 Generate=14 -GenerateOcurrenceDiagram=4 +GenerateOccurrenceDiagram=4 Int=30 Is=31 IsIdentifier=11 diff --git a/org.xtext.unipampa.erdsl.tests/test-bin/org/xtext/unipampa/erdsl/tests/.ErDslParsingTest.xtendbin b/org.xtext.unipampa.erdsl.tests/test-bin/org/xtext/unipampa/erdsl/tests/.ErDslParsingTest.xtendbin index b8f1e2d7a3b3bdbc15abb1ca8078cd2a6f345b8d..cb2b32fd06657ca0911e47868ede235fb69c2019 100644 GIT binary patch delta 58 zcmZ23wOooPz?+#xgn@&DgMn|yMxNiSOnf^wbF%5NfM`oDJtiPMIg`f%L@nlV08vkQ FoB*2z4{87a delta 58 zcmZ23wOooPz?+#xgn@&DgW>v`jXb|unXa$d%*m$50-`Os^q7G3v`jXb|unXa$d%*m$50-`Os^q7G3tdRmkxz?+#xgn@&DgF$G=MxJICCZQdhC$jJ{gXo3qSxi8BGB1|}h;rw008yP> FP5`P$4>JG& delta 58 zcmX>tdRmkxz?+#xgn@&DgW=|yjXcdPOgGnTp2)(-45AmZXE6ck$-G<^Aj+M~0Yr6j GIRO9_L=%+& diff --git a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/contentassist/.ErDslProposalProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/contentassist/.ErDslProposalProvider.xtendbin index 87003bfa6537f853ea9ea27fdf58e6ef89431a6a..83fda5680fedef41e40c8bdedd0330528787669d 100644 GIT binary patch delta 58 zcmX@ld!Cmkz?+#xgn@&DgF$G=Mjl5dCZQdh{h4aO^jQ`sMj(H(Ae#k<@@8`YQN3(V E0HX;H5C8xG delta 58 zcmX@ld!Cmkz?+#xgn@&DgCS$>Mjl5dri`_l{h4aO^jQ`sMj(H(Ae#k<@@8`YQN3(V E0L~E*(f|Me diff --git a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/contentassist/AbstractErDslProposalProvider.class b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/contentassist/AbstractErDslProposalProvider.class index 3092fe2dde5a89e8d4c61f77049cf421f40655c9..56d142b29dff4975697cd46b55b60b9b15da0356 100644 GIT binary patch delta 33 pcmaE^{X%=gYc>(-mm4+*=~`ANMj(IkK{g8z^_$HBMA@=C F0RZAE5hDNq delta 58 zcmey*_n(g^z?+#xgn@&DgW=|yjXVuZOgGnT?qhljrfXT97=irB2iYt@)NeKi5M|5m F1OQDZ6@>r* diff --git a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/labeling/.ErDslLabelProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/labeling/.ErDslLabelProvider.xtendbin index 88ad260810143c7176c1ccd7f54bc9e329bf2042..75d96678b948d1522b1e2af4654663c906f1cb3e 100644 GIT binary patch delta 58 zcmdlgv{i^Fz?+#xgn@&DgF$G=MxHKaCZQdhXD}Oq=`(CA8G-!C*OgGnTu4M8B(h!vW|cSh)NT108uLh FoB+HJ5Ags1 delta 58 zcmaE*_)3u{z?+#xgn@&DgW=|yjXYAEOgGnT*5F*p0-`VThBE=_$vOfSASzA30Yt43 GZ~_1)3=~rU diff --git a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/wizard/.ErDslProjectTemplateProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/wizard/.ErDslProjectTemplateProvider.xtendbin index 18938bcf4b6cf73cd5c90e2f0772561e77695d83..1849746023d51afe1291ca9b54dff17d11ec6fbd 100644 GIT binary patch delta 58 zcmZ2ww#tkrz?+#xgn@&DgF$G=MxJnfCZQdhQ~6^#K=cvuWlTVNa*mV*h*~D)0HR(< GIROB{?-2n2 delta 58 zcmZ2ww#tkrz?+#xgn@&DgW=|yjXdG}OgGnTPUVl~0MSRpmoWk9$vILMAZnSE1BiMd G=k1G diff --git a/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/contentassist/AbstractErDslProposalProvider.java b/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/contentassist/AbstractErDslProposalProvider.java index a8aeb7c..d0f91a3 100644 --- a/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/contentassist/AbstractErDslProposalProvider.java +++ b/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/contentassist/AbstractErDslProposalProvider.java @@ -73,7 +73,7 @@ public void completeRelation_RightEnding(EObject model, Assignment assignment, C public void completeRelation_Attributes(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); } - public void completeRelation_Ocurrence(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + public void completeRelation_Occurrence(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { // subclasses may override } public void completeRelationSideRight_Cardinality(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { diff --git a/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/.ErDslUiModule.xtendbin b/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/.ErDslUiModule.xtendbin index 4e2a8d412fed78bd127172ac5ba090bea901b6a7..b564c87c5d7d35507b6a94c8206f3db9b7e3d9a8 100644 GIT binary patch delta 58 zcmaDa_+F4Fz?+#xgn@&DgF$G=MxL`wOhP+0-)6ec45Ih26*B_q$%Y&jAS#=~0Yt6k GZ~_4BXc1fh delta 58 zcmaDa_+F4Fz?+#xgn@&DgW=|yjXYtdRmkxz?+#xgn@&DgF$G=MxJICCZQdhC$jJ{gXo3qSxi8BGB1|}h;rw008yP> FP5`P$4>JG& delta 58 zcmX>tdRmkxz?+#xgn@&DgW=|yjXcdPOgGnTp2)(-45AmZXE6ck$-G<^Aj+M~0Yr6j GIRO9_L=%+& diff --git a/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/contentassist/.ErDslProposalProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/contentassist/.ErDslProposalProvider.xtendbin index 87003bfa6537f853ea9ea27fdf58e6ef89431a6a..83fda5680fedef41e40c8bdedd0330528787669d 100644 GIT binary patch delta 58 zcmX@ld!Cmkz?+#xgn@&DgF$G=Mjl5dCZQdh{h4aO^jQ`sMj(H(Ae#k<@@8`YQN3(V E0HX;H5C8xG delta 58 zcmX@ld!Cmkz?+#xgn@&DgCS$>Mjl5dri`_l{h4aO^jQ`sMj(H(Ae#k<@@8`YQN3(V E0L~E*(f|Me diff --git a/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/labeling/.ErDslDescriptionLabelProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/labeling/.ErDslDescriptionLabelProvider.xtendbin index 14b07627af4ebccc5484810754bf2ade2d66ea12..1b51ff61a47a664fe2977eadf9c9dba4c42c2dfb 100644 GIT binary patch delta 58 zcmey*_n(g^z?+#xgn@&DgF$G=MxF*HCZQdh`=~`ANMj(IkK{g8z^_$HBMA@=C F0RZAE5hDNq delta 58 zcmey*_n(g^z?+#xgn@&DgW=|yjXVuZOgGnT?qhljrfXT97=irB2iYt@)NeKi5M|5m F1OQDZ6@>r* diff --git a/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/labeling/.ErDslLabelProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/labeling/.ErDslLabelProvider.xtendbin index 88ad260810143c7176c1ccd7f54bc9e329bf2042..75d96678b948d1522b1e2af4654663c906f1cb3e 100644 GIT binary patch delta 58 zcmdlgv{i^Fz?+#xgn@&DgF$G=MxHKaCZQdhXD}Oq=`(CA8G-!C*OgGnTu4M8B(h!vW|cSh)NT108uLh FoB+HJ5Ags1 delta 58 zcmaE*_)3u{z?+#xgn@&DgW=|yjXYAEOgGnT*5F*p0-`VThBE=_$vOfSASzA30Yt43 GZ~_1)3=~rU diff --git a/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/wizard/.ErDslProjectTemplateProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/wizard/.ErDslProjectTemplateProvider.xtendbin index 18938bcf4b6cf73cd5c90e2f0772561e77695d83..1849746023d51afe1291ca9b54dff17d11ec6fbd 100644 GIT binary patch delta 58 zcmZ2ww#tkrz?+#xgn@&DgF$G=MxJnfCZQdhQ~6^#K=cvuWlTVNa*mV*h*~D)0HR(< GIROB{?-2n2 delta 58 zcmZ2ww#tkrz?+#xgn@&DgW=|yjXdG}OgGnTPUVl~0MSRpmoWk9$vILMAZnSE1BiMd G=k1G diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDsl.xtext b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDsl.xtext index c14c971..840d4a6 100644 --- a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDsl.xtext +++ b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDsl.xtext @@ -24,7 +24,7 @@ Relation: 'relates' rightEnding=RelationSideRight ']') ('{' attributes+=Attribute - (',' attributes+=Attribute)* '}')* ocurrence=('@generateOcurrenceDiagram')?; + (',' attributes+=Attribute)* '}')* occurrence=('@generateOccurrenceDiagram')?; RelationSideRight: cardinality=('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDsl.xtextbin b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDsl.xtextbin index 522ec879d8f7a7e73adaa0b772f749fff75ce255..026c1fea52cdc9492a5e16ff194835f2209c42cb 100644 GIT binary patch delta 44 zcmZ1{yFqqCAfEzvesXeYQBi7Maw;2>ExW@nMmAPyhxF9E)S|?aRR843`F!>OL(mR2 delta 42 xcmdlWyH0jPAfFspesXD1QEFatDjSn6yTdO=HdZNz^whl6qQsI^|H*}X_5dX84Q&7b diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/ErDslPackage$Literals.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/ErDslPackage$Literals.class index 74039eff31cb73f723318eb43420f75a9c2744b9..706ee4bbbdffa5edaa0699695df76c6cc838935c 100644 GIT binary patch delta 47 zcmaDN@l0Za0~4=EkgJblh^N0_e7wK&W*;U!R(`Sc)RLgooWzpM{JePouc~WwN1~acnkgJblh^N0_e7wK&W)o&M7Jjkx)RLgooWzpM{JePopd0cXX1~ZRvkgJblh^N0_e7yf=Q)V_6KGF2llAzR_#FEVXJfN5tdp#=vJcAAN diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/Relation.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/Relation.class index 9ac1ed21ce7bf18fdd20a97a0784b3e17cf2381f..19bfef0e196d8ede30f497db2f9b5f921b6d0186 100644 GIT binary patch delta 34 ncmeBS>toxH%_PQ~o?7CcoLpK|l$w{E%E-W54B}6&XX*t2!Osg_ delta 32 mcmeBU>tWlF%_PE;o?7CcTv}9=nwOl)$iPz!IDF*j0%+i diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/ErDslPackageImpl.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/ErDslPackageImpl.class index e1a290ba50f8cdb957ea48581d142d81816a9dc7..e12e5beda1cb511c031aa231821616c1d5992fad 100644 GIT binary patch delta 37 scmeD7?)BbqlY?I@J+&k#H7BtoGe0lhKY8d01ws;F#rGn delta 35 qcmeD6?)KhrlY>t*J+&k#H7BtoGe0lhfAb5DKn^C({LMCkfg%9&;S6d3 diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/RelationImpl.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/RelationImpl.class index e86c6033a702bdd66e6e8ab23642f9a0e6dc74c7..3abad832ae6e564be9ba0ffeb6f1b5acc56665e8 100644 GIT binary patch delta 98 zcmdmOe$afwTSiG?e`n{=pdeR2XV-XF7gsmOP@fP+2Cn?%%`8l%oMyb~sU`l&$)!a_ dsd>q%j10WRX#Bj?auoUeoD~1$&8xWu1ON| delta 92 zcmX?TzT14mTSjpqf9KGkAXh(U*LYVKS2xE{pAbd{&iu`6Or@MgJn5+={>i09MX7no Zsf-Lf#i-o8)N*9m{G1g3%^SG|1OQFZ9Q^*Akvm9YGYN3LTTx_=g!7E z2I_CW`@iR$x$B*4he9D0pl}1&H$qZs%n6k<8$yHICpY!%-nn7-&YoS{Ha|D9^|^_j z4U_A4JlnHr!?q2R6Faw0_E?kVj%S@ByK(on^)j@99Fm|_QbLe^(mfPmtG{j=lG9JJ zqmdfEz>dxfHFg zZbpzf8zXr!%ph~QY5sg{`b+~#%3N-s%-0`8-NriFInBJrMr``hlIrS^VuqqK0yA1k zdbJWWFk9n|jo9?fT9jnA)>7uHL)1-0X=jG5P9(7DyZtpa*!0nw8G*SeLOLD649qiZqmH#RN0;}1etk1v4wDXZ#s&k`4QK~BySWhdIty8FO-2&3L>#1&YM2Nm5 zR;j?+qfz!?@CYsZi5wSN4vAiLYzu;555|LTx1 zI})dCsbtCX@5C#_nP}cW%j<|&Q9cT3%;_leYi;|E~IyMVzXhLzs~mI5`lfJnliJB zvSZO1fqljxJt6AOh&mG3x7g=hJveX!`*BMfPQ1nTcP&P5VP;E9NO8(KySg}AP_k3j zBor6YySngsw&*CyDJu~;mDQB(sG_VgIwNpe4bm&3u2s~L!0BnB?2wq(6BY_%7jRe= zO@E8`1n23<;>9@qkjM@Xc6XzG&TKq}Xkzj#n8Ri345FCcJ! zT0zlO=-e=@?~WG0I8>*^5ca z)+I4hvlk5^0|nVDI%yl-1pz_!&kAL`73x_k$X?SZ+pAGlD#&T6+QAWg?AO_WMN2|* zF3I){tw0}HxoA;H$)!4nhPYZ#axT>*6c^HmhVa8VqNAi-szi{>S5tPpin4rkMvz-; zkWPuZwW5v$xh?gSy;n~YwuFVkD9G*6X!<3M^hRvO3Y`9)$gT_x52OCb96W`TyASac z9}nVNDCe%khKIRgLMl~$tnxQBccny-`>2w#>y?z13UW7-lzoxJOwHXigbWnq{;8Ah z=u}rK$lX?WW|t|Hl?rlqHOdT)vQj~QVX9%2nIPE<*blpVLvlXN_OD_L7urVgMO5quc#}|ENME%IhqlqHo*yp}s3i3zi()4f6C7p>e{K5H-NT-Kcnx)a}SssrfadC=hQ*Zh21 zqdaJEr$(5=9FUyQ%E3WA-&DNlxUkBNf678CT5_iX2KVilpQ|y-g9i6>($C{b%vJZa zQM7>u_kG=Wt4{SngZmrB&$|`Mg9i8anxFS;lm`v&CqpdDvUtAKAl_86`$?>5esiH! zZaiN~F2AHn5*uzQM7>u_dmMtah>Xe25*ky=UWt>&oX%B znxAjiC=VLEreT(2IXvIqhw#>ty{6itYlT&AJl|frQ@y5u!AnN`{N)J0^=28oOkc*654TJk0W25)1%pI@k_JZSJpOs-O_Qr)u^J6c)1WY>bWJumy|g zsipt3gb&%C5O;B*pFQIj`b%rfb_oi?_53a!f05hGU>Hq)$ literal 4953 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 diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.xtendbin b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.xtendbin index 3eabed1b42f4c3b61f128f8610e14a253382bf69..d24ab65a35681b1c325f35718159c073fd502674 100644 GIT binary patch delta 3799 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 Pp_7~u9|rFb00000x}G%X diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.HtmlFileGenerator.xtendbin b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.HtmlFileGenerator.xtendbin index 263cedd9fe8561e04b598c23d9cb02510f68911d..ee5488979adf10bb59a649cd108bea530931e204 100644 GIT binary patch delta 60 zcmbQVm~ql#MxFp~W)=|!4h{~6ADcJwusbvT*t}WP`5`Na{^4~Y)^5)9?&AW{KSOV@1L?_^V=X`wZ=3^& I@{e-@08RH4@&Et; diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.OccurrenceDiagramGenerator.java._trace b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.OccurrenceDiagramGenerator.java._trace new file mode 100644 index 0000000000000000000000000000000000000000..8968ec1fee80e6d95e312fe483d1cab392b8264a GIT binary patch literal 16940 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%0D7I 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 literal 0 HcmV?d00001 diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.OcurrenceDiagramGenerator.java._trace b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.OcurrenceDiagramGenerator.java._trace index b68eb6546d467971474d6659e97bc7ece9f553db..cfa2cd3f36a171b26df41843f889847e99c15439 100644 GIT binary patch literal 4532 zcmZveYitzP702h?nf2~^pBQY6AK1oEY{)u5Z4f~muV-f;hT`?E(}V(DDJ%P*wCp0*#YWsh~DW1o9pp$`RTZUQuOp%`5qYnd zv3FvcqL88@l`P`qi2?%iRFJ(%FMFr_c>?ndH`4_-cX`85WDtS*rr-&G5=@^?sg|4Z zF1q=dr@ERpyX4`Xg#_l`UF`9mB1acg&;MG9nREf&C!*IY7SNfTtjD}DUk&NqC!@cp zXxGHu8ASK#=*w02Xq3l?YHEnjH`C@uEK*!kL)Dkci6FLgn({(KdTePCd*}IX90ajg zkiCmudHz_;pC^cA$)gEZ!rXI{`D(3PP%U7@wpG^F5}paLyWhja+lZJ=m*gEo?1;Ig zZazi-5nWHKi`!U_9Y<@{EE@Fh1@ii0XXi>X-Hk+g?CdN>Rf=4*X3^!jB|+@1YNlx+ z_TCER31aUCR5C!Ga1g{k_OVy*W$$Beo*?!g(_KH0#?On^*UY7h{omaBdcux2x*6Tl zjQV<--(kpmau8UdD)wSk>=hDNi=!7B=2GF>uH7}QROw`wwRmYm15Mf3ByZ7LRmC(? zrKqBzfl5azmvD~vQbnbT!iv02P4v)&mq=Kb3ka-_{OtMM?0r<6C$PRyRN`Xq z3lDotVBH8ZP4}~RLv>+-c%!emShDnm|k5X6Ur><#eT_^>}u5dYPT*|Vw6oWXTxN|_RLBQ)@$kBKLU z9B~(jUu|fW_kFRRR@38ut7@e;%ltFFJ2btJAmKIGyJ$$yL68WxvG*nJrl)2kf&qmA zdEP{2ktFp9g@Yh5tBgIq3gI9~SoqtvxpXt*xSCFC5dWZU4)HS>wb^WIlUzrrCmya* zRH~>{QCN|;t&LWA#!Dm;4;K(5hWzXuaI-g5oF_{ty$n+9FhQuD# zg$WYJ0(0ibd2%z6BilP&H%Ff0nDij=i7}V{reov$*c}9ktF`Ry#+4K`5?2EX16=qo z50knKk#Ha+H7~or;{!VglCAjr$h|c43XZkX?7K56bAW+BkjaDF=?|IiAbh{ zXnGQB6qPC}RTNg_jYMeDO)rs1VgW%i>6f16aBQ;pk*(tMr%Ic|2#fnsAAwg%pCX4F$Z^(gX?38~|lUMRPHx{Odyy;q_rph$4^X~BKoDLrtu(0VqIV+K*;b(Ug=$=bYw|mb-knp2-o2trEE!0m$j3!j+AUM zg?cnSJztj!mDviUJ3>xHq&osm1=8z$IEaJ!DshJb>0Q%t2#09aDmiNz?fAn^T#xHX zSw97rk)o$hyQD&WYz5M1N^E6g$j+PzITc8s7r83I8F7aK>33Uj18&IA66sIFQlVLP zXXta!#ErO-GUIOQvs{C|&IR~Q+)T<-VO&lx8uUHe^;aCmZ&BGHd>+%-uetgT21ptv z>D2%!X-(XrK;MtUcII@5GthUU#8%$)v!eH%^5zt;-RE`%`hKI^nLp@upUJLQa69g$ zCI5&IlGac2C%X=kwue@_rDa@Q8608lGTnb4W;ItPfO~NicTjCk(@9%R+8Al?mr<-w zGcti@Qbwf`U`5Z==~AKo@9V6HI~2$?gzU_fVms3ia4L|w--ly3Ci|$)BCpt0kQsEz z3{C&s#eE>NV+!uT9kNPoDDF@oa}c9Aj^kAJRVijLqlwJvN~zFC6#}g2nbQHM0-1BH z$SRMWIj5^k@+;l$bGrhW$znTm(`9ESJx&EOmuKQ*_*mgS*Zfk+?*m!DB<{prAX0&8 z)F`V#cD!pNK7rqpzvk69_tuLi3OxJkd&?`zJ|3X5C+JgcTjCA{vim}u(c}C6z<(&tuv-TO6MfluLg=)k$Y{|8X#lokL0 literal 1551 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

~VXoaDP~ukN;6jD=IfSsa`_B?sOYht5oW~Mm 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 literal 15644 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 delta 38 ncmbQGFhgO(8Ac{MpUH{Ls*^V}if`s-3T0%pfph0E*YE%U?MDlr diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/ErDslGenerator.xtend b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/ErDslGenerator.xtend index b24274d..fbee31c 100644 --- a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/ErDslGenerator.xtend +++ b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/ErDslGenerator.xtend @@ -20,7 +20,7 @@ class ErDslGenerator extends AbstractGenerator { val postGreSqlGenerator = new PostgresqlFileGenerator; val MySqlGenerator = new MysqlFileGenerator; val PlantUmlGenerator = new PlantUmlFileGenerator; - val OcurrenceDiagramGenerator = new OcurrenceDiagramGenerator; + val OcurrenceDiagramGenerator = new OccurrenceDiagramGenerator; override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) { diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/OccurrenceDiagramGenerator.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/OccurrenceDiagramGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..d5bfc09dc3c20ce840e2ca7794770f13993b8c49 GIT binary patch literal 15204 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 generated by ERtext + endheader + right footer https://github.com/ProjetoDSL/ERDSL + title Occurrence Diagram\n«this.currentRelationshipName» + «FOR e : relations.filter[i|i.occurrence !== null]» + «IF e.name.equalsIgnoreCase(this.currentRelationshipName)» + «e.plotToPlantUML» + «ENDIF» + «ENDFOR» + @enduml + ''' + + def private CharSequence plotToPlantUML(Relation r) ''' + ' top to bottom direction + left to right direction + ' diamond «r.name.toLowerCase»_dmd + + «IF r.leftEnding.cardinality.equalsIgnoreCase("(0:1)") && r.rightEnding.cardinality.equalsIgnoreCase("(0:1)")» + «initDefaultObjects(r)» + package relationship { + object x1_y1 + object x2_y3 + } + + A -- X + B -- Z + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(0:1)") && r.rightEnding.cardinality.equalsIgnoreCase("(1:1)")» + package «r.leftEnding.target.toString»«r.leftEnding.cardinality»{ + object A + object B + } + + package «r.rightEnding.target.toString»«r.rightEnding.cardinality»{ + object X + object Y + object Z + } + + A -- X + B -- Z + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(1:1)") && r.rightEnding.cardinality.equalsIgnoreCase("(0:1)")» + package «r.leftEnding.target.toString»«r.leftEnding.cardinality»{ + object A + object B + object C + } + + package «r.rightEnding.target.toString»«r.rightEnding.cardinality» { + object X + object Y + } + + A -- X + C -- Y + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(1:1)") && r.rightEnding.cardinality.equalsIgnoreCase("(1:1)")» + «initDefaultObjects(r)» + package relationship { + object x1_y1 + object x2_y2 + object x3_y3 + } + + x1 -- x1_y1 + x1_y1 -- y1 + x2 -- x2_y2 + x2_y2 -- y2 + x3 -- x3_y3 + x3_y3 -- y3 + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(0:1)") && r.rightEnding.cardinality.equalsIgnoreCase("(1:N)")» + 0,1 - 1,n + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(1:1)") && r.rightEnding.cardinality.equalsIgnoreCase("(1:N)")» + 1,1 - 1,n + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(1:N)") && r.rightEnding.cardinality.equalsIgnoreCase("(0:1)")» + 1,n - 0,1 + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(1:N)") && r.rightEnding.cardinality.equalsIgnoreCase("(1:1)")» + 1,n - 1,1 + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(0:1)") && r.rightEnding.cardinality.equalsIgnoreCase("(0:N)")» + 0,1 - 0,n + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(1:1)") && r.rightEnding.cardinality.equalsIgnoreCase("(0:N)")» + 1,1 - 0,n + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(0:N)") && r.rightEnding.cardinality.equalsIgnoreCase("(0:1)")» + 0,n - 0,1 + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(0:N)") && r.rightEnding.cardinality.equalsIgnoreCase("(1:1)")» + 0,n - 1,1 + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(0:N)") && r.rightEnding.cardinality.equalsIgnoreCase("(0:N)")» + «initDefaultObjects(r)» + package relationship { + object x1_y1 + object x1_y3 + object x2_y1 + object x2_y3 + } + + x1 -- x1_y1 + x1_y1 -- y1 + x1 -- x1_y3 + x1_y3 -- y3 + x2 -- x2_y1 + x2_y1 -- y1 + x2 -- x2_y3 + x2_y3 -- y3 + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(1:N)") && r.rightEnding.cardinality.equalsIgnoreCase("(1:N)")» + «initDefaultObjects(r)» + package relationship { + object x1_y1 + object x1_y2 + object x1_y3 + object x2_y1 + object x2_y3 + object x3_y2 + } + + x1 -- x1_y1 + x1_y1 -- y1 + x1 -- x1_y2 + x1_y2 -- y2 + x1 -- x1_y3 + x1_y3 -- y3 + x2 -- x2_y1 + x2_y1 -- y1 + x2 -- x2_y3 + x2_y3 -- y3 + x3 -- x3_y2 + x3_y2 -- y2 + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(0:N)") && r.rightEnding.cardinality.equalsIgnoreCase("(1:N)")» + «initDefaultObjects(r)» + package relationship { + object x1_y1 + object x2_y1 + object x3_y1 + object x1_y2 + object x3_y2 + } + + x1 -- x1_y1 + x1_y1 -- y1 + x2 -- x2_y1 + x2_y1 -- y1 + x3 -- x3_y1 + x3_y1 -- y1 + x1 -- x1_y2 + x1_y2 --y2 + x3 -- x3_y2 + x3_y2 -- y2 + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(1:N)") && r.rightEnding.cardinality.equalsIgnoreCase("(0:N)")» + «initDefaultObjects(r)» + package relationship { + object x1_y1 + object x2_y2 + object x1_y3 + object x2_y1 + object x2_y3 + } + + x1 -- x1_y1 + x1_y1 -- y1 + x2 -- x2_y2 + x2_y2 -- y2 + x1 -- x1_y3 + x1_y3 -- y3 + x2 -- x2_y1 + x2_y1 -- y1 + x2 -- x2_y3 + x2_y3 -- y3 + «ENDIF» + ''' + + def private initDefaultObjects(Relation r) ''' + package «r.leftEnding.target.toString»«r.leftEnding.cardinality» { + object x1 + object x2 + object x3 + } + + package «r.rightEnding.cardinality»«r.rightEnding.target.toString» { + object y1 + object y2 + object y3 + } + ''' + +} \ No newline at end of file diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/OcurrenceDiagramGenerator.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/OcurrenceDiagramGenerator.class deleted file mode 100644 index 9e290c1428f2e67f220567b1c21e5dfbcd7008ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3228 zcmbtXYgZFT7=DIJ2A1`Pc!^hRRY;7i1S^_YDMGN+AeK1 zf&K!&)-NdaoR)s-IsHjJJ#F8~F1c~*IsG!3otgLc%=b|m`1)J zd`%V6!F0iO^o&~;VF+9{EW^FR(AXWCVrUw&XM}=Aw5n)EfMHkCu*8jGE-jo%J#7kx z_N1NB%_-e6q{eaypi|wU8ds%!#?IwzODnpDsU?y|!Hu`!0D>F`8BWw2TX$H+AsnXbBQp&9 zx<^CF`}(}DnYxwL#?$vj#*K3vWjI=|$%8WCo#8mnaC+0r6V5Q@U}9p7vcqh{F`Q8G z3SMPsC9}hJPB$!ukRRKI`Ri%$j#7N5(8Y0@@Yu$rC!nGmAqGyyZsjB4RIBh@jBI}p3e(whKhP4 zE$bBfz7q}_22{KuBW`hR&#D53t15;tOi|lw6f!;J2;E&{5<1~k+!i6EkQURFOqyw= zHLCJ?;S|VPLB%^DHf@`+Z#jB?&~fxf+ow;tT5mJ#EX7cw1jz^r-o*gN-I~<)&MSBy z(;WAIg}E9OwX5EImhE|9ucGUC~$nt5UwkBYbIJM z3eQg}jSTUOrF*rwgw_^(M&L~fncGYFLNZ>zoPDL@Yx(ZrmROKa4+3sF?U6D=qy}ZW z+byh6)Jm%KO7Mu}SUua8!|0KyQcv+t4~uj$n~=I?CF2C~W+T1OKqG;T0F9i!H2P)q z+Z=w5mS;3+fI_3(26m&3M%6n&zdPuQY8ty}Bw?0D6Iy6(>C6gtll~R#Z@?;!#F~Ol zt2h>G4mPi#lVJrX8I}=_1ztkC6AZjS?{mD?esLMGWn78zNRWqv&C3{EL81{)p~V8h zz;C$zBaR0HtGFKHLB5Q!7kGOWx0Z3|1>U>$6s=N`{_8Vx<{-v!6IqH)Iv*uhfxYz7 z>7bqc2+=cSpmZik40wn*=rD8~K>vLRHA*cz6+7_N;skX3wAx1^8f$< diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/OcurrenceDiagramGenerator.xtend b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/OcurrenceDiagramGenerator.xtend deleted file mode 100644 index fcb47c9..0000000 --- a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/OcurrenceDiagramGenerator.xtend +++ /dev/null @@ -1,27 +0,0 @@ -package org.xtext.unipampa.erdsl.generator - -import org.eclipse.xtext.generator.AbstractGenerator -import org.eclipse.emf.ecore.resource.Resource -import org.eclipse.xtext.generator.IFileSystemAccess2 -import org.eclipse.xtext.generator.IGeneratorContext -import org.xtext.unipampa.erdsl.erDsl.ERModel - -class OcurrenceDiagramGenerator extends AbstractGenerator { - - override doGenerate(Resource input, IFileSystemAccess2 fsa, IGeneratorContext context) { - - val modeloER = input.contents.get(0) as ERModel - - try { - fsa.generateFile(modeloER.domain.name.toLowerCase+'_OcurrenceDiagram.sql', ocurrence_CreateDiagram(modeloER)) - } catch (Exception e) { - println(e.stackTrace.toString) - } - - } - - def private ocurrence_CreateDiagram(ERModel modeloER) ''' - Test - ''' - -} \ No newline at end of file diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/PlantUmlFileGenerator.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/PlantUmlFileGenerator.class index fce164737c52d7eb27b7a06aa1b3ee85f6b7ad02..c9533249c0632d3f42a8e3d3652b51534aa1ee3c 100644 GIT binary patch literal 12365 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 V16iPLpXTGsDcJ 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 generated by ERtext diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.class index e8a084ca63ceabce42106aeb4ee946fc14e882ea..545fd479a51a706ea74a30880ac309a8a2a3a21c 100644 GIT binary patch delta 254 zcmYk1!Ab&Q00!sZz&_K65^FVTiHs155Q&HglN1k8OGHF;h~?*J3Ce}Vy7~;!Lqvxl z*r({~%hVSfcWgd=Q>gUaz@^d9h4%HuTh4rwnC#69W=16uh^AN+r(#2# zh)ppsu0&6qiEFVUR>h9k5({Eq9EclH5M|L8yJA)xik9ezThR~|aUuF*O>B!jQ5Q!d z6qk7nAH}SfJ74#ku^WcgKBcJ}Sog2>y%x0Qk|~k*WvCv<)0sb|dmqJV^k`Umc)m+) I_EQ^mCyn1Xa{vGU delta 264 zcmZ|K(JF&s0D$55+r+z&marvT%Oq)yBrORUI}l5fY zsY+H(r6@;Il4-e;V>y#+nUlP%%d*VKw$$WCCS_Lkr6LouE1PmCx3VS+av=>_loi>M zRoRoKTxJNoPbDYg=Y{!dC+d%kBlOE#xww(({n<@@2J#1;e@=ny!}DD)`6&ct_A;E1MhLJ^$OHqPk`7xaKj`o9e3iM2l2?Gc;X2>^E6&KidSAohLaw=Ykqua0eop8WVK=ZXyf?RV#rC2BJnB_ fzcNXa%9nsLONT0uZUq@qRtYO5W2!K5Y<2J-9cx#B delta 292 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 JbIs>t{|`&N*QWpg delta 7805 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 U48G)S;w#QpzV7Tw^Q;^5e>s-a7ytkO diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.g b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.g index a91661d..c6d7923 100644 --- a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.g +++ b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.g @@ -11,7 +11,7 @@ package org.xtext.unipampa.erdsl.parser.antlr.lexer; import org.eclipse.xtext.parser.antlr.Lexer; } -GenerateOcurrenceDiagram : '@'('G'|'g')('E'|'e')('N'|'n')('E'|'e')('R'|'r')('A'|'a')('T'|'t')('E'|'e')('O'|'o')('C'|'c')('U'|'u')('R'|'r')('R'|'r')('E'|'e')('N'|'n')('C'|'c')('E'|'e')('D'|'d')('I'|'i')('A'|'a')('G'|'g')('R'|'r')('A'|'a')('M'|'m'); +GenerateOccurrenceDiagram : '@'('G'|'g')('E'|'e')('N'|'n')('E'|'e')('R'|'r')('A'|'a')('T'|'t')('E'|'e')('O'|'o')('C'|'c')('C'|'c')('U'|'u')('R'|'r')('R'|'r')('E'|'e')('N'|'n')('C'|'c')('E'|'e')('D'|'d')('I'|'i')('A'|'a')('G'|'g')('R'|'r')('A'|'a')('M'|'m'); PartialOverlapped : ('P'|'p')('A'|'a')('R'|'r')('T'|'t')('I'|'i')('A'|'a')('L'|'l')'/'('O'|'o')('V'|'v')('E'|'e')('R'|'r')('L'|'l')('A'|'a')('P'|'p')('P'|'p')('E'|'e')('D'|'d'); diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.tokens b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.tokens index da340ad..7ae75a9 100644 --- a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.tokens +++ b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.tokens @@ -8,7 +8,7 @@ Double=20 Entities=13 File=28 Generate=14 -GenerateOcurrenceDiagram=4 +GenerateOccurrenceDiagram=4 Int=30 Is=31 IsIdentifier=11 diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/scoping/.ErDslScopeProvider.xtendbin b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/scoping/.ErDslScopeProvider.xtendbin index 9039188c55dcea8cc76d4235ab9812417009d1b5..c9c80954d7f5246569f4d2ad8ff20e2b0f5839bd 100644 GIT binary patch delta 58 zcmbOwK1-Y@z?+#xgn@&DgW<>KjXXP9nSN~Ee4N#r8AOY49%BU3lkad@fG9C;2M`s( G?F0ZalNAL3 delta 58 zcmbOwK1-Y@z?+#xgn@&DgCTA0MxLFlOlfO3A7}Mu2GJs%#~6Y14QDRA|fAZu; dZkf%OnCsY0B-2w%aOpKfkwfU-+{mrR1po)6EhYc} delta 99 zcmdn0y - + diff --git a/org.xtext.unipampa.erdsl/model/generated/ErDsl.genmodel b/org.xtext.unipampa.erdsl/model/generated/ErDsl.genmodel index 9140801..f39592e 100644 --- a/org.xtext.unipampa.erdsl/model/generated/ErDsl.genmodel +++ b/org.xtext.unipampa.erdsl/model/generated/ErDsl.genmodel @@ -40,7 +40,7 @@ - + diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/ErDsl.xtextbin b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/ErDsl.xtextbin index 522ec879d8f7a7e73adaa0b772f749fff75ce255..026c1fea52cdc9492a5e16ff194835f2209c42cb 100644 GIT binary patch delta 44 zcmZ1{yFqqCAfEzvesXeYQBi7Maw;2>ExW@nMmAPyhxF9E)S|?aRR843`F!>OL(mR2 delta 42 xcmdlWyH0jPAfFspesXD1QEFatDjSn6yTdO=HdZNz^whl6qQsI^|H*}X_5dX84Q&7b diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/ErDslPackage.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/ErDslPackage.java index cde0a0a..5f03297 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/ErDslPackage.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/ErDslPackage.java @@ -289,13 +289,13 @@ public interface ErDslPackage extends EPackage int RELATION__ATTRIBUTES = 3; /** - * The feature id for the 'Ocurrence' attribute. + * The feature id for the 'Occurrence' attribute. * * * @generated * @ordered */ - int RELATION__OCURRENCE = 4; + int RELATION__OCCURRENCE = 4; /** * The number of structural features of the 'Relation' class. @@ -618,15 +618,15 @@ public interface ErDslPackage extends EPackage EReference getRelation_Attributes(); /** - * Returns the meta object for the attribute '{@link org.xtext.unipampa.erdsl.erDsl.Relation#getOcurrence Ocurrence}'. + * Returns the meta object for the attribute '{@link org.xtext.unipampa.erdsl.erDsl.Relation#getOccurrence Occurrence}'. * * - * @return the meta object for the attribute 'Ocurrence'. - * @see org.xtext.unipampa.erdsl.erDsl.Relation#getOcurrence() + * @return the meta object for the attribute 'Occurrence'. + * @see org.xtext.unipampa.erdsl.erDsl.Relation#getOccurrence() * @see #getRelation() * @generated */ - EAttribute getRelation_Ocurrence(); + EAttribute getRelation_Occurrence(); /** * Returns the meta object for class '{@link org.xtext.unipampa.erdsl.erDsl.RelationSideRight Relation Side Right}'. @@ -904,12 +904,12 @@ interface Literals EReference RELATION__ATTRIBUTES = eINSTANCE.getRelation_Attributes(); /** - * The meta object literal for the 'Ocurrence' attribute feature. + * The meta object literal for the 'Occurrence' attribute feature. * * * @generated */ - EAttribute RELATION__OCURRENCE = eINSTANCE.getRelation_Ocurrence(); + EAttribute RELATION__OCCURRENCE = eINSTANCE.getRelation_Occurrence(); /** * The meta object literal for the '{@link org.xtext.unipampa.erdsl.erDsl.impl.RelationSideRightImpl Relation Side Right}' class. diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Relation.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Relation.java index 690b4b3..b087dcd 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Relation.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Relation.java @@ -20,7 +20,7 @@ *

  • {@link org.xtext.unipampa.erdsl.erDsl.Relation#getLeftEnding Left Ending}
  • *
  • {@link org.xtext.unipampa.erdsl.erDsl.Relation#getRightEnding Right Ending}
  • *
  • {@link org.xtext.unipampa.erdsl.erDsl.Relation#getAttributes Attributes}
  • - *
  • {@link org.xtext.unipampa.erdsl.erDsl.Relation#getOcurrence Ocurrence}
  • + *
  • {@link org.xtext.unipampa.erdsl.erDsl.Relation#getOccurrence Occurrence}
  • * * * @see org.xtext.unipampa.erdsl.erDsl.ErDslPackage#getRelation() @@ -108,25 +108,25 @@ public interface Relation extends EObject EList getAttributes(); /** - * Returns the value of the 'Ocurrence' attribute. + * Returns the value of the 'Occurrence' attribute. * * - * @return the value of the 'Ocurrence' attribute. - * @see #setOcurrence(String) - * @see org.xtext.unipampa.erdsl.erDsl.ErDslPackage#getRelation_Ocurrence() + * @return the value of the 'Occurrence' attribute. + * @see #setOccurrence(String) + * @see org.xtext.unipampa.erdsl.erDsl.ErDslPackage#getRelation_Occurrence() * @model * @generated */ - String getOcurrence(); + String getOccurrence(); /** - * Sets the value of the '{@link org.xtext.unipampa.erdsl.erDsl.Relation#getOcurrence Ocurrence}' attribute. + * Sets the value of the '{@link org.xtext.unipampa.erdsl.erDsl.Relation#getOccurrence Occurrence}' attribute. * * - * @param value the new value of the 'Ocurrence' attribute. - * @see #getOcurrence() + * @param value the new value of the 'Occurrence' attribute. + * @see #getOccurrence() * @generated */ - void setOcurrence(String value); + void setOccurrence(String value); } // Relation diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/ErDslPackageImpl.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/ErDslPackageImpl.java index cf52bbe..fcf52e9 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/ErDslPackageImpl.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/ErDslPackageImpl.java @@ -386,7 +386,7 @@ public EReference getRelation_Attributes() * @generated */ @Override - public EAttribute getRelation_Ocurrence() + public EAttribute getRelation_Occurrence() { return (EAttribute)relationEClass.getEStructuralFeatures().get(4); } @@ -524,7 +524,7 @@ public void createPackageContents() createEReference(relationEClass, RELATION__LEFT_ENDING); createEReference(relationEClass, RELATION__RIGHT_ENDING); createEReference(relationEClass, RELATION__ATTRIBUTES); - createEAttribute(relationEClass, RELATION__OCURRENCE); + createEAttribute(relationEClass, RELATION__OCCURRENCE); relationSideRightEClass = createEClass(RELATION_SIDE_RIGHT); createEAttribute(relationSideRightEClass, RELATION_SIDE_RIGHT__CARDINALITY); @@ -594,7 +594,7 @@ public void initializePackageContents() initEReference(getRelation_LeftEnding(), this.getRelationSideLeft(), null, "leftEnding", null, 0, 1, Relation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getRelation_RightEnding(), this.getRelationSideRight(), null, "rightEnding", null, 0, 1, Relation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getRelation_Attributes(), this.getAttribute(), null, "attributes", null, 0, -1, Relation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getRelation_Ocurrence(), ecorePackage.getEString(), "ocurrence", null, 0, 1, Relation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getRelation_Occurrence(), ecorePackage.getEString(), "occurrence", null, 0, 1, Relation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(relationSideRightEClass, RelationSideRight.class, "RelationSideRight", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getRelationSideRight_Cardinality(), ecorePackage.getEString(), "cardinality", null, 0, 1, RelationSideRight.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/RelationImpl.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/RelationImpl.java index 1f105af..da71de8 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/RelationImpl.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/RelationImpl.java @@ -37,7 +37,7 @@ *
  • {@link org.xtext.unipampa.erdsl.erDsl.impl.RelationImpl#getLeftEnding Left Ending}
  • *
  • {@link org.xtext.unipampa.erdsl.erDsl.impl.RelationImpl#getRightEnding Right Ending}
  • *
  • {@link org.xtext.unipampa.erdsl.erDsl.impl.RelationImpl#getAttributes Attributes}
  • - *
  • {@link org.xtext.unipampa.erdsl.erDsl.impl.RelationImpl#getOcurrence Ocurrence}
  • + *
  • {@link org.xtext.unipampa.erdsl.erDsl.impl.RelationImpl#getOccurrence Occurrence}
  • * * * @generated @@ -95,24 +95,24 @@ public class RelationImpl extends MinimalEObjectImpl.Container implements Relati protected EList attributes; /** - * The default value of the '{@link #getOcurrence() Ocurrence}' attribute. + * The default value of the '{@link #getOccurrence() Occurrence}' attribute. * * - * @see #getOcurrence() + * @see #getOccurrence() * @generated * @ordered */ - protected static final String OCURRENCE_EDEFAULT = null; + protected static final String OCCURRENCE_EDEFAULT = null; /** - * The cached value of the '{@link #getOcurrence() Ocurrence}' attribute. + * The cached value of the '{@link #getOccurrence() Occurrence}' attribute. * * - * @see #getOcurrence() + * @see #getOccurrence() * @generated * @ordered */ - protected String ocurrence = OCURRENCE_EDEFAULT; + protected String occurrence = OCCURRENCE_EDEFAULT; /** * @@ -281,9 +281,9 @@ public EList getAttributes() * @generated */ @Override - public String getOcurrence() + public String getOccurrence() { - return ocurrence; + return occurrence; } /** @@ -292,12 +292,12 @@ public String getOcurrence() * @generated */ @Override - public void setOcurrence(String newOcurrence) + public void setOccurrence(String newOccurrence) { - String oldOcurrence = ocurrence; - ocurrence = newOcurrence; + String oldOccurrence = occurrence; + occurrence = newOccurrence; if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, ErDslPackage.RELATION__OCURRENCE, oldOcurrence, ocurrence)); + eNotify(new ENotificationImpl(this, Notification.SET, ErDslPackage.RELATION__OCCURRENCE, oldOccurrence, occurrence)); } /** @@ -338,8 +338,8 @@ public Object eGet(int featureID, boolean resolve, boolean coreType) return getRightEnding(); case ErDslPackage.RELATION__ATTRIBUTES: return getAttributes(); - case ErDslPackage.RELATION__OCURRENCE: - return getOcurrence(); + case ErDslPackage.RELATION__OCCURRENCE: + return getOccurrence(); } return super.eGet(featureID, resolve, coreType); } @@ -368,8 +368,8 @@ public void eSet(int featureID, Object newValue) getAttributes().clear(); getAttributes().addAll((Collection)newValue); return; - case ErDslPackage.RELATION__OCURRENCE: - setOcurrence((String)newValue); + case ErDslPackage.RELATION__OCCURRENCE: + setOccurrence((String)newValue); return; } super.eSet(featureID, newValue); @@ -397,8 +397,8 @@ public void eUnset(int featureID) case ErDslPackage.RELATION__ATTRIBUTES: getAttributes().clear(); return; - case ErDslPackage.RELATION__OCURRENCE: - setOcurrence(OCURRENCE_EDEFAULT); + case ErDslPackage.RELATION__OCCURRENCE: + setOccurrence(OCCURRENCE_EDEFAULT); return; } super.eUnset(featureID); @@ -422,8 +422,8 @@ public boolean eIsSet(int featureID) return rightEnding != null; case ErDslPackage.RELATION__ATTRIBUTES: return attributes != null && !attributes.isEmpty(); - case ErDslPackage.RELATION__OCURRENCE: - return OCURRENCE_EDEFAULT == null ? ocurrence != null : !OCURRENCE_EDEFAULT.equals(ocurrence); + case ErDslPackage.RELATION__OCCURRENCE: + return OCCURRENCE_EDEFAULT == null ? occurrence != null : !OCCURRENCE_EDEFAULT.equals(occurrence); } return super.eIsSet(featureID); } @@ -441,8 +441,8 @@ public String toString() // StringBuilder result = new StringBuilder(super.toString()); // result.append(" (name: "); // result.append(name); -// result.append(", ocurrence: "); -// result.append(ocurrence); +// result.append(", occurrence: "); +// result.append(occurrence); // result.append(')'); // return result.toString(); return name; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.g b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.g index 04402d4..ce6d924 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.g +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.g @@ -656,15 +656,15 @@ ruleRelation returns [EObject current=null] )* ( ( - lv_ocurrence_11_0=GenerateOcurrenceDiagram + lv_occurrence_11_0=GenerateOccurrenceDiagram { - newLeafNode(lv_ocurrence_11_0, grammarAccess.getRelationAccess().getOcurrenceGenerateOcurrenceDiagramKeyword_3_0()); + newLeafNode(lv_occurrence_11_0, grammarAccess.getRelationAccess().getOccurrenceGenerateOccurrenceDiagramKeyword_3_0()); } { if ($current==null) { $current = createModelElement(grammarAccess.getRelationRule()); } - setWithLastConsumed($current, "ocurrence", lv_ocurrence_11_0, "@generateOcurrenceDiagram"); + setWithLastConsumed($current, "occurrence", lv_occurrence_11_0, "@generateOccurrenceDiagram"); } ) )? diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.java index e203876..c02914c 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.java @@ -22,13 +22,14 @@ @SuppressWarnings("all") public class InternalErDslParser extends AbstractInternalAntlrParser { public static final String[] tokenNames = new String[] { - "", "", "", "", "GenerateOcurrenceDiagram", "PartialOverlapped", "PartialDisjoint", "TotalOverlapped", "TotalDisjoint", "LogicalSchema", "Relationships", "IsIdentifier", "PostgreSQL", "Entities", "Generate", "Datetime", "Diagram", "Boolean", "Relates", "Domain", "Double", "String", "LeftParenthesisDigitZeroColonDigitOneRightParenthesis", "N", "LeftParenthesisDigitOneColonDigitOneRightParenthesis", "N_1", "MySQL", "Money", "File", "All", "Int", "Is", "Comma", "Semicolon", "LeftSquareBracket", "RightSquareBracket", "LeftCurlyBracket", "RightCurlyBracket", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER" + "", "", "", "", "GenerateOccurrenceDiagram", "PartialOverlapped", "PartialDisjoint", "TotalOverlapped", "TotalDisjoint", "LogicalSchema", "Relationships", "IsIdentifier", "PostgreSQL", "Entities", "Generate", "Datetime", "Diagram", "Boolean", "Relates", "Domain", "Double", "String", "LeftParenthesisDigitZeroColonDigitOneRightParenthesis", "N", "LeftParenthesisDigitOneColonDigitOneRightParenthesis", "N_1", "MySQL", "Money", "File", "All", "Int", "Is", "Comma", "Semicolon", "LeftSquareBracket", "RightSquareBracket", "LeftCurlyBracket", "RightCurlyBracket", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER" }; public static final int All=29; public static final int N_1=25; public static final int PostgreSQL=12; public static final int String=21; public static final int TotalOverlapped=7; + public static final int GenerateOccurrenceDiagram=4; public static final int MySQL=26; public static final int Boolean=17; public static final int RightSquareBracket=35; @@ -47,7 +48,6 @@ public class InternalErDslParser extends AbstractInternalAntlrParser { public static final int Is=31; public static final int RULE_STRING=40; public static final int LeftParenthesisDigitZeroColonDigitOneRightParenthesis=22; - public static final int GenerateOcurrenceDiagram=4; public static final int N=23; public static final int Int=30; public static final int RULE_SL_COMMENT=42; @@ -1244,7 +1244,7 @@ public final EObject entryRuleRelation() throws RecognitionException { // $ANTLR start "ruleRelation" - // InternalErDslParser.g:525:1: ruleRelation returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* ( (lv_ocurrence_11_0= GenerateOcurrenceDiagram ) )? ) ; + // InternalErDslParser.g:525:1: ruleRelation returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* ( (lv_occurrence_11_0= GenerateOccurrenceDiagram ) )? ) ; public final EObject ruleRelation() throws RecognitionException { EObject current = null; @@ -1255,7 +1255,7 @@ public final EObject ruleRelation() throws RecognitionException { Token otherlv_6=null; Token otherlv_8=null; Token otherlv_10=null; - Token lv_ocurrence_11_0=null; + Token lv_occurrence_11_0=null; EObject lv_leftEnding_2_0 = null; EObject lv_rightEnding_4_0 = null; @@ -1269,11 +1269,11 @@ public final EObject ruleRelation() throws RecognitionException { enterRule(); try { - // InternalErDslParser.g:531:2: ( ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* ( (lv_ocurrence_11_0= GenerateOcurrenceDiagram ) )? ) ) - // InternalErDslParser.g:532:2: ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* ( (lv_ocurrence_11_0= GenerateOcurrenceDiagram ) )? ) + // InternalErDslParser.g:531:2: ( ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* ( (lv_occurrence_11_0= GenerateOccurrenceDiagram ) )? ) ) + // InternalErDslParser.g:532:2: ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* ( (lv_occurrence_11_0= GenerateOccurrenceDiagram ) )? ) { - // InternalErDslParser.g:532:2: ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* ( (lv_ocurrence_11_0= GenerateOcurrenceDiagram ) )? ) - // InternalErDslParser.g:533:3: ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* ( (lv_ocurrence_11_0= GenerateOcurrenceDiagram ) )? + // InternalErDslParser.g:532:2: ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* ( (lv_occurrence_11_0= GenerateOccurrenceDiagram ) )? ) + // InternalErDslParser.g:533:3: ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* ( (lv_occurrence_11_0= GenerateOccurrenceDiagram ) )? { // InternalErDslParser.g:533:3: ( (lv_name_0_0= RULE_ID ) ) // InternalErDslParser.g:534:4: (lv_name_0_0= RULE_ID ) @@ -1503,29 +1503,29 @@ public final EObject ruleRelation() throws RecognitionException { } } while (true); - // InternalErDslParser.g:657:3: ( (lv_ocurrence_11_0= GenerateOcurrenceDiagram ) )? + // InternalErDslParser.g:657:3: ( (lv_occurrence_11_0= GenerateOccurrenceDiagram ) )? int alt12=2; int LA12_0 = input.LA(1); - if ( (LA12_0==GenerateOcurrenceDiagram) ) { + if ( (LA12_0==GenerateOccurrenceDiagram) ) { alt12=1; } switch (alt12) { case 1 : - // InternalErDslParser.g:658:4: (lv_ocurrence_11_0= GenerateOcurrenceDiagram ) + // InternalErDslParser.g:658:4: (lv_occurrence_11_0= GenerateOccurrenceDiagram ) { - // InternalErDslParser.g:658:4: (lv_ocurrence_11_0= GenerateOcurrenceDiagram ) - // InternalErDslParser.g:659:5: lv_ocurrence_11_0= GenerateOcurrenceDiagram + // InternalErDslParser.g:658:4: (lv_occurrence_11_0= GenerateOccurrenceDiagram ) + // InternalErDslParser.g:659:5: lv_occurrence_11_0= GenerateOccurrenceDiagram { - lv_ocurrence_11_0=(Token)match(input,GenerateOcurrenceDiagram,FOLLOW_2); + lv_occurrence_11_0=(Token)match(input,GenerateOccurrenceDiagram,FOLLOW_2); - newLeafNode(lv_ocurrence_11_0, grammarAccess.getRelationAccess().getOcurrenceGenerateOcurrenceDiagramKeyword_3_0()); + newLeafNode(lv_occurrence_11_0, grammarAccess.getRelationAccess().getOccurrenceGenerateOccurrenceDiagramKeyword_3_0()); if (current==null) { current = createModelElement(grammarAccess.getRelationRule()); } - setWithLastConsumed(current, "ocurrence", lv_ocurrence_11_0, "@generateOcurrenceDiagram"); + setWithLastConsumed(current, "occurrence", lv_occurrence_11_0, "@generateOccurrenceDiagram"); } diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.tokens b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.tokens index 2e5643b..8442fb3 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.tokens +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.tokens @@ -4,7 +4,7 @@ '(1:N)'=25 ','=32 ';'=33 -'@generateOcurrenceDiagram'=4 +'@generateOccurrenceDiagram'=4 'All'=29 'Diagram'=16 'Domain'=19 diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.g b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.g index a91661d..c6d7923 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.g +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.g @@ -11,7 +11,7 @@ package org.xtext.unipampa.erdsl.parser.antlr.lexer; import org.eclipse.xtext.parser.antlr.Lexer; } -GenerateOcurrenceDiagram : '@'('G'|'g')('E'|'e')('N'|'n')('E'|'e')('R'|'r')('A'|'a')('T'|'t')('E'|'e')('O'|'o')('C'|'c')('U'|'u')('R'|'r')('R'|'r')('E'|'e')('N'|'n')('C'|'c')('E'|'e')('D'|'d')('I'|'i')('A'|'a')('G'|'g')('R'|'r')('A'|'a')('M'|'m'); +GenerateOccurrenceDiagram : '@'('G'|'g')('E'|'e')('N'|'n')('E'|'e')('R'|'r')('A'|'a')('T'|'t')('E'|'e')('O'|'o')('C'|'c')('C'|'c')('U'|'u')('R'|'r')('R'|'r')('E'|'e')('N'|'n')('C'|'c')('E'|'e')('D'|'d')('I'|'i')('A'|'a')('G'|'g')('R'|'r')('A'|'a')('M'|'m'); PartialOverlapped : ('P'|'p')('A'|'a')('R'|'r')('T'|'t')('I'|'i')('A'|'a')('L'|'l')'/'('O'|'o')('V'|'v')('E'|'e')('R'|'r')('L'|'l')('A'|'a')('P'|'p')('P'|'p')('E'|'e')('D'|'d'); diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.java index ddf299b..fdd78dc 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.java @@ -17,6 +17,7 @@ public class InternalErDslLexer extends Lexer { public static final int PostgreSQL=12; public static final int String=21; public static final int TotalOverlapped=7; + public static final int GenerateOccurrenceDiagram=4; public static final int MySQL=26; public static final int Boolean=17; public static final int RightSquareBracket=35; @@ -35,7 +36,6 @@ public class InternalErDslLexer extends Lexer { public static final int Is=31; public static final int RULE_STRING=40; public static final int LeftParenthesisDigitZeroColonDigitOneRightParenthesis=22; - public static final int GenerateOcurrenceDiagram=4; public static final int N=23; public static final int Int=30; public static final int RULE_SL_COMMENT=42; @@ -68,13 +68,13 @@ public InternalErDslLexer(CharStream input, RecognizerSharedState state) { } public String getGrammarFileName() { return "InternalErDslLexer.g"; } - // $ANTLR start "GenerateOcurrenceDiagram" - public final void mGenerateOcurrenceDiagram() throws RecognitionException { + // $ANTLR start "GenerateOccurrenceDiagram" + public final void mGenerateOccurrenceDiagram() throws RecognitionException { try { - int _type = GenerateOcurrenceDiagram; + int _type = GenerateOccurrenceDiagram; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:14:26: ( '@' ( 'G' | 'g' ) ( 'E' | 'e' ) ( 'N' | 'n' ) ( 'E' | 'e' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'O' | 'o' ) ( 'C' | 'c' ) ( 'U' | 'u' ) ( 'R' | 'r' ) ( 'R' | 'r' ) ( 'E' | 'e' ) ( 'N' | 'n' ) ( 'C' | 'c' ) ( 'E' | 'e' ) ( 'D' | 'd' ) ( 'I' | 'i' ) ( 'A' | 'a' ) ( 'G' | 'g' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'M' | 'm' ) ) - // InternalErDslLexer.g:14:28: '@' ( 'G' | 'g' ) ( 'E' | 'e' ) ( 'N' | 'n' ) ( 'E' | 'e' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'O' | 'o' ) ( 'C' | 'c' ) ( 'U' | 'u' ) ( 'R' | 'r' ) ( 'R' | 'r' ) ( 'E' | 'e' ) ( 'N' | 'n' ) ( 'C' | 'c' ) ( 'E' | 'e' ) ( 'D' | 'd' ) ( 'I' | 'i' ) ( 'A' | 'a' ) ( 'G' | 'g' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'M' | 'm' ) + // InternalErDslLexer.g:14:27: ( '@' ( 'G' | 'g' ) ( 'E' | 'e' ) ( 'N' | 'n' ) ( 'E' | 'e' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'O' | 'o' ) ( 'C' | 'c' ) ( 'C' | 'c' ) ( 'U' | 'u' ) ( 'R' | 'r' ) ( 'R' | 'r' ) ( 'E' | 'e' ) ( 'N' | 'n' ) ( 'C' | 'c' ) ( 'E' | 'e' ) ( 'D' | 'd' ) ( 'I' | 'i' ) ( 'A' | 'a' ) ( 'G' | 'g' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'M' | 'm' ) ) + // InternalErDslLexer.g:14:29: '@' ( 'G' | 'g' ) ( 'E' | 'e' ) ( 'N' | 'n' ) ( 'E' | 'e' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'O' | 'o' ) ( 'C' | 'c' ) ( 'C' | 'c' ) ( 'U' | 'u' ) ( 'R' | 'r' ) ( 'R' | 'r' ) ( 'E' | 'e' ) ( 'N' | 'n' ) ( 'C' | 'c' ) ( 'E' | 'e' ) ( 'D' | 'd' ) ( 'I' | 'i' ) ( 'A' | 'a' ) ( 'G' | 'g' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'M' | 'm' ) { match('@'); if ( input.LA(1)=='G'||input.LA(1)=='g' ) { @@ -167,6 +167,15 @@ public final void mGenerateOcurrenceDiagram() throws RecognitionException { recover(mse); throw mse;} + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { input.consume(); @@ -302,7 +311,7 @@ public final void mGenerateOcurrenceDiagram() throws RecognitionException { finally { } } - // $ANTLR end "GenerateOcurrenceDiagram" + // $ANTLR end "GenerateOccurrenceDiagram" // $ANTLR start "PartialOverlapped" public final void mPartialOverlapped() throws RecognitionException { @@ -3213,292 +3222,292 @@ public final void mRULE_ANY_OTHER() throws RecognitionException { // $ANTLR end "RULE_ANY_OTHER" public void mTokens() throws RecognitionException { - // InternalErDslLexer.g:1:8: ( GenerateOcurrenceDiagram | PartialOverlapped | PartialDisjoint | TotalOverlapped | TotalDisjoint | LogicalSchema | Relationships | IsIdentifier | PostgreSQL | Entities | Generate | Datetime | Diagram | Boolean | Relates | Domain | Double | String | LeftParenthesisDigitZeroColonDigitOneRightParenthesis | N | LeftParenthesisDigitOneColonDigitOneRightParenthesis | N_1 | MySQL | Money | File | All | Int | Is | Comma | Semicolon | LeftSquareBracket | RightSquareBracket | LeftCurlyBracket | RightCurlyBracket | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + // InternalErDslLexer.g:1:8: ( GenerateOccurrenceDiagram | PartialOverlapped | PartialDisjoint | TotalOverlapped | TotalDisjoint | LogicalSchema | Relationships | IsIdentifier | PostgreSQL | Entities | Generate | Datetime | Diagram | Boolean | Relates | Domain | Double | String | LeftParenthesisDigitZeroColonDigitOneRightParenthesis | N | LeftParenthesisDigitOneColonDigitOneRightParenthesis | N_1 | MySQL | Money | File | All | Int | Is | Comma | Semicolon | LeftSquareBracket | RightSquareBracket | LeftCurlyBracket | RightCurlyBracket | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) int alt12=41; alt12 = dfa12.predict(input); switch (alt12) { case 1 : - // InternalErDslLexer.g:1:10: GenerateOcurrenceDiagram + // InternalErDslLexer.g:1:10: GenerateOccurrenceDiagram { - mGenerateOcurrenceDiagram(); + mGenerateOccurrenceDiagram(); } break; case 2 : - // InternalErDslLexer.g:1:35: PartialOverlapped + // InternalErDslLexer.g:1:36: PartialOverlapped { mPartialOverlapped(); } break; case 3 : - // InternalErDslLexer.g:1:53: PartialDisjoint + // InternalErDslLexer.g:1:54: PartialDisjoint { mPartialDisjoint(); } break; case 4 : - // InternalErDslLexer.g:1:69: TotalOverlapped + // InternalErDslLexer.g:1:70: TotalOverlapped { mTotalOverlapped(); } break; case 5 : - // InternalErDslLexer.g:1:85: TotalDisjoint + // InternalErDslLexer.g:1:86: TotalDisjoint { mTotalDisjoint(); } break; case 6 : - // InternalErDslLexer.g:1:99: LogicalSchema + // InternalErDslLexer.g:1:100: LogicalSchema { mLogicalSchema(); } break; case 7 : - // InternalErDslLexer.g:1:113: Relationships + // InternalErDslLexer.g:1:114: Relationships { mRelationships(); } break; case 8 : - // InternalErDslLexer.g:1:127: IsIdentifier + // InternalErDslLexer.g:1:128: IsIdentifier { mIsIdentifier(); } break; case 9 : - // InternalErDslLexer.g:1:140: PostgreSQL + // InternalErDslLexer.g:1:141: PostgreSQL { mPostgreSQL(); } break; case 10 : - // InternalErDslLexer.g:1:151: Entities + // InternalErDslLexer.g:1:152: Entities { mEntities(); } break; case 11 : - // InternalErDslLexer.g:1:160: Generate + // InternalErDslLexer.g:1:161: Generate { mGenerate(); } break; case 12 : - // InternalErDslLexer.g:1:169: Datetime + // InternalErDslLexer.g:1:170: Datetime { mDatetime(); } break; case 13 : - // InternalErDslLexer.g:1:178: Diagram + // InternalErDslLexer.g:1:179: Diagram { mDiagram(); } break; case 14 : - // InternalErDslLexer.g:1:186: Boolean + // InternalErDslLexer.g:1:187: Boolean { mBoolean(); } break; case 15 : - // InternalErDslLexer.g:1:194: Relates + // InternalErDslLexer.g:1:195: Relates { mRelates(); } break; case 16 : - // InternalErDslLexer.g:1:202: Domain + // InternalErDslLexer.g:1:203: Domain { mDomain(); } break; case 17 : - // InternalErDslLexer.g:1:209: Double + // InternalErDslLexer.g:1:210: Double { mDouble(); } break; case 18 : - // InternalErDslLexer.g:1:216: String + // InternalErDslLexer.g:1:217: String { mString(); } break; case 19 : - // InternalErDslLexer.g:1:223: LeftParenthesisDigitZeroColonDigitOneRightParenthesis + // InternalErDslLexer.g:1:224: LeftParenthesisDigitZeroColonDigitOneRightParenthesis { mLeftParenthesisDigitZeroColonDigitOneRightParenthesis(); } break; case 20 : - // InternalErDslLexer.g:1:277: N + // InternalErDslLexer.g:1:278: N { mN(); } break; case 21 : - // InternalErDslLexer.g:1:279: LeftParenthesisDigitOneColonDigitOneRightParenthesis + // InternalErDslLexer.g:1:280: LeftParenthesisDigitOneColonDigitOneRightParenthesis { mLeftParenthesisDigitOneColonDigitOneRightParenthesis(); } break; case 22 : - // InternalErDslLexer.g:1:332: N_1 + // InternalErDslLexer.g:1:333: N_1 { mN_1(); } break; case 23 : - // InternalErDslLexer.g:1:336: MySQL + // InternalErDslLexer.g:1:337: MySQL { mMySQL(); } break; case 24 : - // InternalErDslLexer.g:1:342: Money + // InternalErDslLexer.g:1:343: Money { mMoney(); } break; case 25 : - // InternalErDslLexer.g:1:348: File + // InternalErDslLexer.g:1:349: File { mFile(); } break; case 26 : - // InternalErDslLexer.g:1:353: All + // InternalErDslLexer.g:1:354: All { mAll(); } break; case 27 : - // InternalErDslLexer.g:1:357: Int + // InternalErDslLexer.g:1:358: Int { mInt(); } break; case 28 : - // InternalErDslLexer.g:1:361: Is + // InternalErDslLexer.g:1:362: Is { mIs(); } break; case 29 : - // InternalErDslLexer.g:1:364: Comma + // InternalErDslLexer.g:1:365: Comma { mComma(); } break; case 30 : - // InternalErDslLexer.g:1:370: Semicolon + // InternalErDslLexer.g:1:371: Semicolon { mSemicolon(); } break; case 31 : - // InternalErDslLexer.g:1:380: LeftSquareBracket + // InternalErDslLexer.g:1:381: LeftSquareBracket { mLeftSquareBracket(); } break; case 32 : - // InternalErDslLexer.g:1:398: RightSquareBracket + // InternalErDslLexer.g:1:399: RightSquareBracket { mRightSquareBracket(); } break; case 33 : - // InternalErDslLexer.g:1:417: LeftCurlyBracket + // InternalErDslLexer.g:1:418: LeftCurlyBracket { mLeftCurlyBracket(); } break; case 34 : - // InternalErDslLexer.g:1:434: RightCurlyBracket + // InternalErDslLexer.g:1:435: RightCurlyBracket { mRightCurlyBracket(); } break; case 35 : - // InternalErDslLexer.g:1:452: RULE_ID + // InternalErDslLexer.g:1:453: RULE_ID { mRULE_ID(); } break; case 36 : - // InternalErDslLexer.g:1:460: RULE_INT + // InternalErDslLexer.g:1:461: RULE_INT { mRULE_INT(); } break; case 37 : - // InternalErDslLexer.g:1:469: RULE_STRING + // InternalErDslLexer.g:1:470: RULE_STRING { mRULE_STRING(); } break; case 38 : - // InternalErDslLexer.g:1:481: RULE_ML_COMMENT + // InternalErDslLexer.g:1:482: RULE_ML_COMMENT { mRULE_ML_COMMENT(); } break; case 39 : - // InternalErDslLexer.g:1:497: RULE_SL_COMMENT + // InternalErDslLexer.g:1:498: RULE_SL_COMMENT { mRULE_SL_COMMENT(); } break; case 40 : - // InternalErDslLexer.g:1:513: RULE_WS + // InternalErDslLexer.g:1:514: RULE_WS { mRULE_WS(); } break; case 41 : - // InternalErDslLexer.g:1:521: RULE_ANY_OTHER + // InternalErDslLexer.g:1:522: RULE_ANY_OTHER { mRULE_ANY_OTHER(); @@ -3750,7 +3759,7 @@ public DFA12(BaseRecognizer recognizer) { this.transition = DFA12_transition; } public String getDescription() { - return "1:1: Tokens : ( GenerateOcurrenceDiagram | PartialOverlapped | PartialDisjoint | TotalOverlapped | TotalDisjoint | LogicalSchema | Relationships | IsIdentifier | PostgreSQL | Entities | Generate | Datetime | Diagram | Boolean | Relates | Domain | Double | String | LeftParenthesisDigitZeroColonDigitOneRightParenthesis | N | LeftParenthesisDigitOneColonDigitOneRightParenthesis | N_1 | MySQL | Money | File | All | Int | Is | Comma | Semicolon | LeftSquareBracket | RightSquareBracket | LeftCurlyBracket | RightCurlyBracket | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; + return "1:1: Tokens : ( GenerateOccurrenceDiagram | PartialOverlapped | PartialDisjoint | TotalOverlapped | TotalDisjoint | LogicalSchema | Relationships | IsIdentifier | PostgreSQL | Entities | Generate | Datetime | Diagram | Boolean | Relates | Domain | Double | String | LeftParenthesisDigitZeroColonDigitOneRightParenthesis | N | LeftParenthesisDigitOneColonDigitOneRightParenthesis | N_1 | MySQL | Money | File | All | Int | Is | Comma | Semicolon | LeftSquareBracket | RightSquareBracket | LeftCurlyBracket | RightCurlyBracket | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; } public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { IntStream input = _input; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.tokens b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.tokens index da340ad..7ae75a9 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.tokens +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.tokens @@ -8,7 +8,7 @@ Double=20 Entities=13 File=28 Generate=14 -GenerateOcurrenceDiagram=4 +GenerateOccurrenceDiagram=4 Int=30 Is=31 IsIdentifier=11 diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/serializer/ErDslSemanticSequencer.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/serializer/ErDslSemanticSequencer.java index ed33874..7959ad8 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/serializer/ErDslSemanticSequencer.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/serializer/ErDslSemanticSequencer.java @@ -164,7 +164,7 @@ protected void sequence_RelationSideRight(ISerializationContext context, Relatio * leftEnding=RelationSideLeft * rightEnding=RelationSideRight * (attributes+=Attribute attributes+=Attribute*)* - * ocurrence='@generateOcurrenceDiagram'? + * occurrence='@generateOccurrenceDiagram'? * ) */ protected void sequence_Relation(ISerializationContext context, Relation semanticObject) { diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess.java index 9dbf742..8fece21 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess.java @@ -342,22 +342,22 @@ public class RelationElements extends AbstractParserRuleElementFinder { private final Assignment cAttributesAssignment_2_2_1 = (Assignment)cGroup_2_2.eContents().get(1); private final RuleCall cAttributesAttributeParserRuleCall_2_2_1_0 = (RuleCall)cAttributesAssignment_2_2_1.eContents().get(0); private final Keyword cRightCurlyBracketKeyword_2_3 = (Keyword)cGroup_2.eContents().get(3); - private final Assignment cOcurrenceAssignment_3 = (Assignment)cGroup.eContents().get(3); - private final Keyword cOcurrenceGenerateOcurrenceDiagramKeyword_3_0 = (Keyword)cOcurrenceAssignment_3.eContents().get(0); + private final Assignment cOccurrenceAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final Keyword cOccurrenceGenerateOccurrenceDiagramKeyword_3_0 = (Keyword)cOccurrenceAssignment_3.eContents().get(0); //Relation: // (name=ID) ('[' leftEnding=RelationSideLeft // 'relates' // rightEnding=RelationSideRight ']') // ('{' attributes+=Attribute - // (',' attributes+=Attribute)* '}')* ocurrence=('@generateOcurrenceDiagram')?; + // (',' attributes+=Attribute)* '}')* occurrence=('@generateOccurrenceDiagram')?; @Override public ParserRule getRule() { return rule; } //(name=ID) ('[' leftEnding=RelationSideLeft //'relates' //rightEnding=RelationSideRight ']') //('{' attributes+=Attribute - //(',' attributes+=Attribute)* '}')* ocurrence=('@generateOcurrenceDiagram')? + //(',' attributes+=Attribute)* '}')* occurrence=('@generateOccurrenceDiagram')? public Group getGroup() { return cGroup; } //(name=ID) @@ -420,11 +420,11 @@ public class RelationElements extends AbstractParserRuleElementFinder { //'}' public Keyword getRightCurlyBracketKeyword_2_3() { return cRightCurlyBracketKeyword_2_3; } - //ocurrence=('@generateOcurrenceDiagram')? - public Assignment getOcurrenceAssignment_3() { return cOcurrenceAssignment_3; } + //occurrence=('@generateOccurrenceDiagram')? + public Assignment getOccurrenceAssignment_3() { return cOccurrenceAssignment_3; } - //('@generateOcurrenceDiagram') - public Keyword getOcurrenceGenerateOcurrenceDiagramKeyword_3_0() { return cOcurrenceGenerateOcurrenceDiagramKeyword_3_0; } + //('@generateOccurrenceDiagram') + public Keyword getOccurrenceGenerateOccurrenceDiagramKeyword_3_0() { return cOccurrenceGenerateOccurrenceDiagramKeyword_3_0; } } public class RelationSideRightElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.unipampa.erdsl.ErDsl.RelationSideRight"); @@ -738,7 +738,7 @@ public ParserRule getEntityRule() { // 'relates' // rightEnding=RelationSideRight ']') // ('{' attributes+=Attribute - // (',' attributes+=Attribute)* '}')* ocurrence=('@generateOcurrenceDiagram')?; + // (',' attributes+=Attribute)* '}')* occurrence=('@generateOccurrenceDiagram')?; public RelationElements getRelationAccess() { return pRelation; } diff --git a/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/ErDsl.xtext b/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/ErDsl.xtext index c14c971..840d4a6 100644 --- a/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/ErDsl.xtext +++ b/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/ErDsl.xtext @@ -24,7 +24,7 @@ Relation: 'relates' rightEnding=RelationSideRight ']') ('{' attributes+=Attribute - (',' attributes+=Attribute)* '}')* ocurrence=('@generateOcurrenceDiagram')?; + (',' attributes+=Attribute)* '}')* occurrence=('@generateOccurrenceDiagram')?; RelationSideRight: cardinality=('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') diff --git a/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/ErDslGenerator.xtend b/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/ErDslGenerator.xtend index b24274d..fbee31c 100644 --- a/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/ErDslGenerator.xtend +++ b/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/ErDslGenerator.xtend @@ -20,7 +20,7 @@ class ErDslGenerator extends AbstractGenerator { val postGreSqlGenerator = new PostgresqlFileGenerator; val MySqlGenerator = new MysqlFileGenerator; val PlantUmlGenerator = new PlantUmlFileGenerator; - val OcurrenceDiagramGenerator = new OcurrenceDiagramGenerator; + val OcurrenceDiagramGenerator = new OccurrenceDiagramGenerator; override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) { diff --git a/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/OccurrenceDiagramGenerator.xtend b/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/OccurrenceDiagramGenerator.xtend new file mode 100644 index 0000000..6bf8c36 --- /dev/null +++ b/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/OccurrenceDiagramGenerator.xtend @@ -0,0 +1,252 @@ +package org.xtext.unipampa.erdsl.generator + +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext +import org.xtext.unipampa.erdsl.erDsl.ERModel +import org.eclipse.xtext.generator.IFileSystemAccessExtension3 +import java.io.ByteArrayOutputStream +import net.sourceforge.plantuml.SourceStringReader +import java.io.ByteArrayInputStream +import org.xtext.unipampa.erdsl.erDsl.Relation + +class OccurrenceDiagramGenerator extends AbstractGenerator { + + var String currentRelationshipName = null; + + override doGenerate(Resource input, IFileSystemAccess2 fsa, IGeneratorContext context) { + + val modeloER = input.contents.get(0) as ERModel + + for (r : modeloER.relations.filter[i|i.occurrence !== null]) { + try { + + this.currentRelationshipName = r.name.toString + + for (diagramModel : input.contents.filter(typeof(ERModel))) { + val plantUML = diagramModel.plotToPlantUML.toString + + if (fsa instanceof IFileSystemAccessExtension3) { + + val out = new ByteArrayOutputStream() + + new SourceStringReader(plantUML).generateImage(out) + + (fsa as IFileSystemAccessExtension3).generateFile(r.name.toLowerCase + "_OccurrenceDiagram.png", + new ByteArrayInputStream(out.toByteArray)) + + fsa.generateFile(r.name.toLowerCase + "_OccurrenceDiagramDesc_Gen.puml", plantUML) + } else { + + fsa.generateFile(r.name.toLowerCase + "_OccurrenceDiagramDesc_PartialGen.puml", plantUML) + } + } + + } catch (Exception e) { + + println(e.stackTrace.toString) + + } + + this.currentRelationshipName = null + + } + + } + + def private CharSequence plotToPlantUML(ERModel it) ''' + @startuml + ' - Esconde os (*letra*) dos objetos (E para entidade, C para classe, O para objetos, etc) + ' hide circle + ' - workaround para evitar problemas com os angulos do crows foot + ' skinparam linetype ortho + skinparam titleBorderRoundCorner 15 + skinparam titleBorderThickness 1 + ' skinparam titleBorderColor red + ' skinparam titleBackgroundColor CadetBlue + scale 2.0 + ' skinparam monochrome true + header + Diagram generated by ERtext + endheader + right footer https://github.com/ProjetoDSL/ERDSL + title Occurrence Diagram\n«this.currentRelationshipName» + «FOR e : relations.filter[i|i.occurrence !== null]» + «IF e.name.equalsIgnoreCase(this.currentRelationshipName)» + «e.plotToPlantUML» + «ENDIF» + «ENDFOR» + @enduml + ''' + + def private CharSequence plotToPlantUML(Relation r) ''' + ' top to bottom direction + left to right direction + ' diamond «r.name.toLowerCase»_dmd + + «IF r.leftEnding.cardinality.equalsIgnoreCase("(0:1)") && r.rightEnding.cardinality.equalsIgnoreCase("(0:1)")» + «initDefaultObjects(r)» + package relationship { + object x1_y1 + object x2_y3 + } + + A -- X + B -- Z + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(0:1)") && r.rightEnding.cardinality.equalsIgnoreCase("(1:1)")» + package «r.leftEnding.target.toString»«r.leftEnding.cardinality»{ + object A + object B + } + + package «r.rightEnding.target.toString»«r.rightEnding.cardinality»{ + object X + object Y + object Z + } + + A -- X + B -- Z + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(1:1)") && r.rightEnding.cardinality.equalsIgnoreCase("(0:1)")» + package «r.leftEnding.target.toString»«r.leftEnding.cardinality»{ + object A + object B + object C + } + + package «r.rightEnding.target.toString»«r.rightEnding.cardinality» { + object X + object Y + } + + A -- X + C -- Y + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(1:1)") && r.rightEnding.cardinality.equalsIgnoreCase("(1:1)")» + «initDefaultObjects(r)» + package relationship { + object x1_y1 + object x2_y2 + object x3_y3 + } + + x1 -- x1_y1 + x1_y1 -- y1 + x2 -- x2_y2 + x2_y2 -- y2 + x3 -- x3_y3 + x3_y3 -- y3 + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(0:1)") && r.rightEnding.cardinality.equalsIgnoreCase("(1:N)")» + 0,1 - 1,n + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(1:1)") && r.rightEnding.cardinality.equalsIgnoreCase("(1:N)")» + 1,1 - 1,n + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(1:N)") && r.rightEnding.cardinality.equalsIgnoreCase("(0:1)")» + 1,n - 0,1 + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(1:N)") && r.rightEnding.cardinality.equalsIgnoreCase("(1:1)")» + 1,n - 1,1 + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(0:1)") && r.rightEnding.cardinality.equalsIgnoreCase("(0:N)")» + 0,1 - 0,n + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(1:1)") && r.rightEnding.cardinality.equalsIgnoreCase("(0:N)")» + 1,1 - 0,n + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(0:N)") && r.rightEnding.cardinality.equalsIgnoreCase("(0:1)")» + 0,n - 0,1 + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(0:N)") && r.rightEnding.cardinality.equalsIgnoreCase("(1:1)")» + 0,n - 1,1 + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(0:N)") && r.rightEnding.cardinality.equalsIgnoreCase("(0:N)")» + «initDefaultObjects(r)» + package relationship { + object x1_y1 + object x1_y3 + object x2_y1 + object x2_y3 + } + + x1 -- x1_y1 + x1_y1 -- y1 + x1 -- x1_y3 + x1_y3 -- y3 + x2 -- x2_y1 + x2_y1 -- y1 + x2 -- x2_y3 + x2_y3 -- y3 + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(1:N)") && r.rightEnding.cardinality.equalsIgnoreCase("(1:N)")» + «initDefaultObjects(r)» + package relationship { + object x1_y1 + object x1_y2 + object x1_y3 + object x2_y1 + object x2_y3 + object x3_y2 + } + + x1 -- x1_y1 + x1_y1 -- y1 + x1 -- x1_y2 + x1_y2 -- y2 + x1 -- x1_y3 + x1_y3 -- y3 + x2 -- x2_y1 + x2_y1 -- y1 + x2 -- x2_y3 + x2_y3 -- y3 + x3 -- x3_y2 + x3_y2 -- y2 + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(0:N)") && r.rightEnding.cardinality.equalsIgnoreCase("(1:N)")» + «initDefaultObjects(r)» + package relationship { + object x1_y1 + object x2_y1 + object x3_y1 + object x1_y2 + object x3_y2 + } + + x1 -- x1_y1 + x1_y1 -- y1 + x2 -- x2_y1 + x2_y1 -- y1 + x3 -- x3_y1 + x3_y1 -- y1 + x1 -- x1_y2 + x1_y2 --y2 + x3 -- x3_y2 + x3_y2 -- y2 + «ELSEIF r.leftEnding.cardinality.equalsIgnoreCase("(1:N)") && r.rightEnding.cardinality.equalsIgnoreCase("(0:N)")» + «initDefaultObjects(r)» + package relationship { + object x1_y1 + object x2_y2 + object x1_y3 + object x2_y1 + object x2_y3 + } + + x1 -- x1_y1 + x1_y1 -- y1 + x2 -- x2_y2 + x2_y2 -- y2 + x1 -- x1_y3 + x1_y3 -- y3 + x2 -- x2_y1 + x2_y1 -- y1 + x2 -- x2_y3 + x2_y3 -- y3 + «ENDIF» + ''' + + def private initDefaultObjects(Relation r) ''' + package «r.leftEnding.target.toString»«r.leftEnding.cardinality» { + object x1 + object x2 + object x3 + } + + package «r.rightEnding.cardinality»«r.rightEnding.target.toString» { + object y1 + object y2 + object y3 + } + ''' + +} \ No newline at end of file diff --git a/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/OcurrenceDiagramGenerator.xtend b/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/OcurrenceDiagramGenerator.xtend deleted file mode 100644 index fcb47c9..0000000 --- a/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/OcurrenceDiagramGenerator.xtend +++ /dev/null @@ -1,27 +0,0 @@ -package org.xtext.unipampa.erdsl.generator - -import org.eclipse.xtext.generator.AbstractGenerator -import org.eclipse.emf.ecore.resource.Resource -import org.eclipse.xtext.generator.IFileSystemAccess2 -import org.eclipse.xtext.generator.IGeneratorContext -import org.xtext.unipampa.erdsl.erDsl.ERModel - -class OcurrenceDiagramGenerator extends AbstractGenerator { - - override doGenerate(Resource input, IFileSystemAccess2 fsa, IGeneratorContext context) { - - val modeloER = input.contents.get(0) as ERModel - - try { - fsa.generateFile(modeloER.domain.name.toLowerCase+'_OcurrenceDiagram.sql', ocurrence_CreateDiagram(modeloER)) - } catch (Exception e) { - println(e.stackTrace.toString) - } - - } - - def private ocurrence_CreateDiagram(ERModel modeloER) ''' - Test - ''' - -} \ No newline at end of file diff --git a/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/PlantUmlFileGenerator.xtend b/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/PlantUmlFileGenerator.xtend index 3b8f040..d79ab03 100644 --- a/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/PlantUmlFileGenerator.xtend +++ b/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/PlantUmlFileGenerator.xtend @@ -32,7 +32,7 @@ class PlantUmlFileGenerator extends AbstractGenerator { new ByteArrayInputStream(out.toByteArray)) - fsa.generateFile(modeloER.domain.name.toLowerCase+"_DiagramDesc_Gen.puml", plantUML) +// fsa.generateFile(modeloER.domain.name.toLowerCase+"_DiagramDesc_Gen.puml", plantUML) } else { @@ -57,7 +57,7 @@ class PlantUmlFileGenerator extends AbstractGenerator { skinparam titleBorderRoundCorner 15 skinparam titleBorderThickness 1 ' skinparam titleBorderColor red - scale 1.0 + scale 1.5 ' skinparam monochrome true header Diagram generated by ERtext diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.java._trace b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.java._trace index e4d67303ad7bb4595ddf45c7e3a26684a193000a..455c5e84e80ce035035e26b6bfd20a379b333a62 100644 GIT binary patch literal 4953 zcmaLZYitzP6$kJ=^Dr}vvAqvJ*4SR`wT+Fz#x~d{#^&zsJa%_x*Akvm9YGYN3LTTx_=g!7E z2I_CW`@iR$x$B*4he9D0pl}1&H$qZs%n6k<8$yHICpY!%-nn7-&YoS{Ha|D9^|^_j z4U_A4JlnHr!?q2R6Faw0_E?kVj%S@ByK(on^)j@99Fm|_QbLe^(mfPmtG{j=lG9JJ zqmdfEz>dxfHFg zZbpzf8zXr!%ph~QY5sg{`b+~#%3N-s%-0`8-NriFInBJrMr``hlIrS^VuqqK0yA1k zdbJWWFk9n|jo9?fT9jnA)>7uHL)1-0X=jG5P9(7DyZtpa*!0nw8G*SeLOLD649qiZqmH#RN0;}1etk1v4wDXZ#s&k`4QK~BySWhdIty8FO-2&3L>#1&YM2Nm5 zR;j?+qfz!?@CYsZi5wSN4vAiLYzu;555|LTx1 zI})dCsbtCX@5C#_nP}cW%j<|&Q9cT3%;_leYi;|E~IyMVzXhLzs~mI5`lfJnliJB zvSZO1fqljxJt6AOh&mG3x7g=hJveX!`*BMfPQ1nTcP&P5VP;E9NO8(KySg}AP_k3j zBor6YySngsw&*CyDJu~;mDQB(sG_VgIwNpe4bm&3u2s~L!0BnB?2wq(6BY_%7jRe= zO@E8`1n23<;>9@qkjM@Xc6XzG&TKq}Xkzj#n8Ri345FCcJ! zT0zlO=-e=@?~WG0I8>*^5ca z)+I4hvlk5^0|nVDI%yl-1pz_!&kAL`73x_k$X?SZ+pAGlD#&T6+QAWg?AO_WMN2|* zF3I){tw0}HxoA;H$)!4nhPYZ#axT>*6c^HmhVa8VqNAi-szi{>S5tPpin4rkMvz-; zkWPuZwW5v$xh?gSy;n~YwuFVkD9G*6X!<3M^hRvO3Y`9)$gT_x52OCb96W`TyASac z9}nVNDCe%khKIRgLMl~$tnxQBccny-`>2w#>y?z13UW7-lzoxJOwHXigbWnq{;8Ah z=u}rK$lX?WW|t|Hl?rlqHOdT)vQj~QVX9%2nIPE<*blpVLvlXN_OD_L7urVgMO5quc#}|ENME%IhqlqHo*yp}s3i3zi()4f6C7p>e{K5H-NT-Kcnx)a}SssrfadC=hQ*Zh21 zqdaJEr$(5=9FUyQ%E3WA-&DNlxUkBNf678CT5_iX2KVilpQ|y-g9i6>($C{b%vJZa zQM7>u_kG=Wt4{SngZmrB&$|`Mg9i8anxFS;lm`v&CqpdDvUtAKAl_86`$?>5esiH! zZaiN~F2AHn5*uzQM7>u_dmMtah>Xe25*ky=UWt>&oX%B znxAjiC=VLEreT(2IXvIqhw#>ty{6itYlT&AJl|frQ@y5u!AnN`{N)J0^=28oOkc*654TJk0W25)1%pI@k_JZSJpOs-O_Qr)u^J6c)1WY>bWJumy|g zsipt3gb&%C5O;B*pFQIj`b%rfb_oi?_53a!f05hGU>Hq)$ literal 4953 zcmaLZYitzP6$kJ+^DsLM*xrY|USoT~Yl9#7$-_3r_O*9jyE6-<5ctqU6$XM34p5*f z6_LO+6)mVJO;n2@QW{l?5G1J-wFQy1M1ocVsg_cN(hpIhL}_WHMs28+f?9>1d+uy@ z$3Xe^yZ?L6nY--VwIoRzz&aJ!W=S4jZ$DVTY>)=_?%&yS=-`e+2YbG=XV<>1&+gmW zvt$4E15-UackJ1*f9t`$`+KbY=7A}v$Zp)dXS)Kephz;b$f^VrTf8@7?8&d&O3K6* zb|zNK7ucDFQQYx`7f;fT&+HvhW=ncDSyfku8~#xh#XQ>`_5q2!PtYqDG_g<(Ty zJT9r(Z^TN1?Dk61;!4aQd$2B*0(qjh7A0p7)>0Pekf>W3qn$6ZZ!TJdP2GV+0-OH4 zt|Z7_PLTWrW{{n2TC@n8PBx(A>}&&Nf&L`wo~fgqcbVVVh)s`n)znC;DaA_yGhRh{ zz6vuiTT+dU*z~7Klx(&nDGSsl>Ryi1&MbQ}oyMkbuBffWrcczC1m?~d>8%)MU>
    QS0+l&JFk=ptZS8&ofFx$1to#?-aOLzdDP`SRY*mFbz7zhugjz_qf7ad z(X%Mly~xs~_+)QIXkNL%28}X$PPwS_)YD$z++9W=!d3G`BQquWp%ulhvwz*jJnVkW zbQ>ANJ&#+#=ec2yq(>#yZeT~++R%SwPvf^&u^ZXAa2x+J+v!o#>@resS6dtQzf(zD zdn-!6%C@a0-S4BG+r)(XV!}2t z;l7wqF0iL)f+>p$Q#3&c?CCl_&y3Yk&*`X86b1H+6?~qVsUW>({;r*W)Mn?zkJBsg z!+6XBR`gFyFX@*m?AM0d+mUOU@g-I4OHD#4A-%mFo2}9L3v6F16WH(8P?oKx?A>@t zVBa=K8%5o1QAYyDV4rvP;K1$dh2~aCK_Bm2j^4%0=4MHCmbG_wayFwBXIYa_N=WbQ z#OK+iqhx1UnZW6-p=^IOWxer|z_AR{F;QoUIubY=nkhRe=52@yMX?JwTdQgMS>6+z zBeCVnar#M-T^i`_M!m^wJcjH%f_REctMOV;oJ;ZUZZ3ZDpfswyMAu$O;Ji~w**lf| zItdA!n;FV(W-!y7n}!g-Ai=qWzbQ@XxF0#_Pe(z_ZT z`#yVVX}hGji`a?2e)Lyt9N&7?9cu6E<7`GL?og9ZN=WbP!%ycc9VNR%Wde7ihG*8i zYRV?!C4sxeASFfJ7OJyI;7+C~Tb!l|lTjhOt0Zs_EacOzzJ;V068-%+VX??&M^>&x zG3MhjWcLxo%G_Ffs}y%OwQ?m_N=T#1oW|ccceYI6-bzrmE3I`b<(qR7lZ`ve^tu9t5VN$K@K96Js06wNRVqEPY#UWWB-KxsH00#awhx1;1GId zZAXWs<|f+*2f3P2N^Y`AC?%v14&sM1qod^9WSJnhyN0rJ)s*dymjt<^2I-fg?x?6E zLGENdWtZz|!pW#m6a~4n5t@D@Li$x=Xb7iY7TMjw;bGJ*=HMyh+#`sm_+S9vLM3-M zF+9wb5Ynjf1C76-xw~b8+`p?R`?!j-azVZ#L)kwwm}&V6L&!iuKB|-cqw~6uAiqfE znXRdml?(EVBb3dLP*yI;yW5 z-6WI}(#OVdXbZjS`ROu2{zMIBUDf<`&Yy^v1o?9YX++eW6LloWUudArZlDPlqC!y= zR>oAHo(BQ4o1E12VK5X#D)F3~tQXV#VW+cd8iBKLk zc!$UH%w~D~2!1=BTQQ0!n7dNp9Uj0fHlF$V>Q$@oGdLVCIxehnV~gt=8aspx-qFe+ zzfnnf*x;SY1o`_J%r)u?`1vkCpy)K4c;%*Apg5cdD!5cj|BM_5z4~`@5%^s zn1knguy$Yo&vzwNbV^v`#`8VU(6V=( z;EYc7VT1QKHORYE%EJcl^GJ~QM<@>)ya$8KWiH4L8^D`N@g5|K<~J8w zj=@)}g50X&`5c2E&jk6V4Cb02H;OjU;5X@kzok=s*xc)sW8PW8t^2H%VY`E-omdUFi^=1h>k#BW;7-)t1k z?^^J;>Vbbox9uE*zgrFR^K|3RG5Gr;LH-8ax^oQvF_vX{md68LWfLPKc*0}p;zC+j zWC$qF-bR-kaY eI@r?_{I(QMSB6)haKQ*x)&##dg$sIk1^x%>>!FPR diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.xtendbin b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.xtendbin index 3eabed1b42f4c3b61f128f8610e14a253382bf69..d24ab65a35681b1c325f35718159c073fd502674 100644 GIT binary patch delta 3799 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 Pp_7~u9|rFb00000x}G%X diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.HtmlFileGenerator.xtendbin b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.HtmlFileGenerator.xtendbin index 263cedd9fe8561e04b598c23d9cb02510f68911d..ee5488979adf10bb59a649cd108bea530931e204 100644 GIT binary patch delta 60 zcmbQVm~ql#MxFp~W)=|!4h{~6ADcJwusbvT*t}WP`5`Na{^4~Y)^5)9?&AW{KSOV@1L?_^V=X`wZ=3^& I@{e-@08RH4@&Et; diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.OccurrenceDiagramGenerator.java._trace b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.OccurrenceDiagramGenerator.java._trace new file mode 100644 index 0000000000000000000000000000000000000000..8968ec1fee80e6d95e312fe483d1cab392b8264a GIT binary patch literal 16940 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%0D7I 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 literal 0 HcmV?d00001 diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.OcurrenceDiagramGenerator.java._trace b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.OcurrenceDiagramGenerator.java._trace index b68eb6546d467971474d6659e97bc7ece9f553db..cfa2cd3f36a171b26df41843f889847e99c15439 100644 GIT binary patch literal 4532 zcmZveYitzP702h?nf2~^pBQY6AK1oEY{)u5Z4f~muV-f;hT`?E(}V(DDJ%P*wCp0*#YWsh~DW1o9pp$`RTZUQuOp%`5qYnd zv3FvcqL88@l`P`qi2?%iRFJ(%FMFr_c>?ndH`4_-cX`85WDtS*rr-&G5=@^?sg|4Z zF1q=dr@ERpyX4`Xg#_l`UF`9mB1acg&;MG9nREf&C!*IY7SNfTtjD}DUk&NqC!@cp zXxGHu8ASK#=*w02Xq3l?YHEnjH`C@uEK*!kL)Dkci6FLgn({(KdTePCd*}IX90ajg zkiCmudHz_;pC^cA$)gEZ!rXI{`D(3PP%U7@wpG^F5}paLyWhja+lZJ=m*gEo?1;Ig zZazi-5nWHKi`!U_9Y<@{EE@Fh1@ii0XXi>X-Hk+g?CdN>Rf=4*X3^!jB|+@1YNlx+ z_TCER31aUCR5C!Ga1g{k_OVy*W$$Beo*?!g(_KH0#?On^*UY7h{omaBdcux2x*6Tl zjQV<--(kpmau8UdD)wSk>=hDNi=!7B=2GF>uH7}QROw`wwRmYm15Mf3ByZ7LRmC(? zrKqBzfl5azmvD~vQbnbT!iv02P4v)&mq=Kb3ka-_{OtMM?0r<6C$PRyRN`Xq z3lDotVBH8ZP4}~RLv>+-c%!emShDnm|k5X6Ur><#eT_^>}u5dYPT*|Vw6oWXTxN|_RLBQ)@$kBKLU z9B~(jUu|fW_kFRRR@38ut7@e;%ltFFJ2btJAmKIGyJ$$yL68WxvG*nJrl)2kf&qmA zdEP{2ktFp9g@Yh5tBgIq3gI9~SoqtvxpXt*xSCFC5dWZU4)HS>wb^WIlUzrrCmya* zRH~>{QCN|;t&LWA#!Dm;4;K(5hWzXuaI-g5oF_{ty$n+9FhQuD# zg$WYJ0(0ibd2%z6BilP&H%Ff0nDij=i7}V{reov$*c}9ktF`Ry#+4K`5?2EX16=qo z50knKk#Ha+H7~or;{!VglCAjr$h|c43XZkX?7K56bAW+BkjaDF=?|IiAbh{ zXnGQB6qPC}RTNg_jYMeDO)rs1VgW%i>6f16aBQ;pk*(tMr%Ic|2#fnsAAwg%pCX4F$Z^(gX?38~|lUMRPHx{Odyy;q_rph$4^X~BKoDLrtu(0VqIV+K*;b(Ug=$=bYw|mb-knp2-o2trEE!0m$j3!j+AUM zg?cnSJztj!mDviUJ3>xHq&osm1=8z$IEaJ!DshJb>0Q%t2#09aDmiNz?fAn^T#xHX zSw97rk)o$hyQD&WYz5M1N^E6g$j+PzITc8s7r83I8F7aK>33Uj18&IA66sIFQlVLP zXXta!#ErO-GUIOQvs{C|&IR~Q+)T<-VO&lx8uUHe^;aCmZ&BGHd>+%-uetgT21ptv z>D2%!X-(XrK;MtUcII@5GthUU#8%$)v!eH%^5zt;-RE`%`hKI^nLp@upUJLQa69g$ zCI5&IlGac2C%X=kwue@_rDa@Q8608lGTnb4W;ItPfO~NicTjCk(@9%R+8Al?mr<-w zGcti@Qbwf`U`5Z==~AKo@9V6HI~2$?gzU_fVms3ia4L|w--ly3Ci|$)BCpt0kQsEz z3{C&s#eE>NV+!uT9kNPoDDF@oa}c9Aj^kAJRVijLqlwJvN~zFC6#}g2nbQHM0-1BH z$SRMWIj5^k@+;l$bGrhW$znTm(`9ESJx&EOmuKQ*_*mgS*Zfk+?*m!DB<{prAX0&8 z)F`V#cD!pNK7rqpzvk69_tuLi3OxJkd&?`zJ|3X5C+JgcTjCA{vim}u(c}C6z<(&tuv-TO6MfluLg=)k$Y{|8X#lokL0 literal 1551 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

    ~VXoaDP~ukN;6jD=IfSsa`_B?sOYht5oW~Mm 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 literal 15644 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 _function = (Relation i) -> { + String _occurrence = i.getOccurrence(); + return Boolean.valueOf((_occurrence != null)); + }; + Iterable _filter = IterableExtensions.filter(modeloER.getRelations(), _function); + for (final Relation r : _filter) { + { + try { + this.currentRelationshipName = r.getName().toString(); + Iterable _filter_1 = Iterables.filter(input.getContents(), ERModel.class); + for (final ERModel diagramModel : _filter_1) { + { + final String plantUML = this.plotToPlantUML(diagramModel).toString(); + if ((fsa instanceof IFileSystemAccessExtension3)) { + final ByteArrayOutputStream out = new ByteArrayOutputStream(); + new SourceStringReader(plantUML).generateImage(out); + String _lowerCase = r.getName().toLowerCase(); + String _plus = (_lowerCase + "_OccurrenceDiagram.png"); + byte[] _byteArray = out.toByteArray(); + ByteArrayInputStream _byteArrayInputStream = new ByteArrayInputStream(_byteArray); + ((IFileSystemAccessExtension3) fsa).generateFile(_plus, _byteArrayInputStream); + String _lowerCase_1 = r.getName().toLowerCase(); + String _plus_1 = (_lowerCase_1 + "_OccurrenceDiagramDesc_Gen.puml"); + fsa.generateFile(_plus_1, plantUML); + } else { + String _lowerCase_2 = r.getName().toLowerCase(); + String _plus_2 = (_lowerCase_2 + "_OccurrenceDiagramDesc_PartialGen.puml"); + fsa.generateFile(_plus_2, plantUML); + } + } + } + } catch (final Throwable _t) { + if (_t instanceof Exception) { + final Exception e = (Exception)_t; + InputOutput.println(((List)Conversions.doWrapArray(e.getStackTrace())).toString()); + } else { + throw Exceptions.sneakyThrow(_t); + } + } + this.currentRelationshipName = null; + } + } + } + + private CharSequence plotToPlantUML(final ERModel it) { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("@startuml"); + _builder.newLine(); + _builder.append("\' - Esconde os (*letra*) dos objetos (E para entidade, C para classe, O para objetos, etc)"); + _builder.newLine(); + _builder.append("\' hide circle"); + _builder.newLine(); + _builder.append("\' - workaround para evitar problemas com os angulos do crows foot"); + _builder.newLine(); + _builder.append("\' skinparam linetype ortho"); + _builder.newLine(); + _builder.append("skinparam titleBorderRoundCorner 15"); + _builder.newLine(); + _builder.append("skinparam titleBorderThickness 1"); + _builder.newLine(); + _builder.append("\' skinparam titleBorderColor red"); + _builder.newLine(); + _builder.append("\' skinparam titleBackgroundColor CadetBlue"); + _builder.newLine(); + _builder.append("scale 2.0"); + _builder.newLine(); + _builder.append("\' skinparam monochrome true"); + _builder.newLine(); + _builder.append("header"); + _builder.newLine(); + _builder.append("Diagram generated by ERtext"); + _builder.newLine(); + _builder.append("endheader"); + _builder.newLine(); + _builder.append("right footer https://github.com/ProjetoDSL/ERDSL"); + _builder.newLine(); + _builder.append("title Occurrence Diagram\\n"); + _builder.append(this.currentRelationshipName); + _builder.newLineIfNotEmpty(); + { + final Function1 _function = (Relation i) -> { + String _occurrence = i.getOccurrence(); + return Boolean.valueOf((_occurrence != null)); + }; + Iterable _filter = IterableExtensions.filter(it.getRelations(), _function); + for(final Relation e : _filter) { + { + boolean _equalsIgnoreCase = e.getName().equalsIgnoreCase(this.currentRelationshipName); + if (_equalsIgnoreCase) { + CharSequence _plotToPlantUML = this.plotToPlantUML(e); + _builder.append(_plotToPlantUML); + _builder.newLineIfNotEmpty(); + } + } + } + } + _builder.append("@enduml"); + _builder.newLine(); + return _builder; + } + + private CharSequence plotToPlantUML(final Relation r) { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("\' top to bottom direction"); + _builder.newLine(); + _builder.append("left to right direction"); + _builder.newLine(); + _builder.append("\' diamond "); + String _lowerCase = r.getName().toLowerCase(); + _builder.append(_lowerCase); + _builder.append("_dmd"); + _builder.newLineIfNotEmpty(); + _builder.newLine(); + { + if ((r.getLeftEnding().getCardinality().equalsIgnoreCase("(0:1)") && r.getRightEnding().getCardinality().equalsIgnoreCase("(0:1)"))) { + CharSequence _initDefaultObjects = this.initDefaultObjects(r); + _builder.append(_initDefaultObjects); + _builder.newLineIfNotEmpty(); + _builder.append("package relationship {"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x1_y1"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x2_y3"); + _builder.newLine(); + _builder.append("}"); + _builder.newLine(); + _builder.newLine(); + _builder.append("A -- X"); + _builder.newLine(); + _builder.append("B -- Z"); + _builder.newLine(); + } else { + if ((r.getLeftEnding().getCardinality().equalsIgnoreCase("(0:1)") && r.getRightEnding().getCardinality().equalsIgnoreCase("(1:1)"))) { + _builder.append("package "); + String _string = r.getLeftEnding().getTarget().toString(); + _builder.append(_string); + String _cardinality = r.getLeftEnding().getCardinality(); + _builder.append(_cardinality); + _builder.append("{"); + _builder.newLineIfNotEmpty(); + _builder.append("\t"); + _builder.append("object A"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object B"); + _builder.newLine(); + _builder.append("}\t"); + _builder.newLine(); + _builder.append("\t\t"); + _builder.newLine(); + _builder.append("package "); + String _string_1 = r.getRightEnding().getTarget().toString(); + _builder.append(_string_1); + String _cardinality_1 = r.getRightEnding().getCardinality(); + _builder.append(_cardinality_1); + _builder.append("{"); + _builder.newLineIfNotEmpty(); + _builder.append("\t"); + _builder.append("object X"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object Y"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object Z"); + _builder.newLine(); + _builder.append("}"); + _builder.newLine(); + _builder.newLine(); + _builder.append("A -- X"); + _builder.newLine(); + _builder.append("B -- Z"); + _builder.newLine(); + } else { + if ((r.getLeftEnding().getCardinality().equalsIgnoreCase("(1:1)") && r.getRightEnding().getCardinality().equalsIgnoreCase("(0:1)"))) { + _builder.append("package "); + String _string_2 = r.getLeftEnding().getTarget().toString(); + _builder.append(_string_2); + String _cardinality_2 = r.getLeftEnding().getCardinality(); + _builder.append(_cardinality_2); + _builder.append("{"); + _builder.newLineIfNotEmpty(); + _builder.append("\t"); + _builder.append("object A"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object B"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object C"); + _builder.newLine(); + _builder.append("}\t"); + _builder.newLine(); + _builder.append("\t\t"); + _builder.newLine(); + _builder.append("package "); + String _string_3 = r.getRightEnding().getTarget().toString(); + _builder.append(_string_3); + String _cardinality_3 = r.getRightEnding().getCardinality(); + _builder.append(_cardinality_3); + _builder.append(" {"); + _builder.newLineIfNotEmpty(); + _builder.append("\t"); + _builder.append("object X"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object Y"); + _builder.newLine(); + _builder.append("}"); + _builder.newLine(); + _builder.newLine(); + _builder.append("A -- X"); + _builder.newLine(); + _builder.append("C -- Y"); + _builder.newLine(); + } else { + if ((r.getLeftEnding().getCardinality().equalsIgnoreCase("(1:1)") && r.getRightEnding().getCardinality().equalsIgnoreCase("(1:1)"))) { + CharSequence _initDefaultObjects_1 = this.initDefaultObjects(r); + _builder.append(_initDefaultObjects_1); + _builder.newLineIfNotEmpty(); + _builder.append("package relationship {"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x1_y1"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x2_y2"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x3_y3"); + _builder.newLine(); + _builder.append("}"); + _builder.newLine(); + _builder.newLine(); + _builder.append("x1 -- x1_y1"); + _builder.newLine(); + _builder.append("x1_y1 -- y1"); + _builder.newLine(); + _builder.append("x2 -- x2_y2"); + _builder.newLine(); + _builder.append("x2_y2 -- y2"); + _builder.newLine(); + _builder.append("x3 -- x3_y3 "); + _builder.newLine(); + _builder.append("x3_y3 -- y3"); + _builder.newLine(); + } else { + if ((r.getLeftEnding().getCardinality().equalsIgnoreCase("(0:1)") && r.getRightEnding().getCardinality().equalsIgnoreCase("(1:N)"))) { + _builder.append("0,1 - 1,n"); + _builder.newLine(); + } else { + if ((r.getLeftEnding().getCardinality().equalsIgnoreCase("(1:1)") && r.getRightEnding().getCardinality().equalsIgnoreCase("(1:N)"))) { + _builder.append("1,1 - 1,n"); + _builder.newLine(); + } else { + if ((r.getLeftEnding().getCardinality().equalsIgnoreCase("(1:N)") && r.getRightEnding().getCardinality().equalsIgnoreCase("(0:1)"))) { + _builder.append("1,n - 0,1"); + _builder.newLine(); + } else { + if ((r.getLeftEnding().getCardinality().equalsIgnoreCase("(1:N)") && r.getRightEnding().getCardinality().equalsIgnoreCase("(1:1)"))) { + _builder.append("1,n - 1,1"); + _builder.newLine(); + } else { + if ((r.getLeftEnding().getCardinality().equalsIgnoreCase("(0:1)") && r.getRightEnding().getCardinality().equalsIgnoreCase("(0:N)"))) { + _builder.append("0,1 - 0,n"); + _builder.newLine(); + } else { + if ((r.getLeftEnding().getCardinality().equalsIgnoreCase("(1:1)") && r.getRightEnding().getCardinality().equalsIgnoreCase("(0:N)"))) { + _builder.append("1,1 - 0,n"); + _builder.newLine(); + } else { + if ((r.getLeftEnding().getCardinality().equalsIgnoreCase("(0:N)") && r.getRightEnding().getCardinality().equalsIgnoreCase("(0:1)"))) { + _builder.append("0,n - 0,1"); + _builder.newLine(); + } else { + if ((r.getLeftEnding().getCardinality().equalsIgnoreCase("(0:N)") && r.getRightEnding().getCardinality().equalsIgnoreCase("(1:1)"))) { + _builder.append("0,n - 1,1"); + _builder.newLine(); + } else { + if ((r.getLeftEnding().getCardinality().equalsIgnoreCase("(0:N)") && r.getRightEnding().getCardinality().equalsIgnoreCase("(0:N)"))) { + CharSequence _initDefaultObjects_2 = this.initDefaultObjects(r); + _builder.append(_initDefaultObjects_2); + _builder.newLineIfNotEmpty(); + _builder.append("package relationship {"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x1_y1"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x1_y3"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x2_y1"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x2_y3"); + _builder.newLine(); + _builder.append("}"); + _builder.newLine(); + _builder.newLine(); + _builder.append("x1 -- x1_y1"); + _builder.newLine(); + _builder.append("x1_y1 -- y1"); + _builder.newLine(); + _builder.append("x1 -- x1_y3"); + _builder.newLine(); + _builder.append("x1_y3 -- y3"); + _builder.newLine(); + _builder.append("x2 -- x2_y1"); + _builder.newLine(); + _builder.append("x2_y1 -- y1"); + _builder.newLine(); + _builder.append("x2 -- x2_y3"); + _builder.newLine(); + _builder.append("x2_y3 -- y3"); + _builder.newLine(); + } else { + if ((r.getLeftEnding().getCardinality().equalsIgnoreCase("(1:N)") && r.getRightEnding().getCardinality().equalsIgnoreCase("(1:N)"))) { + CharSequence _initDefaultObjects_3 = this.initDefaultObjects(r); + _builder.append(_initDefaultObjects_3); + _builder.newLineIfNotEmpty(); + _builder.append("package relationship {"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x1_y1"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x1_y2"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x1_y3"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x2_y1"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x2_y3"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x3_y2"); + _builder.newLine(); + _builder.append("}"); + _builder.newLine(); + _builder.newLine(); + _builder.append("x1 -- x1_y1"); + _builder.newLine(); + _builder.append("x1_y1 -- y1"); + _builder.newLine(); + _builder.append("x1 -- x1_y2"); + _builder.newLine(); + _builder.append("x1_y2 -- y2"); + _builder.newLine(); + _builder.append("x1 -- x1_y3"); + _builder.newLine(); + _builder.append("x1_y3 -- y3"); + _builder.newLine(); + _builder.append("x2 -- x2_y1"); + _builder.newLine(); + _builder.append("x2_y1 -- y1"); + _builder.newLine(); + _builder.append("x2 -- x2_y3"); + _builder.newLine(); + _builder.append("x2_y3 -- y3"); + _builder.newLine(); + _builder.append("x3 -- x3_y2"); + _builder.newLine(); + _builder.append("x3_y2 -- y2"); + _builder.newLine(); + } else { + if ((r.getLeftEnding().getCardinality().equalsIgnoreCase("(0:N)") && r.getRightEnding().getCardinality().equalsIgnoreCase("(1:N)"))) { + CharSequence _initDefaultObjects_4 = this.initDefaultObjects(r); + _builder.append(_initDefaultObjects_4); + _builder.newLineIfNotEmpty(); + _builder.append("package relationship {"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x1_y1"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x2_y1"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x3_y1"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x1_y2"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x3_y2"); + _builder.newLine(); + _builder.append("}"); + _builder.newLine(); + _builder.newLine(); + _builder.append("x1 -- x1_y1"); + _builder.newLine(); + _builder.append("x1_y1 -- y1"); + _builder.newLine(); + _builder.append("x2 -- x2_y1"); + _builder.newLine(); + _builder.append("x2_y1 -- y1"); + _builder.newLine(); + _builder.append("x3 -- x3_y1"); + _builder.newLine(); + _builder.append("x3_y1 -- y1"); + _builder.newLine(); + _builder.append("x1 -- x1_y2"); + _builder.newLine(); + _builder.append("x1_y2 --y2"); + _builder.newLine(); + _builder.append("x3 -- x3_y2"); + _builder.newLine(); + _builder.append("x3_y2 -- y2"); + _builder.newLine(); + } else { + if ((r.getLeftEnding().getCardinality().equalsIgnoreCase("(1:N)") && r.getRightEnding().getCardinality().equalsIgnoreCase("(0:N)"))) { + CharSequence _initDefaultObjects_5 = this.initDefaultObjects(r); + _builder.append(_initDefaultObjects_5); + _builder.newLineIfNotEmpty(); + _builder.append("package relationship {"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x1_y1"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x2_y2"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x1_y3"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x2_y1"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x2_y3"); + _builder.newLine(); + _builder.append("}"); + _builder.newLine(); + _builder.newLine(); + _builder.append("x1 -- x1_y1"); + _builder.newLine(); + _builder.append("x1_y1 -- y1"); + _builder.newLine(); + _builder.append("x2 -- x2_y2"); + _builder.newLine(); + _builder.append("x2_y2 -- y2"); + _builder.newLine(); + _builder.append("x1 -- x1_y3"); + _builder.newLine(); + _builder.append("x1_y3 -- y3"); + _builder.newLine(); + _builder.append("x2 -- x2_y1"); + _builder.newLine(); + _builder.append("x2_y1 -- y1"); + _builder.newLine(); + _builder.append("x2 -- x2_y3"); + _builder.newLine(); + _builder.append("x2_y3 -- y3"); + _builder.newLine(); + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + return _builder; + } + + private CharSequence initDefaultObjects(final Relation r) { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("package "); + String _string = r.getLeftEnding().getTarget().toString(); + _builder.append(_string); + String _cardinality = r.getLeftEnding().getCardinality(); + _builder.append(_cardinality); + _builder.append(" {"); + _builder.newLineIfNotEmpty(); + _builder.append("\t"); + _builder.append("object x1"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x2"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object x3 "); + _builder.newLine(); + _builder.append("}\t"); + _builder.newLine(); + _builder.append("\t\t"); + _builder.newLine(); + _builder.append("package "); + String _cardinality_1 = r.getRightEnding().getCardinality(); + _builder.append(_cardinality_1); + String _string_1 = r.getRightEnding().getTarget().toString(); + _builder.append(_string_1); + _builder.append(" {"); + _builder.newLineIfNotEmpty(); + _builder.append("\t"); + _builder.append("object y1"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object y2"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("object y3"); + _builder.newLine(); + _builder.append("}"); + _builder.newLine(); + return _builder; + } +} diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/OcurrenceDiagramGenerator.java b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/OcurrenceDiagramGenerator.java deleted file mode 100644 index 9bc3ca3..0000000 --- a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/OcurrenceDiagramGenerator.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.xtext.unipampa.erdsl.generator; - -import java.util.List; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.generator.AbstractGenerator; -import org.eclipse.xtext.generator.IFileSystemAccess2; -import org.eclipse.xtext.generator.IGeneratorContext; -import org.eclipse.xtext.xbase.lib.Conversions; -import org.eclipse.xtext.xbase.lib.Exceptions; -import org.eclipse.xtext.xbase.lib.InputOutput; -import org.xtext.unipampa.erdsl.erDsl.ERModel; - -@SuppressWarnings("all") -public class OcurrenceDiagramGenerator extends AbstractGenerator { - @Override - public void doGenerate(final Resource input, final IFileSystemAccess2 fsa, final IGeneratorContext context) { - EObject _get = input.getContents().get(0); - final ERModel modeloER = ((ERModel) _get); - try { - String _lowerCase = modeloER.getDomain().getName().toLowerCase(); - String _plus = (_lowerCase + "_OcurrenceDiagram.sql"); - fsa.generateFile(_plus, this.ocurrence_CreateDiagram(modeloER)); - } catch (final Throwable _t) { - if (_t instanceof Exception) { - final Exception e = (Exception)_t; - InputOutput.println(((List)Conversions.doWrapArray(e.getStackTrace())).toString()); - } else { - throw Exceptions.sneakyThrow(_t); - } - } - } - - private CharSequence ocurrence_CreateDiagram(final ERModel modeloER) { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("Test"); - _builder.newLine(); - return _builder; - } -} diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/PlantUmlFileGenerator.java b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/PlantUmlFileGenerator.java index c9bf76c..1f35879 100644 --- a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/PlantUmlFileGenerator.java +++ b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/PlantUmlFileGenerator.java @@ -41,13 +41,10 @@ public void doGenerate(final Resource input, final IFileSystemAccess2 fsa, final byte[] _byteArray = out.toByteArray(); ByteArrayInputStream _byteArrayInputStream = new ByteArrayInputStream(_byteArray); ((IFileSystemAccessExtension3) fsa).generateFile(_plus, _byteArrayInputStream); + } else { String _lowerCase_1 = modeloER.getDomain().getName().toLowerCase(); - String _plus_1 = (_lowerCase_1 + "_DiagramDesc_Gen.puml"); + String _plus_1 = (_lowerCase_1 + "_DiagramDesc_PartialGen.puml"); fsa.generateFile(_plus_1, plantUML); - } else { - String _lowerCase_2 = modeloER.getDomain().getName().toLowerCase(); - String _plus_2 = (_lowerCase_2 + "_DiagramDesc_PartialGen.puml"); - fsa.generateFile(_plus_2, plantUML); } } } @@ -79,7 +76,7 @@ private CharSequence _plotToPlantUML(final ERModel it) { _builder.newLine(); _builder.append("\' skinparam titleBorderColor red"); _builder.newLine(); - _builder.append("scale 1.0"); + _builder.append("scale 1.5"); _builder.newLine(); _builder.append("\' skinparam monochrome true"); _builder.newLine(); diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/scoping/.ErDslScopeProvider.xtendbin b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/scoping/.ErDslScopeProvider.xtendbin index 9039188c55dcea8cc76d4235ab9812417009d1b5..c9c80954d7f5246569f4d2ad8ff20e2b0f5839bd 100644 GIT binary patch delta 58 zcmbOwK1-Y@z?+#xgn@&DgW<>KjXXP9nSN~Ee4N#r8AOY49%BU3lkad@fG9C;2M`s( G?F0ZalNAL3 delta 58 zcmbOwK1-Y@z?+#xgn@&DgCTA0MxLFlOlfO3A7}Mu2GJs%#~6Y1