ontomde-java 2.0.0 → 2.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +11 -0
- data/Manifest.txt +1 -51
- data/lib/ontomde-java.rb +2 -0
- data/lib/ontomde-java/crank.rb +8 -8
- data/lib/ontomde-java/crank/crankJpa.rb +58 -8
- data/lib/ontomde-java/crank/main.rb +38 -21
- data/lib/ontomde-java/frontend/command.rb +7 -7
- data/lib/ontomde-java/frontend/command.rdoc +0 -583
- data/lib/ontomde-java/frontend/defaultOptions.rb +12 -7
- data/lib/ontomde-java/frontend/options.rb +19 -2
- data/lib/ontomde-java/frontend/steps.rb +36 -5
- data/lib/ontomde-java/java/accessorCode.rb +250 -94
- data/lib/ontomde-java/java/accessorSignature.rb +50 -4
- data/lib/ontomde-java/java/annotationOntoMDE.rb +38 -27
- data/lib/ontomde-java/java/component.rb +141 -68
- data/lib/ontomde-java/java/enumAssignable.rb +46 -5
- data/lib/ontomde-java/java/java.rb +111 -40
- data/lib/ontomde-java/java/javaDatatypeMapping.rb +35 -1
- data/lib/ontomde-java/java/javadoc.rb +35 -22
- data/lib/ontomde-java/java/operationAsClass.rb +13 -0
- data/lib/ontomde-java/java/security.rb +10 -2
- data/lib/ontomde-java/java/stateMachine.rb +137 -74
- data/lib/ontomde-java/java/tenant.rb +1 -0
- data/lib/ontomde-java/java/xsd.rb +1 -1
- data/lib/ontomde-java/jpa/configuration.rb +25 -1
- data/lib/ontomde-java/jpa/finder.rb +48 -13
- data/lib/ontomde-java/jpa/jpa.rb +30 -14
- data/lib/ontomde-java/jpa/mapping.rb +114 -60
- data/lib/ontomde-java/jpa/redefined.rb +21 -5
- data/lib/ontomde-java/jpa/simulationAutoImplement.rb +1 -1
- data/lib/ontomde-java/jpdl/processOperationToClass.rb +1 -2
- data/lib/ontomde-java/kbjava/rdfToJava.rb +25 -16
- data/lib/ontomde-java/struts.rb +1 -1
- data/lib/ontomde-java/struts/MessageResources.rb +15 -6
- data/lib/ontomde-java/struts/action.rb +37 -13
- data/lib/ontomde-java/struts/form.rb +97 -7
- data/lib/ontomde-java/struts/header.rb +7 -3
- data/lib/ontomde-java/struts/jsp_edit.rb +54 -24
- data/lib/ontomde-java/struts/jsp_edit_js.rb +1 -1
- data/lib/ontomde-java/struts/jsp_index.rb +6 -4
- data/lib/ontomde-java/struts/mappingForJsp.rb +11 -7
- data/lib/ontomde-java/struts/mappingToJavaHierarchy.rb +16 -2
- data/lib/ontomde-java/version.rb +1 -1
- data/lib/ontomde-java/vmware/vso.rb +329 -0
- data/test/test_export_ea7_1_829.rb +5 -0
- data/test/test_export_ea7_1_833.rb +5 -0
- data/test/test_export_ea7_5_843.rb +5 -0
- data/test/test_export_magicDraw.rb +4 -0
- data/test/test_export_oe530.rb +1 -1
- data/test/test_export_oe600.rb +1 -1
- data/test/test_export_rsm60.rb +1 -1
- data/test/{uml_test.rb → test_export_unitTests.rb} +6 -1
- metadata +9 -56
- data/generateRdocFile.sh +0 -16
- data/profiling.xls +0 -0
- data/test/.classpath +0 -14
- data/test/.project +0 -17
- data/test/.settings/org.eclipse.jdt.core.prefs +0 -23
- data/test/Rakefile +0 -71
- data/test/build.xml +0 -34
- data/test/classpath.rb +0 -15
- data/test/lib/junit-4.1.jar +0 -0
- data/test/load1.rb +0 -3
- data/test/load2.rb +0 -3
- data/test/log4j.properties +0 -46
- data/test/model/.project +0 -11
- data/test/model/BigProject.mdzip +0 -0
- data/test/model/BigProject.mdzip.nt +0 -102866
- data/test/model/ClassDiagram.EntArch.gif +0 -0
- data/test/model/ClassDiagram.emx.gif +0 -0
- data/test/model/ClassDiagram.mdzip.gif +0 -0
- data/test/model/model_ea71.bis.ea.xmi +0 -149
- data/test/model/model_ea71.ea.xmi +0 -4470
- data/test/model/model_ea71.eap +0 -0
- data/test/model/model_ea71_README.txt +0 -8
- data/test/model/multipleInheritance.emx +0 -466
- data/test/model/multipleInheritance.emx.nt +0 -2428
- data/test/model/simple1-530.ofp +0 -0
- data/test/model/simple1-includedAsReference.emx +0 -169
- data/test/model/simple1.emx +0 -3729
- data/test/model/simple1.emx.fragments.nt +0 -81
- data/test/model/simple1.emx.nt +0 -5760
- data/test/model/simple1.mdzip +0 -0
- data/test/model/simple1.mdzip.nt +0 -11500
- data/test/model/simple1.oe530.nt +0 -1986
- data/test/model/simple1.oe600.nt +0 -1627
- data/test/src/RuntimeTest.java +0 -656
- data/test/src/testsLevel1.java +0 -174
- data/test/src/testsLevel2.java +0 -29
- data/test/src/testsLevel3.java +0 -40
- data/test/test-ea7.sh +0 -15
- data/test/test-magicDraw.sh +0 -10
- data/test/test-mi.sh +0 -9
- data/test/test-oe530.sh +0 -10
- data/test/test-oe600.sh +0 -11
- data/test/test-rsm.sh +0 -11
- data/test/test_export_ea71.rb +0 -5
- data/test/trace +0 -419
- data/test/uml_test.xls +0 -0
- data/test/unit_test.rb +0 -6
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
|
|
2
2
|
module Mrdf_Repository
|
|
3
|
-
def struts_header_generate
|
|
3
|
+
def struts_header_generate(element=nil)
|
|
4
4
|
write <<END
|
|
5
5
|
<%-- ******** ENTETE ****************** --%>
|
|
6
6
|
<div class="cadre">
|
|
7
7
|
<div class="AgLeft">
|
|
8
|
-
<a href="
|
|
8
|
+
<a href="http://ontomde.rubyforge.org/">
|
|
9
9
|
<img src="#{css_path_model}/#{css_color_class}/image/logoMDE.gif" border="0" alt="Home"/>
|
|
10
10
|
</a>
|
|
11
11
|
</div>
|
|
@@ -22,6 +22,10 @@ module Mrdf_Repository
|
|
|
22
22
|
<a href="#">
|
|
23
23
|
<img src="#{css_path_model}/#{css_color_class}/image/btnHelp.gif" width="25" height="25" border="0" alt="Help"/>
|
|
24
24
|
</a>
|
|
25
|
+
|
|
26
|
+
#{(element.nil? || context[:rsm6WebDocURI].empty?) ? "" :
|
|
27
|
+
%{<a target="rsm6doc" href="#{context[:rsm6WebDocURI]}/content/#{UriNamespace.instance.unalias(element.umlx_owner_one.rdf_uri).gsub(/http:\/\/kb#/,"")}-content.html"><img src="#{css_path_model}/#{css_color_class}/image/rsm6.gif" width="25" height="25" border="0" alt="Help"/></a>}
|
|
28
|
+
}
|
|
25
29
|
</div>
|
|
26
30
|
</div>
|
|
27
31
|
<%-- ******** USER CONTEXT ************* --%>
|
|
@@ -31,7 +35,7 @@ end
|
|
|
31
35
|
|
|
32
36
|
module Muml_Class
|
|
33
37
|
def struts_header_generate
|
|
34
|
-
self.rdf_Repository.struts_header_generate;
|
|
38
|
+
self.rdf_Repository.struts_header_generate(self);
|
|
35
39
|
return
|
|
36
40
|
end
|
|
37
41
|
end
|
|
@@ -16,6 +16,14 @@
|
|
|
16
16
|
# SPS (String Property Single)
|
|
17
17
|
# TPS (Timestamp Property Single)
|
|
18
18
|
|
|
19
|
+
module Muml_Operation
|
|
20
|
+
# add _js to prevent javascript reserved name clash.
|
|
21
|
+
# example: "delete"
|
|
22
|
+
def js_Name
|
|
23
|
+
return "#{java_Name}_js"
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
19
27
|
module Mrdf_Repository
|
|
20
28
|
def struts_encloseWrite(before,after,&block)
|
|
21
29
|
write(before)
|
|
@@ -143,6 +151,7 @@ module Muml_Class
|
|
|
143
151
|
write("<%-- TPL:2 BEGIN --%>\n<tr>")
|
|
144
152
|
struts_formAttribute.each { |a|
|
|
145
153
|
next if a.uml_name_one=="id"
|
|
154
|
+
next if a.uml_name_one=="isLogicallyDeleted"
|
|
146
155
|
write("<%-- UML PROPERTY: #{a.uml_name}--%>\n")
|
|
147
156
|
write("<td>");
|
|
148
157
|
write("</td>");
|
|
@@ -277,7 +286,7 @@ end
|
|
|
277
286
|
def struts_jsp_writeTabBar
|
|
278
287
|
return if struts_ownedTab.size <= 1
|
|
279
288
|
write %{<div class="menu" id="menuDivId">\n}
|
|
280
|
-
cmpt =1;
|
|
289
|
+
#cmpt =1;
|
|
281
290
|
onglet_actif=context[:struts_tab]
|
|
282
291
|
struts_ownedTab.each { |tab|
|
|
283
292
|
id=tab.java_Name
|
|
@@ -291,17 +300,17 @@ def struts_jsp_writeTabBar
|
|
|
291
300
|
\n}
|
|
292
301
|
|
|
293
302
|
else
|
|
294
|
-
if cmpt==1
|
|
295
|
-
write %{\n<div class="menuOptn" id="menuOptDivId#{id}" style="display:none;">
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
else
|
|
303
|
+
# if cmpt==1
|
|
304
|
+
# write %{\n<div class="menuOptn" id="menuOptDivId#{id}" style="display:none;">
|
|
305
|
+
#<div class="menuLink"><html:link onclick="#{STRUTS_REFRESH_ACTION}('#{id}');return false;" page="">#{struts_writeMsg(label)}</html:link></div>
|
|
306
|
+
#</div>}
|
|
307
|
+
# else
|
|
299
308
|
write %{\n<div class="menuOptn" id="menuOptDivId#{id}">
|
|
300
309
|
<div class="menuLink"><html:link onclick="#{STRUTS_REFRESH_ACTION}('#{id}');return false;" page="">#{struts_writeMsg(label)}</html:link></div>
|
|
301
310
|
</div>}
|
|
302
|
-
end
|
|
303
|
-
|
|
304
|
-
cmpt=cmpt+1;
|
|
311
|
+
# end
|
|
312
|
+
#
|
|
313
|
+
# cmpt=cmpt+1;
|
|
305
314
|
end
|
|
306
315
|
}
|
|
307
316
|
write %{</div>\n}
|
|
@@ -447,10 +456,10 @@ def struts_jspEdit_write_Operation
|
|
|
447
456
|
# </a>
|
|
448
457
|
# }
|
|
449
458
|
if context[:statemachine] && biz.java_isFsmOperation
|
|
450
|
-
write(%{<xmdafsm:FsmZoneTag methodName="#{biz.java_Name}" state="$\{#{self.struts_actionForm_one.java_Name}.persistedState\}">\n})
|
|
459
|
+
write(%{<xmdafsm:FsmZoneTag methodName="#{biz.java_Name}" state="$\{#{self.struts_actionForm_one.java_Name}.reference.persistedState\}">\n})
|
|
451
460
|
end
|
|
452
461
|
write %{
|
|
453
|
-
<html:submit styleClass="boutonForm" onclick="#{biz.
|
|
462
|
+
<html:submit styleClass="boutonForm" onclick="#{biz.js_Name}();return false;">#{struts_writeMsg("#{biz.umlx_owner_one.java_qualifiedName}.#{biz.java_Name}")}</html:submit>
|
|
454
463
|
}
|
|
455
464
|
if context[:statemachine] && biz.java_isFsmOperation
|
|
456
465
|
write(%{</xmdafsm:FsmZoneTag>\n})
|
|
@@ -464,6 +473,7 @@ end
|
|
|
464
473
|
def struts_edit_writeFields
|
|
465
474
|
context[:struts_tab].struts_ownedAttribute.each { |a|
|
|
466
475
|
next if a.uml_name_one=="id"
|
|
476
|
+
next if a.uml_name_one=="isLogicallyDeleted"
|
|
467
477
|
a.struts_edit_writeFieldProp(self)
|
|
468
478
|
}
|
|
469
479
|
end
|
|
@@ -513,20 +523,28 @@ def struts_edit_writeFieldMany(field,owner)
|
|
|
513
523
|
struts_edit_writeSelectAndAdd(field,owner)
|
|
514
524
|
end
|
|
515
525
|
|
|
516
|
-
|
|
517
|
-
#use every property stereotpyed Label.
|
|
518
|
-
#if none found, use every field
|
|
519
|
-
def struts_editWriteSelectAndAddLabel(field,elt,withLabelOnly=true)
|
|
526
|
+
def struts_eachLabelField(field,withLabelOnly=true,&block)
|
|
520
527
|
emptySelection=true
|
|
521
528
|
field.uml_type_one.struts_formAttribute.each { |a|
|
|
522
529
|
#next if a.uml_name_one=="id"
|
|
523
530
|
next if a.uml_name_one=="owner"
|
|
531
|
+
next if a.uml_name_one=="isLogicallyDeleted"
|
|
524
532
|
next if a.uml_type_one.kind_of?(Muml_Class)
|
|
525
533
|
next if withLabelOnly && !(a.umlx_hasStereotype?("label"))
|
|
534
|
+
next if a.umlx_hasStereotype?("noLabel")
|
|
526
535
|
emptySelection=false
|
|
527
|
-
|
|
536
|
+
yield(a)
|
|
528
537
|
}
|
|
529
|
-
|
|
538
|
+
struts_eachLabelField(field,false) { |a| yield(a) } if emptySelection && withLabelOnly
|
|
539
|
+
end
|
|
540
|
+
|
|
541
|
+
#add label
|
|
542
|
+
#use every property stereotpyed Label.
|
|
543
|
+
#if none found, use every field
|
|
544
|
+
def struts_editWriteSelectAndAddLabel(field,elt,withLabelOnly=true)
|
|
545
|
+
struts_eachLabelField(field,withLabelOnly) { |a|
|
|
546
|
+
write %{<bean:write name="#{elt}" property="#{a.java_Name}"/>, }
|
|
547
|
+
}
|
|
530
548
|
end
|
|
531
549
|
|
|
532
550
|
def struts_edit_writeSelectAndAdd(field,owner)
|
|
@@ -552,12 +570,18 @@ end
|
|
|
552
570
|
|
|
553
571
|
def struts_edit_writeFieldGenericIsCompo(field,owner,isMany,isCompo)
|
|
554
572
|
return unless isCompo
|
|
555
|
-
before=
|
|
556
|
-
after=
|
|
573
|
+
before=''
|
|
574
|
+
after=''
|
|
575
|
+
beforeIsEmpty=''
|
|
576
|
+
afterIsEmpty=''
|
|
577
|
+
b=%{<logic:empty name="#{owner.java_Name}StrutsForm" property="reference.#{field.java_Name}">\n}
|
|
578
|
+
a=%{</logic:empty>\n}
|
|
557
579
|
if !isMany
|
|
558
580
|
# only display creater if adding one more is ok.
|
|
559
|
-
before
|
|
560
|
-
|
|
581
|
+
before,after=b,a
|
|
582
|
+
else
|
|
583
|
+
# display no element to display, only when collection is empty
|
|
584
|
+
beforeIsEmpty,afterIsEmpty=b,a
|
|
561
585
|
end
|
|
562
586
|
|
|
563
587
|
struts_encloseWrite( before,after) {
|
|
@@ -606,7 +630,8 @@ def struts_edit_writeFieldGenericIsCompo(field,owner,isMany,isCompo)
|
|
|
606
630
|
<div style="color:#FF5400;background-color:#FAFCEB;" id='add#{field.java_NameBean}'>
|
|
607
631
|
<a onClick="javascript:hide_sel('#{field.java_Name}_createAndAdd');document.getElementById('Popup#{field.java_NameBean}').style.display='block';document.getElementById('add#{field.java_NameBean}').style.display='none';" >
|
|
608
632
|
<img src="res//orange/image/plus.gif" alt="Add" border="0" />
|
|
609
|
-
</a
|
|
633
|
+
</a>
|
|
634
|
+
#{beforeIsEmpty} <bean:message key="label.helper.none"/>#{afterIsEmpty}
|
|
610
635
|
</div>
|
|
611
636
|
|
|
612
637
|
END
|
|
@@ -653,6 +678,8 @@ def struts_edit_writeFieldGeneric_DisplayTable(field,owner,isMany,isCompo)
|
|
|
653
678
|
}
|
|
654
679
|
end
|
|
655
680
|
|
|
681
|
+
USE_PAGINATION=false
|
|
682
|
+
|
|
656
683
|
def struts_edit_writeFieldGeneric_DisplayTable_displayTag(field,owner,isMany,isCompo)
|
|
657
684
|
elt="elt_#{field.java_Name}"
|
|
658
685
|
struts_encloseWrite(%{
|
|
@@ -674,10 +701,13 @@ def struts_edit_writeFieldGeneric_DisplayTable_displayTag(field,owner,isMany,isC
|
|
|
674
701
|
</a>
|
|
675
702
|
</display:column>
|
|
676
703
|
},
|
|
677
|
-
%{</display:table>\n
|
|
704
|
+
%{</display:table>\n
|
|
705
|
+
#{%{<html:text property="#{field.java_Name}_strutsPage" size="40%" maxlength="2" />\n} if isMany && USE_PAGINATION}
|
|
706
|
+
</div>
|
|
678
707
|
|
|
679
708
|
}) {
|
|
680
|
-
field
|
|
709
|
+
struts_eachLabelField(field) { |a|
|
|
710
|
+
#field.uml_type_one.struts_formAttribute.each { |a|
|
|
681
711
|
next if a.uml_name_one=="id"
|
|
682
712
|
next if a.uml_name_one=="owner"
|
|
683
713
|
t=a.uml_type_one
|
|
@@ -24,8 +24,10 @@ module Mrdf_Repository
|
|
|
24
24
|
<title>Index -- Generated with XMDA</title>
|
|
25
25
|
</head>
|
|
26
26
|
#{%{
|
|
27
|
-
|
|
28
|
-
#{java_getTenantClass.java_qualifiedName} #{Muml_Classifier::
|
|
27
|
+
<%!
|
|
28
|
+
public #{java_getTenantClass.java_qualifiedName} get#{Muml_Classifier::TENANT_FIELD_BEAN_NAME}() {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
29
31
|
%>} if context[:multiTenant] }
|
|
30
32
|
|
|
31
33
|
<body >
|
|
@@ -75,12 +77,12 @@ END
|
|
|
75
77
|
pkg[p] << c
|
|
76
78
|
}
|
|
77
79
|
write %{<table border="1" style="border-style: ; border: gray; border-spacing:0px">}
|
|
78
|
-
write %{<tr bgcolor="#EEEEEE"
|
|
80
|
+
write %{<tr bgcolor="#EEEEEE"><td valign="center" width="10%"><a name="index"/><h3>Package index</h3></td><td><ul>}
|
|
79
81
|
pkg.keys.sort {|a,b| a.java_qualifiedName.to_s <=> b.java_qualifiedName.to_s }.each { |p|
|
|
80
82
|
write %{<li><a href="##{p.java_qualifiedName}">#{p.java_qualifiedName}</a></li> }
|
|
81
83
|
}
|
|
82
84
|
write "</ul></td></tr>"
|
|
83
|
-
pkg.keys.sort {|a,b| a.
|
|
85
|
+
pkg.keys.sort {|a,b| a.java_qualifiedName.to_s <=> b.java_qualifiedName.to_s }.each { |p|
|
|
84
86
|
write %{<tr><td valign="center"><h3><a name="#{p.java_qualifiedName}"/><a href="#index">#{p.java_qualifiedName.gsub(/\./," .")}</a></h3></td><td><ul>}
|
|
85
87
|
pkg[p].sort { |a,b| a.uml_name.to_s <=> b.uml_name.to_s }.each {|c|
|
|
86
88
|
write <<END
|
|
@@ -19,7 +19,11 @@ end
|
|
|
19
19
|
class DatatypeMappingText < DatatypeMapping
|
|
20
20
|
def getJSP(datatype,field,owner)
|
|
21
21
|
n=datatype.java_Name.downcase #TODO
|
|
22
|
-
|
|
22
|
+
if field.umlx_oneSide?
|
|
23
|
+
return %{<html:text property="#{field.java_Name}" size="40%" maxlength="#{self.maxStringLength}" styleId="#{n}" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>}
|
|
24
|
+
else
|
|
25
|
+
return %{<%-- one line per element in array --%><html:textarea cols="60" property="#{field.java_Name}" styleId="#{n}" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>}
|
|
26
|
+
end
|
|
23
27
|
end
|
|
24
28
|
end
|
|
25
29
|
|
|
@@ -27,7 +31,7 @@ class DatatypeMappingLargeText < DatatypeMappingText
|
|
|
27
31
|
def getJSP(datatype,field,owner)
|
|
28
32
|
n=datatype.java_Name.downcase #TODO
|
|
29
33
|
#maxlength not supported by textarea
|
|
30
|
-
return %{<html:textarea property="#{field.java_Name}" styleId="#{n}" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>}
|
|
34
|
+
return %{<html:textarea cols="60" property="#{field.java_Name}" styleId="#{n}" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>}
|
|
31
35
|
end
|
|
32
36
|
end
|
|
33
37
|
|
|
@@ -36,7 +40,7 @@ class DatatypeMappingURL < DatatypeMappingText
|
|
|
36
40
|
# cf: http://www.osix.net/modules/article/?id=586
|
|
37
41
|
n=datatype.java_Name.downcase #TODO
|
|
38
42
|
return <<END
|
|
39
|
-
<html:text property="#{field.java_Name}" size="
|
|
43
|
+
<html:text property="#{field.java_Name}" size="40%" maxlength="#{self.maxStringLength}" styleId="#{n}" #{::Muml_DataType::STRUTS_ERROR_STYLE} disabled="true"/>
|
|
40
44
|
|
|
41
45
|
<a onclick="javascript:document.getElementById('#{n}').disabled=false;document.getElementById('#{n}').value='';;">
|
|
42
46
|
<img src="res//orange/image/edit.gif" />
|
|
@@ -93,7 +97,7 @@ class DatatypeMappingTimeStamp < DatatypeMapping
|
|
|
93
97
|
return <<END
|
|
94
98
|
<xmda:dateText property="#{field.java_Name}" size="20%" maxlength="30" styleId="#{field.java_Name}Id" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>
|
|
95
99
|
<script type="text/javascript">
|
|
96
|
-
function
|
|
100
|
+
function formatDate_#{field.java_Name}(cal) {
|
|
97
101
|
var date = cal.date;
|
|
98
102
|
var field = document.getElementById("#{field.java_Name}");
|
|
99
103
|
var locale = document.getElementById("#{field.java_Name}Locale").value;
|
|
@@ -105,7 +109,7 @@ class DatatypeMappingTimeStamp < DatatypeMapping
|
|
|
105
109
|
localeField : "#{field.java_Name}Locale", //field containing locale (hidden)
|
|
106
110
|
showsTime : true,
|
|
107
111
|
timeFormat : "24",
|
|
108
|
-
onUpdate :
|
|
112
|
+
onUpdate : formatDate_#{field.java_Name}
|
|
109
113
|
\});
|
|
110
114
|
</script>
|
|
111
115
|
END
|
|
@@ -121,7 +125,7 @@ class DatatypeMappingCalendar < DatatypeMapping
|
|
|
121
125
|
return <<END
|
|
122
126
|
<xmda:dateText isCalendar="true" property="#{field.java_Name}" size="20%" maxlength="#{self.maxStringLength}" styleId="#{field.java_Name}Id" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>
|
|
123
127
|
<script type="text/javascript">
|
|
124
|
-
function
|
|
128
|
+
function formatDate_#{field.java_Name}(cal) {
|
|
125
129
|
var date = cal.date;
|
|
126
130
|
var field = document.getElementById("#{field.java_Name}");
|
|
127
131
|
var locale = document.getElementById("#{field.java_Name}Locale").value;
|
|
@@ -130,7 +134,7 @@ class DatatypeMappingCalendar < DatatypeMapping
|
|
|
130
134
|
Calendar.setup(\{
|
|
131
135
|
inputField : "#{field.java_Name}Id", // id of the input field
|
|
132
136
|
localeField : "#{field.java_Name}Locale", //field containing locale (hidden)
|
|
133
|
-
onUpdate :
|
|
137
|
+
onUpdate : formatDate_#{field.java_Name}
|
|
134
138
|
\});
|
|
135
139
|
</script>
|
|
136
140
|
END
|
|
@@ -50,6 +50,17 @@ public #{java_getType} parse(final String str,final #{java_getType} nullCast ) {
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
public String getValidationRegexp() {
|
|
54
|
+
#{if !respond_to?(:getValidationRegexp)
|
|
55
|
+
%{throw new java.lang.RuntimeException("Method not implemented");}
|
|
56
|
+
elsif getValidationRegexp.nil?
|
|
57
|
+
%{return null;}
|
|
58
|
+
else
|
|
59
|
+
%{return "#{getValidationRegexp.source.java_stringEscape}";}
|
|
60
|
+
end
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
53
64
|
public String toString(final #{java_getType} elt) {
|
|
54
65
|
#{if respond_to?(:java_getJavaToString)
|
|
55
66
|
"return #{java_getJavaToString("elt")};"
|
|
@@ -61,7 +72,6 @@ public String toString(final #{java_getType} elt) {
|
|
|
61
72
|
|
|
62
73
|
END
|
|
63
74
|
end
|
|
64
|
-
|
|
65
75
|
def java_helper_addMethods!(c)
|
|
66
76
|
return
|
|
67
77
|
m=c.umlx_createAndAddOperation(self.rdf_uri+"_parse","parse")
|
|
@@ -84,4 +94,8 @@ end
|
|
|
84
94
|
|
|
85
95
|
class DatatypeMapping
|
|
86
96
|
end
|
|
87
|
-
|
|
97
|
+
class String
|
|
98
|
+
def java_stringEscape
|
|
99
|
+
return self.gsub(/\\/,'\\\\\\\\')
|
|
100
|
+
end
|
|
101
|
+
end
|
data/lib/ontomde-java/version.rb
CHANGED
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
# vmware vso integration
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
module Mrdf_Repository
|
|
5
|
+
def vso_generateMapping
|
|
6
|
+
return if context[:vsoTargetFile,nil].nil?
|
|
7
|
+
mtk_context(:hideJavadocReverseTag => true,:reversedFiles=>[],:requireReverseExtensions=>[],:reverseGlobalMap=>{} ) {
|
|
8
|
+
mtk_writeSession(context[:vsoTargetFile]) {
|
|
9
|
+
vso_writeMapping
|
|
10
|
+
}}
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def vso_writeMapping(tab="")
|
|
14
|
+
tab2=tab.tab
|
|
15
|
+
before=<<END
|
|
16
|
+
#{tab}<module
|
|
17
|
+
#{tab2}xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
18
|
+
#{tab2}xsi:noNamespaceSchemaLocation="http://vs-o.dunes.ch/plugin-3-2.xsd"
|
|
19
|
+
#{tab2}name="#{context[:vsoPluginName,%{undefinedPluginName}]}"
|
|
20
|
+
#{tab2}version="#{context[:vsoPluginVersion,%{0000}]}"
|
|
21
|
+
#{tab2}build-number="#{Time.new().to_i() / 60 / 60}"
|
|
22
|
+
#{tab2}image="training-logo-32x32.png">
|
|
23
|
+
#{tab2}<description>#{context[:vsoPluginDescription,%{no description available}]}\n(generated by ontomde v.#{Ontomde::Java::VERSION})</description>
|
|
24
|
+
END
|
|
25
|
+
after=<<END
|
|
26
|
+
#{tab}</module>
|
|
27
|
+
#{tab}<!-- end of file -->
|
|
28
|
+
END
|
|
29
|
+
encloseWrite(before,after) {
|
|
30
|
+
vso_writeFinderDataSources(tab2)
|
|
31
|
+
vso_writeInventory(tab2)
|
|
32
|
+
vso_writeFinders(tab2)
|
|
33
|
+
vso_writeScriptingObjects(tab2)
|
|
34
|
+
vso_writeEnumerations(tab2)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def vso_writeFinderDataSources(tab)
|
|
40
|
+
before="#{tab}<finder-datasources>\n"
|
|
41
|
+
after="#{tab}</finder-datasources>\n"
|
|
42
|
+
tab2=tab.tab
|
|
43
|
+
found=encloseWrite(before,after,true) {
|
|
44
|
+
vso_scriptingObjects.each { |so|
|
|
45
|
+
next unless so.umlx_hasStereotype?('TFINDER')
|
|
46
|
+
write(%{#{tab2}<finder-datasource name="#{so.vso_DataSourceName}" adaptor-class="#{so.java_qualifiedName}" debug="true"/>\n})
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
write("<!-- WARNING: no finder-datasources found in model (ie: stereotype TFINDER) -->\n") unless found
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def vso_writeInventory(tab)
|
|
53
|
+
found=encloseWrite(%{#{tab}<inventory type="},%{"/>\n},true) {
|
|
54
|
+
vso_scriptingObjects.each { |so|
|
|
55
|
+
next unless so.umlx_hasStereotype?('TROOT')
|
|
56
|
+
write(so.java_Name)
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
write("<!-- WARNING: no inventory root found model (ie: stereotype TROOT) -->\n") unless found
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def vso_writeFinders(tab)
|
|
63
|
+
before="#{tab}<finders>\n"
|
|
64
|
+
after="#{tab}</finders>\n"
|
|
65
|
+
tab2=tab.tab
|
|
66
|
+
encloseWrite(before,after) {
|
|
67
|
+
vso_scriptingObjects.sort { |a,b| a.java_qualifiedName.to_s <=> b.java_qualifiedName.to_s }.each { |so|
|
|
68
|
+
so.vso_writeFinder(tab2)
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def vso_writeScriptingObjects(tab)
|
|
74
|
+
before="#{tab}<scripting-objects>\n"
|
|
75
|
+
after="#{tab}</scripting-objects>\n"
|
|
76
|
+
tab2=tab.tab
|
|
77
|
+
encloseWrite(before,after) {
|
|
78
|
+
vso_scriptingObjects.sort { |a,b| a.java_qualifiedName.to_s <=> b.java_qualifiedName.to_s }.each { |so|
|
|
79
|
+
so.vso_writeObjectMapping(tab2)
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def vso_writeEnumerations(tab)
|
|
85
|
+
tab2=tab.tab
|
|
86
|
+
before="#{tab}<enumerations>\n"
|
|
87
|
+
after="#{tab}</enumerations>\n"
|
|
88
|
+
encloseWrite(before,after) {
|
|
89
|
+
write("#{tab2}<!-- dynamic enumeration(s) section -->\n")
|
|
90
|
+
write("#{tab2}<!-- static enumeration(s) section -->\n")
|
|
91
|
+
vso_enumerations.each { |so|
|
|
92
|
+
so.vso_writeEnumerationMapping(tab2)
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
#return a set of scripting objects
|
|
98
|
+
def vso_scriptingObjects
|
|
99
|
+
ret=Set.new
|
|
100
|
+
uml_Class_all.each { |c|
|
|
101
|
+
next unless c.kind_of?(Muml_Class)
|
|
102
|
+
next if c.kind_of?(Muml_DataType)
|
|
103
|
+
#next unless
|
|
104
|
+
ret.add(c)
|
|
105
|
+
}
|
|
106
|
+
return ret
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
#
|
|
110
|
+
def vso_enumerations
|
|
111
|
+
ret=Set.new
|
|
112
|
+
uml_Class_all.each { |c|
|
|
113
|
+
# inner enumeration ??
|
|
114
|
+
if c.kind_of?(Muml_Enumeration)
|
|
115
|
+
ret.add(c)
|
|
116
|
+
elsif c.kind_of?(Muml_Class)
|
|
117
|
+
c.uml_nestedClassifier.each { |c2|
|
|
118
|
+
if c2.kind_of?(Muml_Enumeration)
|
|
119
|
+
ret.add(c2)
|
|
120
|
+
end
|
|
121
|
+
}
|
|
122
|
+
end
|
|
123
|
+
#next unless
|
|
124
|
+
}
|
|
125
|
+
return ret
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
end
|
|
129
|
+
module Muml_Element
|
|
130
|
+
def vso_writeJavadoc(tab)
|
|
131
|
+
m=mtk_stss { java_writeJavadoc }
|
|
132
|
+
|
|
133
|
+
uml_raisedException.each { |exception|
|
|
134
|
+
m=m+"\nthrows:#{exception.java_qualifiedName}"
|
|
135
|
+
} if respond_to?(:uml_raisedException)
|
|
136
|
+
|
|
137
|
+
if (!m.nil? && !m.empty?)
|
|
138
|
+
m=m.gsub(/[ \t]*@.*$/,'').gsub(/^[\t *\/]*/,'').gsub(/\n\n*/,"\n").strip
|
|
139
|
+
end
|
|
140
|
+
if m.nil? || m.empty? || m=="\n"
|
|
141
|
+
write "#{tab}<description/>\n"
|
|
142
|
+
else
|
|
143
|
+
write "#{tab}<description>#{m}</description>\n"
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
def vso_writeObject(tab,params,&block)
|
|
147
|
+
write(%{#{tab}<object script-name="#{java_Name}" java-class="#{java_qualifiedName}"#{" " unless params.empty?}#{params}#{%{ create="false"} if uml_isAbstract?}>\n})
|
|
148
|
+
tab2=tab.tab
|
|
149
|
+
vso_writeJavadoc(tab2)
|
|
150
|
+
yield(tab2)
|
|
151
|
+
write(%{#{tab}</object>\n})
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
module Muml_Class
|
|
155
|
+
def vso_ownedOperation
|
|
156
|
+
s=Set.new
|
|
157
|
+
umlx_ownedOperationHierarchical.each { |op|
|
|
158
|
+
s.add(op)
|
|
159
|
+
}
|
|
160
|
+
return s
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
def vso_ownedAttribute
|
|
164
|
+
s=Set.new
|
|
165
|
+
umlx_ownedAttributeHierarchical.each { |op|
|
|
166
|
+
s.add(op)
|
|
167
|
+
}
|
|
168
|
+
return s
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
def vso_writeObjectMapping(tab)
|
|
172
|
+
vso_writeObject(tab,"") { |tab2|
|
|
173
|
+
vso_writeConstructors(tab2)
|
|
174
|
+
vso_writeMethods(tab2)
|
|
175
|
+
}
|
|
176
|
+
end
|
|
177
|
+
def vso_writeConstructors(tab)
|
|
178
|
+
found=false
|
|
179
|
+
java_ownedOperation.sort { |a,b| a.java_qualifiedName.to_s <=> b.java_qualifiedName.to_s }.each { |o|
|
|
180
|
+
next unless o.umlx_isConstructor?
|
|
181
|
+
found=true
|
|
182
|
+
}
|
|
183
|
+
return unless found
|
|
184
|
+
tab2=tab.tab
|
|
185
|
+
tab3=tab2.tab
|
|
186
|
+
before="#{tab}<constructors>\n"
|
|
187
|
+
after="#{tab}</constructors>\n"
|
|
188
|
+
encloseWrite(before,after) {
|
|
189
|
+
java_ownedOperation.sort { |a,b| a.java_qualifiedName.to_s <=> b.java_qualifiedName.to_s }.each { |o|
|
|
190
|
+
next unless o.umlx_isConstructor?
|
|
191
|
+
encloseWrite("#{tab2}<constructor>\n","#{tab2}</constructor>\n") {
|
|
192
|
+
o.vso_writeJavadoc(tab3)
|
|
193
|
+
o.vso_writeOperationParameters(tab3)
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
end
|
|
198
|
+
def vso_writeMethods(tab)
|
|
199
|
+
tab2=tab.tab
|
|
200
|
+
before="#{tab}<methods>\n"
|
|
201
|
+
after="#{tab}</methods>\n"
|
|
202
|
+
encloseWrite(before,after) {
|
|
203
|
+
java_ownedOperation.sort { |a,b| a.java_qualifiedName.to_s <=> b.java_qualifiedName.to_s }.each { |o|
|
|
204
|
+
next if o.umlx_isConstructor?
|
|
205
|
+
o.java_writeOperationMapping(tab2)
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
end
|
|
209
|
+
def vso_writeFinder(tab)
|
|
210
|
+
tab2=tab.tab
|
|
211
|
+
isInventoryRoot=umlx_hasStereotype?('TROOT')
|
|
212
|
+
before=%{#{tab}<finder type="#{java_Name}" image="images/#{java_Name}.png" datasource="#{vso_DataSourceName}" script-object="#{java_Name}" hidden="#{isInventoryRoot ? 'true' : 'false'}">\n}
|
|
213
|
+
after="#{tab}</finder>\n"
|
|
214
|
+
encloseWrite(before,after) {
|
|
215
|
+
write(%{#{tab2}<id accessor="getId()"/>\n}) unless isInventoryRoot
|
|
216
|
+
vso_writeFinderInventoryChildren(tab2)
|
|
217
|
+
vso_writeFinderRelations(tab2)
|
|
218
|
+
vso_writeFinderProperties(tab2)
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
end
|
|
222
|
+
def vso_writeFinderInventoryChildren(tab)
|
|
223
|
+
tab2=tab.tab
|
|
224
|
+
before=%{#{tab}<inventory-children>\n}
|
|
225
|
+
after=%{#{tab}</inventory-children>\n}
|
|
226
|
+
encloseWrite(before,after,true) {
|
|
227
|
+
vso_ownedAttribute.each {|p|
|
|
228
|
+
next unless p.umlx_hasStereotype?("TCHILD")
|
|
229
|
+
write(%{#{tab2}<relation-link name="#{p.java_Name}"/>\n})
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
end
|
|
233
|
+
def vso_writeFinderRelations(tab)
|
|
234
|
+
tab2=tab.tab
|
|
235
|
+
before=%{#{tab}<relations>\n}
|
|
236
|
+
after=%{#{tab}</relations>\n}
|
|
237
|
+
encloseWrite(before,after,true) {
|
|
238
|
+
vso_ownedAttribute.each {|p|
|
|
239
|
+
next unless p.umlx_hasStereotype?("TCHILD")
|
|
240
|
+
write(%{#{tab2}<relation name="#{p.java_Name}" type="#{p.uml_type_one.java_Name}"/>\n})
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
end
|
|
244
|
+
def vso_writeFinderProperties(tab)
|
|
245
|
+
tab2=tab.tab
|
|
246
|
+
before=%{#{tab}<properties>\n}
|
|
247
|
+
after=%{#{tab}</properties>\n}
|
|
248
|
+
encloseWrite(before,after,true) {
|
|
249
|
+
vso_ownedAttribute.each {|p|
|
|
250
|
+
next unless p.umlx_hasStereotype?("TLABEL")
|
|
251
|
+
write(%{#{tab2}<property name="#{p.java_Name}" display-name="#{p.uml_name}" bean-property="#{p.java_Name}"/>\n})
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
end
|
|
255
|
+
def vso_DataSourceName
|
|
256
|
+
return "DS-DRASS"
|
|
257
|
+
end
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
module Muml_TypedElement
|
|
261
|
+
def vso_TypeName
|
|
262
|
+
return %{#{"[" unless self.umlx_upperValueIsOne?}#{self.uml_type_one.java_Name}}
|
|
263
|
+
end
|
|
264
|
+
end
|
|
265
|
+
|
|
266
|
+
module Muml_Operation
|
|
267
|
+
def java_writeOperationMapping(tab)
|
|
268
|
+
tab2=tab.tab
|
|
269
|
+
params=""
|
|
270
|
+
rt=umlx_returnResult_one0
|
|
271
|
+
params=%{return-type="#{rt.vso_TypeName}"} unless rt.nil?
|
|
272
|
+
before=%{#{tab}<method script-name="#{java_Name}" java-name="#{java_Name}"#{" " unless params.empty?}#{params}#{%{ static="true"} if uml_isStatic?}>\n}
|
|
273
|
+
after=%{#{tab}</method>\n}
|
|
274
|
+
encloseWrite(before,after) {
|
|
275
|
+
vso_writeJavadoc(tab2)
|
|
276
|
+
vso_writeOperationParameters(tab2)
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
end
|
|
280
|
+
def vso_writeOperationParameters(tab)
|
|
281
|
+
tab2=tab.tab
|
|
282
|
+
before="#{tab}<parameters>\n"
|
|
283
|
+
after="#{tab}</parameters>\n"
|
|
284
|
+
notEmpty=encloseWrite(before,after,true) {
|
|
285
|
+
uml_ownedParameter.each { |p|
|
|
286
|
+
next if p.uml_direction_one.isReturn?
|
|
287
|
+
#array
|
|
288
|
+
write(%{#{tab2}<parameter type="#{p.vso_TypeName}" name="#{p.java_Name}"/>\n})
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
write("#{tab}<parameters/>\n") unless notEmpty
|
|
292
|
+
end
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
module Muml_Interface
|
|
296
|
+
def vso_writeObjectMapping(tab2)
|
|
297
|
+
vso_writeObject(tab,"") { |tab2|
|
|
298
|
+
vso_writeConstructors(tab2)
|
|
299
|
+
vso_writeMethods(tab2)
|
|
300
|
+
}
|
|
301
|
+
end
|
|
302
|
+
end
|
|
303
|
+
class String
|
|
304
|
+
def tab
|
|
305
|
+
return self+' '
|
|
306
|
+
end
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
module Muml_Enumeration
|
|
310
|
+
def vso_writeEnumerationMapping(tab)
|
|
311
|
+
tab2=tab.tab
|
|
312
|
+
tab3=tab2.tab
|
|
313
|
+
encloseWrite(
|
|
314
|
+
%{#{tab}<enumeration type="#{self.java_qualifiedName}">\n},
|
|
315
|
+
%{#{tab}</enumeration>\n}) {
|
|
316
|
+
|
|
317
|
+
vso_writeJavadoc(tab2)
|
|
318
|
+
#write(%#{tab2}<url></url>\n})
|
|
319
|
+
encloseWrite(%{#{tab2}<entries>\n},%{#{tab2}</entries>\n}) {
|
|
320
|
+
i=0
|
|
321
|
+
java_ownedLiteral.each {|e|
|
|
322
|
+
i=i+1
|
|
323
|
+
write(%{#{tab3}<entry id="#{i}" name="#{e.java_Name}"/>\n})
|
|
324
|
+
#TODO: comment ?
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
end
|
|
329
|
+
end
|