ontomde-java 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +10 -0
- data/Manifest.txt +156 -0
- data/README.txt +98 -0
- data/Rakefile +21 -0
- data/bin/ontomde-java +5 -0
- data/generateRdocFile.sh +16 -0
- data/lib/ontomde-java.rb +45 -0
- data/lib/ontomde-java/crank.rb +13 -0
- data/lib/ontomde-java/crank/context.rb +384 -0
- data/lib/ontomde-java/crank/crankJpa.rb +103 -0
- data/lib/ontomde-java/crank/equals.rb +83 -0
- data/lib/ontomde-java/crank/facelets.rb +243 -0
- data/lib/ontomde-java/crank/facesconfig.rb +113 -0
- data/lib/ontomde-java/crank/helper.rb +46 -0
- data/lib/ontomde-java/crank/main.rb +51 -0
- data/lib/ontomde-java/crank/menu.rb +39 -0
- data/lib/ontomde-java/crank/menu2.rb +78 -0
- data/lib/ontomde-java/crank/validation.rb +34 -0
- data/lib/ontomde-java/ejb2.rb +3 -0
- data/lib/ontomde-java/ejb2/main-ejb2.rb +194 -0
- data/lib/ontomde-java/flex.rb +7 -0
- data/lib/ontomde-java/flex/Editor.mxml.as.rb +184 -0
- data/lib/ontomde-java/flex/Editor.mxml.rb +701 -0
- data/lib/ontomde-java/flex/ImportationAS.rb +40 -0
- data/lib/ontomde-java/flex/ValueObjectAS.rb +338 -0
- data/lib/ontomde-java/flex/fileTypes.rb +19 -0
- data/lib/ontomde-java/flex/main.rb +347 -0
- data/lib/ontomde-java/frontend/command.rb +324 -0
- data/lib/ontomde-java/frontend/command.rdoc +583 -0
- data/lib/ontomde-java/frontend/defaultOptions.rb +124 -0
- data/lib/ontomde-java/frontend/options.rb +555 -0
- data/lib/ontomde-java/frontend/steps.rb +287 -0
- data/lib/ontomde-java/java/accessorCode.rb +528 -0
- data/lib/ontomde-java/java/accessorSignature.rb +347 -0
- data/lib/ontomde-java/java/annotationOntoMDE.rb +88 -0
- data/lib/ontomde-java/java/apache.rb +34 -0
- data/lib/ontomde-java/java/build.rb +80 -0
- data/lib/ontomde-java/java/collectionMapping.rb +112 -0
- data/lib/ontomde-java/java/component.rb +446 -0
- data/lib/ontomde-java/java/contextualize.rb +43 -0
- data/lib/ontomde-java/java/enumAssignable.rb +75 -0
- data/lib/ontomde-java/java/enumCompatibilityLayer.rb +195 -0
- data/lib/ontomde-java/java/equals.rb +91 -0
- data/lib/ontomde-java/java/groovy.rb +95 -0
- data/lib/ontomde-java/java/java.rb +1329 -0
- data/lib/ontomde-java/java/java.rdoc +78 -0
- data/lib/ontomde-java/java/javaDatatypeMapping.rb +156 -0
- data/lib/ontomde-java/java/javaHelper.rb +25 -0
- data/lib/ontomde-java/java/java_todo.rdoc +3 -0
- data/lib/ontomde-java/java/javadoc.rb +254 -0
- data/lib/ontomde-java/java/meta.rb +28 -0
- data/lib/ontomde-java/java/operationAsClass.rb +144 -0
- data/lib/ontomde-java/java/security.rb +260 -0
- data/lib/ontomde-java/java/stateMachine.rb +415 -0
- data/lib/ontomde-java/java/tenant.rb +65 -0
- data/lib/ontomde-java/java/xsd.rb +1363 -0
- data/lib/ontomde-java/java/xsdCollectionMapping.rb +112 -0
- data/lib/ontomde-java/java/xsdDatatypeMapping.rb +103 -0
- data/lib/ontomde-java/jpa.rb +17 -0
- data/lib/ontomde-java/jpa/configuration.rb +176 -0
- data/lib/ontomde-java/jpa/finder.rb +102 -0
- data/lib/ontomde-java/jpa/jpa.rb +531 -0
- data/lib/ontomde-java/jpa/jpa.rdoc +20 -0
- data/lib/ontomde-java/jpa/locking.rb +18 -0
- data/lib/ontomde-java/jpa/mapping.rb +314 -0
- data/lib/ontomde-java/jpa/redefined.rb +77 -0
- data/lib/ontomde-java/jpa/simulationAutoImplement.rb +54 -0
- data/lib/ontomde-java/jpdl.rb +9 -0
- data/lib/ontomde-java/jpdl/bpm.pprj +1745 -0
- data/lib/ontomde-java/jpdl/bpm.rdf +140 -0
- data/lib/ontomde-java/jpdl/bpm.rdfs +231 -0
- data/lib/ontomde-java/jpdl/constant.rb +5 -0
- data/lib/ontomde-java/jpdl/graphic.rb +52 -0
- data/lib/ontomde-java/jpdl/jpdl.rb +281 -0
- data/lib/ontomde-java/jpdl/jpdl_deploy.rb +114 -0
- data/lib/ontomde-java/jpdl/main.rb +348 -0
- data/lib/ontomde-java/jpdl/main.rdoc +2 -0
- data/lib/ontomde-java/jpdl/processOperationToClass.rb +316 -0
- data/lib/ontomde-java/kbjava.rb +6 -0
- data/lib/ontomde-java/kbjava/rdfToJava.rb +407 -0
- data/lib/ontomde-java/struts.rb +27 -0
- data/lib/ontomde-java/struts/MessageResources.rb +359 -0
- data/lib/ontomde-java/struts/action.rb +883 -0
- data/lib/ontomde-java/struts/blob.rb +11 -0
- data/lib/ontomde-java/struts/exceptionHandling.rb +167 -0
- data/lib/ontomde-java/struts/footer.rb +128 -0
- data/lib/ontomde-java/struts/form.rb +450 -0
- data/lib/ontomde-java/struts/header.rb +37 -0
- data/lib/ontomde-java/struts/header_link.rb +39 -0
- data/lib/ontomde-java/struts/jsp_edit.rb +870 -0
- data/lib/ontomde-java/struts/jsp_edit_field.rb +1 -0
- data/lib/ontomde-java/struts/jsp_edit_js.rb +124 -0
- data/lib/ontomde-java/struts/jsp_index.rb +136 -0
- data/lib/ontomde-java/struts/localeAction.rb +641 -0
- data/lib/ontomde-java/struts/main.rb +41 -0
- data/lib/ontomde-java/struts/mappingForBean.rb +132 -0
- data/lib/ontomde-java/struts/mappingForJsp.rb +272 -0
- data/lib/ontomde-java/struts/mappingToJavaHierarchy.rb +87 -0
- data/lib/ontomde-java/struts/reloadAction.rb +33 -0
- data/lib/ontomde-java/struts/spring.rb +89 -0
- data/lib/ontomde-java/struts/struts-config.rb +232 -0
- data/lib/ontomde-java/struts/validation.rb +116 -0
- data/lib/ontomde-java/struts/validator.rb +341 -0
- data/lib/ontomde-java/struts/webXml.rb +195 -0
- data/lib/ontomde-java/struts/xmlForm.rb +308 -0
- data/lib/ontomde-java/version.rb +5 -0
- data/profiling.xls +0 -0
- data/test/.classpath +14 -0
- data/test/.project +17 -0
- data/test/.settings/org.eclipse.jdt.core.prefs +23 -0
- data/test/Rakefile +71 -0
- data/test/build.xml +34 -0
- data/test/classpath.rb +15 -0
- data/test/lib/junit-4.1.jar +0 -0
- data/test/load1.rb +3 -0
- data/test/load2.rb +3 -0
- data/test/log4j.properties +46 -0
- data/test/model/.project +11 -0
- data/test/model/BigProject.mdzip +0 -0
- data/test/model/BigProject.mdzip.nt +102866 -0
- 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 +149 -0
- data/test/model/model_ea71.ea.xmi +4470 -0
- data/test/model/model_ea71.eap +0 -0
- data/test/model/model_ea71_README.txt +8 -0
- data/test/model/multipleInheritance.emx +466 -0
- data/test/model/multipleInheritance.emx.nt +2428 -0
- data/test/model/simple1-530.ofp +0 -0
- data/test/model/simple1-includedAsReference.emx +169 -0
- data/test/model/simple1.emx +3729 -0
- data/test/model/simple1.emx.fragments.nt +81 -0
- data/test/model/simple1.emx.nt +5760 -0
- data/test/model/simple1.mdzip +0 -0
- data/test/model/simple1.mdzip.nt +11500 -0
- data/test/model/simple1.oe530.nt +1986 -0
- data/test/model/simple1.oe600.nt +1627 -0
- data/test/src/RuntimeTest.java +656 -0
- data/test/src/testsLevel1.java +174 -0
- data/test/src/testsLevel2.java +29 -0
- data/test/src/testsLevel3.java +40 -0
- data/test/test-ea7.sh +15 -0
- data/test/test-magicDraw.sh +10 -0
- data/test/test-mi.sh +9 -0
- data/test/test-oe530.sh +10 -0
- data/test/test-oe600.sh +11 -0
- data/test/test-rsm.sh +11 -0
- data/test/test_export_ea71.rb +5 -0
- data/test/test_export_oe530.rb +4 -0
- data/test/test_export_oe600.rb +4 -0
- data/test/test_export_rsm60.rb +4 -0
- data/test/trace +419 -0
- data/test/uml_test.rb +1434 -0
- data/test/uml_test.xls +0 -0
- data/test/unit_test.rb +6 -0
- metadata +224 -0
@@ -0,0 +1,124 @@
|
|
1
|
+
|
2
|
+
# return an option array field with default values
|
3
|
+
def getDefaultOptions(options={})
|
4
|
+
#options = {}
|
5
|
+
options[:multiTenant] = false
|
6
|
+
options[:testRelativeDir]="src/test/java"
|
7
|
+
options[:jspUseXmdaTaglib]=true
|
8
|
+
options[:backTrace] = false
|
9
|
+
options[:selfTestAndExit] = false
|
10
|
+
options[:verbose]=false
|
11
|
+
options[:targetDir]="."
|
12
|
+
options[:javaRelativeDir]="src/main/java/"
|
13
|
+
options[:flexRelativeDir]="webapp/src/main/flex/"
|
14
|
+
options[:webResourcesDir]=options[:javaRelativeDir]
|
15
|
+
options[:flex]=false
|
16
|
+
options[:mysql]=false
|
17
|
+
options[:nt]=[]
|
18
|
+
options[:load]=[]
|
19
|
+
options[:dryRun]=false
|
20
|
+
options[:pruneEmptyEnums]=false
|
21
|
+
options[:withAutoImplementProperty]=false
|
22
|
+
options[:withEnumAsString]=false
|
23
|
+
options[:withAutoImplementOperation]=false
|
24
|
+
options[:withMultipleInheritance]=true
|
25
|
+
options[:withGenerateImplicitComponent]=false
|
26
|
+
options[:generateComponent]=true
|
27
|
+
options[:strutsActionFormPackage]="struts"
|
28
|
+
options[:enumAssignableSubPackage]="assignable"
|
29
|
+
options[:withEnumAssignable]=true
|
30
|
+
options[:withGenerateMethodForm]=false
|
31
|
+
options[:makeCompositionBiNavigable]=false
|
32
|
+
options[:salvage]=false
|
33
|
+
options[:useUnzip]=false
|
34
|
+
options[:messageCheck]=true
|
35
|
+
options[:struts]=false
|
36
|
+
options[:crank]=false
|
37
|
+
options[:ejb2]=false
|
38
|
+
options[:security]=false
|
39
|
+
options[:script]=false
|
40
|
+
options[:webservice]=false
|
41
|
+
options[:javadoc]=true
|
42
|
+
options[:statemachine]=false
|
43
|
+
#options[:installRessources]=true
|
44
|
+
options[:target_ejbconf] = nil
|
45
|
+
options[:autoNewFileCreation]=true
|
46
|
+
options[:webContentRelativeDir]="./WebContent/"
|
47
|
+
options[:javaClassRelDir]=nil
|
48
|
+
options[:generateAntBuildFile]=false
|
49
|
+
options[:silentlyForceUnknownDatatypeToString]=false
|
50
|
+
options[:allowAutomaticCodeDeletion]=false
|
51
|
+
options[:generateCompositionDiagram] = false
|
52
|
+
options[:checkForAbstractAndInheritance]=false
|
53
|
+
options[:generateXMLStrutsForm]=false
|
54
|
+
options[:java_addJavaEnumInterface]=false
|
55
|
+
options[:silentlyTruncateTableName]=false
|
56
|
+
options[:benchmark]=false
|
57
|
+
options[:profile]=false
|
58
|
+
options[:logFileWrite]=false
|
59
|
+
options[:javaFilePathRegexp]=[]
|
60
|
+
options[:bpm_javaSubPackage]="bpm"
|
61
|
+
options[:struts_useSpring]=true
|
62
|
+
options[:db_useExtraTypeParameterForFindAll]=true
|
63
|
+
options[:bpm_addPingNode]=false
|
64
|
+
options[:jpaConfigDir] = nil
|
65
|
+
|
66
|
+
options[:rel_mapping] = "none"
|
67
|
+
options[:groovyExperimental]=false
|
68
|
+
options[:inspector] = false
|
69
|
+
options[:inspectorAfterLoad]=false
|
70
|
+
options[:generateDebugLauncher]=false
|
71
|
+
options[:contextualizeStaticProperties]=false
|
72
|
+
options[:dbTypeDiscriminator]=DB_TYPE_DISCRIMINATOR[0]
|
73
|
+
options[:dbDiscriminatorCacheRelFile]="dbDiscriminatorCache.rb"
|
74
|
+
options[:ddl_mode]="create"
|
75
|
+
options[:simulateNotImplementedMethods]=false
|
76
|
+
options[:db_useStereotypeMarker]=false
|
77
|
+
options[:versionSignature]=nil
|
78
|
+
#options[:db_stereotypeMarkerName]=false
|
79
|
+
options[:enableTestData] = false
|
80
|
+
options[:testDataRDF] = nil
|
81
|
+
options[:testDataRDFS] = nil
|
82
|
+
options[:updateTestDataProject] = false
|
83
|
+
|
84
|
+
options[:hideJavadocReverseTag]=false
|
85
|
+
options[:updateKB]=false
|
86
|
+
options[:kbTargetfile]="defaultKbTargetFile"
|
87
|
+
|
88
|
+
options[:excludeNonTestFiles]=false
|
89
|
+
options[:includeTestFiles]=true
|
90
|
+
|
91
|
+
options[:java_failIfNonUniqueName]=true
|
92
|
+
options[:generateXSD]=false
|
93
|
+
|
94
|
+
|
95
|
+
options[:rsm6WebDocURI]=""
|
96
|
+
options[:jpdl]=[]
|
97
|
+
options[:ntbpm]=[]
|
98
|
+
options[:bpm]=false
|
99
|
+
options[:skipNoReverseMarker]=false
|
100
|
+
options[:readGlobalReverseFile]=true
|
101
|
+
|
102
|
+
options[:derby]=false
|
103
|
+
|
104
|
+
options[:globalReverseFile]=nil
|
105
|
+
options[:hasGlobalReverse]=false
|
106
|
+
options[:dataModel]=nil
|
107
|
+
|
108
|
+
# options[:hib_dialect]="org.hibernate.dialect.MySQL5InnoDBDialect"
|
109
|
+
#
|
110
|
+
#
|
111
|
+
# options[:hib_dialect]="org.hibernate.dialect.MySQL5InnoDBDialect"
|
112
|
+
# options[:hib_connection_driver_class]="com.mysql.jdbc.Driver"
|
113
|
+
# options[:hib_connection_url]=nil
|
114
|
+
# options[:hib_connection_username]="testuser"
|
115
|
+
# options[:hib_connection_password]="testpwd"
|
116
|
+
#
|
117
|
+
# options[:hib_dialect]="org.hibernate.dialect.DerbyDialect"
|
118
|
+
# options[:hib_connection_driver_class]="org.apache.derby.jdbc.EmbeddedDriver"
|
119
|
+
# options[:hib_connection_url]="jdbc:derby:realty;create=true"
|
120
|
+
# options[:hib_connection_username]="testuser"
|
121
|
+
# options[:hib_connection_password]="testpwd"
|
122
|
+
#
|
123
|
+
return options
|
124
|
+
end
|
@@ -0,0 +1,555 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
def populateOptionsFromCommandLine(startupFile,options)
|
4
|
+
#cf: http://www.ruby-doc.org/core/classes/OptionParser.html
|
5
|
+
|
6
|
+
OptionParser.new do |opts|
|
7
|
+
populateHeader(opts,options,startupFile)
|
8
|
+
populateSourceAndTarget(opts,options)
|
9
|
+
populateModelPreprocessors(opts,options)
|
10
|
+
populateModelEnhancement(opts,options)
|
11
|
+
populatePreJava5(opts,options)
|
12
|
+
populateTests(opts,options)
|
13
|
+
populateAccessControl(opts,options)
|
14
|
+
populateScripting(opts,options)
|
15
|
+
populateWebService(opts,options)
|
16
|
+
populateBpm(opts,options)
|
17
|
+
populateCrank(opts,options)
|
18
|
+
populateFlex(opts,options)
|
19
|
+
populatePersistence(opts,options)
|
20
|
+
populateStruts(opts,options)
|
21
|
+
populateEJB(opts,options)
|
22
|
+
populateMisc(opts,options)
|
23
|
+
populateDocumentation(opts,options)
|
24
|
+
populateDebug(opts,options)
|
25
|
+
populateKb(opts,options)
|
26
|
+
populateXSD(opts,options)
|
27
|
+
populateSASS(opts,options)
|
28
|
+
|
29
|
+
populateHelp(opts,options)
|
30
|
+
end.parse!
|
31
|
+
|
32
|
+
if (ARGV.length > 0) && options[:nt].nil?
|
33
|
+
log.warn("**********************")
|
34
|
+
log.warn("DEPRECATED SYNTAX USED")
|
35
|
+
log.warn("For help:")
|
36
|
+
log.warn("#{File.basename(startupFile)} --help")
|
37
|
+
log.warn("**********************")
|
38
|
+
options[:nt]=[]
|
39
|
+
ARGV.each { |f| options[:nt]<< f }
|
40
|
+
ARGV.clear
|
41
|
+
end
|
42
|
+
|
43
|
+
if ARGV.length > 0
|
44
|
+
raise Exception.new("An error occured while processing command line arguments. Unparseable paramater : '#{ARGV}'")
|
45
|
+
end
|
46
|
+
|
47
|
+
return options
|
48
|
+
end
|
49
|
+
|
50
|
+
def populateAddHeader(opts,msg)
|
51
|
+
h3="## "
|
52
|
+
opts.separator ""
|
53
|
+
opts.separator "#{h3} #{msg}"
|
54
|
+
opts.separator ""
|
55
|
+
end
|
56
|
+
|
57
|
+
def populateHeader(opts,options,startupFile)
|
58
|
+
h3="## "
|
59
|
+
|
60
|
+
opts.banner =<<ENDHELP
|
61
|
+
#{File.basename(startupFile)} is a command line utility to generate Java Code from a UML2 model stored in a UML2/RDF model file.
|
62
|
+
|
63
|
+
This command line is a front end to OntoMDE generator offering a set of pre-packaged, yet powerfull generation rules.
|
64
|
+
|
65
|
+
This Java code generator is full featured and covers many UML features (incremental generation, loading of additional MDA transformation rules, ...)
|
66
|
+
|
67
|
+
#{h3}Example: generate java code from one model file
|
68
|
+
$ #{File.basename(startupFile)} --nt myUmlModel.emx.nt
|
69
|
+
|
70
|
+
#{h3}Example: generate java code in a custom directory
|
71
|
+
$ #{File.basename(startupFile)} --nt myUmlModel.emx.nt --target ./src
|
72
|
+
|
73
|
+
#{h3}Usage:
|
74
|
+
#{File.basename(startupFile)} [options]
|
75
|
+
ENDHELP
|
76
|
+
end
|
77
|
+
|
78
|
+
def populateSourceAndTarget(opts,options)
|
79
|
+
populateAddHeader(opts,"Source and Target options :")
|
80
|
+
|
81
|
+
opts.on("--nt FILE1.nt,FILE2.nt, ...",Array,": Source UML2 model(s) (exported from a UML case tool)","default: --nt #{options[:nt]}") do |v|
|
82
|
+
options[:nt].concat(v)
|
83
|
+
end
|
84
|
+
opts.separator ""
|
85
|
+
|
86
|
+
opts.on("--ntList FILE1,FILE2,...",Array,": File containing a list of nt file to be loaded") do |v|
|
87
|
+
v.each { |fn| File.open(fn) { |f| f.each_line { |line|
|
88
|
+
next if line.empty? || line[0]=='#'[0]
|
89
|
+
options[:nt]<<( "#{File.dirname(fn)}/#{line.chomp}" )
|
90
|
+
}}}
|
91
|
+
end
|
92
|
+
|
93
|
+
opts.on("-l","--load FILE1.rb,File2.rb",Array,": Optionnal ruby extension or setup file (used as well new datatype declaration mappings, as for any generation customisation)","default: --load #{options[:load]}" ) do |v|
|
94
|
+
options[:load].concat(v)
|
95
|
+
end
|
96
|
+
|
97
|
+
opts.on("-l","--loadDir DIRECTORY1,..",Array,": Optionnal ruby extension or setup file","(used as well new datatype declaration mappings, as for any generation customisation)","default: --loadDir " ) do |v|
|
98
|
+
v.each { |d|
|
99
|
+
Dir.foreach(d) { |f|
|
100
|
+
next unless f =~ /\.rb$/
|
101
|
+
puts "f=#{f}"
|
102
|
+
options[:load]<<("#{d}/#{f}")
|
103
|
+
}
|
104
|
+
}
|
105
|
+
end
|
106
|
+
|
107
|
+
opts.on("--loadList FILE_list1,FILE_list2, ...",Array,": File containing a list of ruby file to be loaded","(same as --load on each item)") do |v|
|
108
|
+
v.each { |fn| File.open(fn) { |f| f.each_line { |line|
|
109
|
+
next if line.empty? || line[0]=='#'[0]
|
110
|
+
options[:load]<<( "#{File.dirname(fn)}/#{line.chomp}" )
|
111
|
+
}}}
|
112
|
+
end
|
113
|
+
|
114
|
+
opts.on("--javaRelativeDir DIRECTORY",": Relative destination directory for generated java files, properties, ...","relative to --targetDir","default: --javaRelativeDir #{options[:javaRelativeDir]}") do |v|
|
115
|
+
options[:javaRelativeDir] = v
|
116
|
+
end
|
117
|
+
|
118
|
+
opts.on("--webResourcesDir DIRECTORY",": Relative destination directory for generated Web Resources properties, ...","relative to --targetDir","default: --webResourcesDir #{options[:webResourcesDir]}") do |v|
|
119
|
+
options[:webResourcesDir] = v
|
120
|
+
end
|
121
|
+
|
122
|
+
opts.on("--javaFilePathRegexp REGEXP@DIRECTORY",": Relative destination directory for generated java files, properties, ...","relative to --targetDir","default: --javaFilePathRegexp #{options[:javaFilePathRegexp]}") do |v|
|
123
|
+
re=Regexp.new(v.split('@')[0])
|
124
|
+
p=v.split('@')[1]
|
125
|
+
options[:javaFilePathRegexp]<<([re,p])
|
126
|
+
end
|
127
|
+
|
128
|
+
opts.on("--targetDir DIRECTORY",": Target generation root directory","default: --targetDir #{options[:targetDir]}") do |v|
|
129
|
+
options[:targetDir] = v
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
def populateModelPreprocessors(opts,options)
|
134
|
+
populateAddHeader(opts,"Model pre-processors options :")
|
135
|
+
|
136
|
+
opts.on("--[no-]withMultipleInheritance",": Apply pattern to map UML model with multiple inheritance to Java compliant model."," (Class inheritance is mapped to interface implementation)",%{default: --#{options[:withMultipleInheritance]?"":"no-"}withMultipleInheritance}) do |v|
|
137
|
+
options[:withMultipleInheritance] = v
|
138
|
+
end
|
139
|
+
|
140
|
+
opts.on("--[no-]statemachine",": Apply state Machine genration on State Diagram."," State Machine",%{default: --#{options[:statemachine]?"":"no-"}statemachine}) do |v|
|
141
|
+
options[:statemachine] = v
|
142
|
+
end
|
143
|
+
|
144
|
+
opts.on("-p","--[no-]withAutoImplementProperty",": Generate automatically missing property in concrete class implementing an interface uml properties"," (feature introduced for model redondancy reduction)","default: --#{options[:withAutoImplementProperty]?'':'no-'}withAutoImplementProperty") do |v|
|
145
|
+
options[:withAutoImplementProperty] = v
|
146
|
+
end
|
147
|
+
|
148
|
+
opts.on("-o","--[no-]withAutoImplementOperation",": Generate automatically missing operations in concrete class implementing an interface"," (feature introduced for model redondancy reduction)","default: --#{options[:withAutoImplementOperation]?'':'no-'}withAutoImplementOperation") do |v|
|
149
|
+
options[:withAutoImplementOperation] = v
|
150
|
+
end
|
151
|
+
|
152
|
+
opts.on("--[no-]makeCompositionBiNavigable",": Force compositions to be bi-navigable","(Feature introduced for web persistence handling)",%{default: --#{options[:makeCompositionBiNavigable]?"":"no-"}makeCompositionBiNavigable}) do |v|
|
153
|
+
options[:makeCompositionBiNavigable] = v
|
154
|
+
end
|
155
|
+
|
156
|
+
opts.on("--[no-]contextualizeStaticProperties",": (alpha feature) Move static elements to composite owner.","This feature is used in order to have persistent static properties.",%{default: --#{options[:contextualizeStaticProperties]?"":"no-"}contextualizeStaticProperties}) do |v|
|
157
|
+
options[:contextualizeStaticProperties] = v
|
158
|
+
end
|
159
|
+
end
|
160
|
+
def populateModelEnhancement(opts,options)
|
161
|
+
populateAddHeader(opts,"Model enhancement options:")
|
162
|
+
|
163
|
+
opts.on("-a","--[no-]withEnumAssignable",": Generates for each class and interfaces an enum containing assignable class","(required for creators)","NOTE: also disable generation of createAndAdd methods",%{default: --#{options[:withEnumAssignable]?"":"no-"}withEnumAssignable}) do |v|
|
164
|
+
options[:withEnumAssignable] = v
|
165
|
+
end
|
166
|
+
|
167
|
+
opts.on("--enumAssignableSubPackage SUBDIR",": Directory where enumAssignable artefacts wil be generated",%{default: --enumAssignableSubPackage #{options[:enumAssignableSubPackage]} }) do |v|
|
168
|
+
options[:enumAssignableSubPackage] = v
|
169
|
+
end
|
170
|
+
|
171
|
+
opts.on("-f","--[no-]withGenerateMethodForm",": Apply a pattern to generate a form (as a class) for every method of the model.","(Feature introduced for web form handling)",%{default: --#{options[:withGenerateMethodForm]?"":"no-"}withGenerateMethodForm}) do |v|
|
172
|
+
options[:withGenerateMethodForm] = v
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
def populatePreJava5(opts,options)
|
177
|
+
populateAddHeader(opts,"Pre-Java 5 compatibility options:")
|
178
|
+
|
179
|
+
opts.on("-e","--[no-]withEnumAsString",": Generate additional string getter and setter","for properties with an enum type, so enums property can be manipulated as if it was a string"," (feature introduced"," for Flex interoperability)","default: --#{options[:withEnumAsString]?'':'no-'}withEnumAsString") do |v|
|
180
|
+
options[:withEnumAsString] = v
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
def populateSASS(opts,options)
|
185
|
+
populateAddHeader(opts,"Software As A Service (SaaS) options:")
|
186
|
+
|
187
|
+
opts.on("--[no-]multiTenant",": enable multi-tenant mode which allows shared hosting of an application for multiple tenants.","default: --#{options[:multiTenant]?'':'no-'}multiTenant") do |v|
|
188
|
+
options[:multiTenant] = v
|
189
|
+
end
|
190
|
+
|
191
|
+
end
|
192
|
+
def populateTests(opts,options)
|
193
|
+
populateAddHeader(opts,"Tests Data options:")
|
194
|
+
|
195
|
+
# opts.on("--updateKB",": Create or update protege 2000 knowledge base project (for creating tests data and junit tests bases on use cases.)","default: --#{options[:updateKB]?'':'no-'}updateKB") do |v|
|
196
|
+
# options[:updateKB] = v
|
197
|
+
# end
|
198
|
+
|
199
|
+
# opts.on("--kbTargetfile FILENAME _WITHOUT_EXTENSION",": Protege data test file to be generated or update.","This generates a protege/2000 project file to be used for editing tests data attached to test instances.","default: --kbTargetfile #{options[:kbTargetfile]}") do |v|
|
200
|
+
# options[:kbTargetfile] = v
|
201
|
+
# end
|
202
|
+
|
203
|
+
|
204
|
+
opts.on("--[no-]excludeNonTestFiles",": Do not generate files which are not test files","junit,data,...","default: --#{options[:excludeNonTestFiles]?'':'no-'}excludeNonTestFiles") do |v|
|
205
|
+
options[:excludeNonTestFiles] = v
|
206
|
+
end
|
207
|
+
|
208
|
+
opts.on("--[no-]includeTestFiles",": Include test files in generation","junit,data,...","default: --#{options[:includeTestFiles]?'':'no-'}includeTestFiles") do |v|
|
209
|
+
options[:includeTestFiles] = v
|
210
|
+
end
|
211
|
+
|
212
|
+
# opts.on("--[no-]enableTestData","enable data tests options",%{default: --#{options[:enableTestData]?"":"no-"}enableTestData}) do |v|
|
213
|
+
# options[:enableData] = v
|
214
|
+
# end
|
215
|
+
|
216
|
+
|
217
|
+
end
|
218
|
+
def populateAccessControl(opts,options)
|
219
|
+
populateAddHeader(opts,"Access control enhancement options:")
|
220
|
+
|
221
|
+
opts.on("--[no-]security",": Activate authentification and access control",%{default: --#{options[:security]?"":"no-"}security}) do |v|
|
222
|
+
options[:security] = v
|
223
|
+
end
|
224
|
+
end
|
225
|
+
def populateScripting(opts,options)
|
226
|
+
populateAddHeader(opts,"Runtime scripting options:")
|
227
|
+
|
228
|
+
opts.on("--[no-]script",": Activate script engine",%{default: --#{options[:script]?"":"no-"}script}) do |v|
|
229
|
+
options[:script] = v
|
230
|
+
end
|
231
|
+
end
|
232
|
+
def populateWebService(opts,options)
|
233
|
+
populateAddHeader(opts,"WebService options:")
|
234
|
+
|
235
|
+
opts.on("--[no-]webservice",": Activate Web Service",%{default: --#{options[:webservice]?"":"no-"}webservice}) do |v|
|
236
|
+
options[:webservice] = v
|
237
|
+
end
|
238
|
+
end
|
239
|
+
def populateBpm(opts,options)
|
240
|
+
populateAddHeader(opts,"BPM enhancement options:")
|
241
|
+
|
242
|
+
opts.on("--[no-]bpm",": Activate bpm processing",%{default: --#{options[:bpm]?"":"no-"}bpm}) do |v|
|
243
|
+
options[:bpm] = v
|
244
|
+
# if bpm is set, J2EE is mandatory (spring use is deactivated)
|
245
|
+
options[:struts_useSpring]=!v
|
246
|
+
end
|
247
|
+
# opts.on("--ntBPM FILE1.nt,FILE2.nt, ...",Array,"Source BPM model(s) (exported from a BPM modeling tool in nt format)","default: --ntBPM #{options[:ntBPM]}") do |v|
|
248
|
+
# options[:ntBPM].concat(v)
|
249
|
+
# end
|
250
|
+
|
251
|
+
opts.on("--jpdl FILE1.nt,FILE2.nt, ...",Array,": Source jpdl xml BPM model(s)","default: --jpdl #{options[:jpdl]}") do |v|
|
252
|
+
options[:bpm]=true
|
253
|
+
options[:jpdl].concat(v)
|
254
|
+
end
|
255
|
+
|
256
|
+
opts.on("--jpdlList FILE_list1,FILE_list2, ...",Array,": File containing a list of jpdl file to be loaded") do |v|
|
257
|
+
options[:bpm]=true
|
258
|
+
v.each { |fn| File.open(fn) { |f| f.each_line { |line|
|
259
|
+
next if line.empty? || line[0]=='#'[0]
|
260
|
+
options[:jpdl]<<( "#{File.dirname(fn)}/#{line.chomp}" )
|
261
|
+
}}}
|
262
|
+
end
|
263
|
+
|
264
|
+
opts.on("--bpm_javaSubPackage [SUBPACKAGE]",": Relative sub package where will be generated service class","(enums for transitions,...)",%{default: --bpm_javaSubPackage #{options[:bpm_javaSubPackage]}}) do |v|
|
265
|
+
options[:bpm_javaSubPackage] = v
|
266
|
+
end
|
267
|
+
end
|
268
|
+
def populateCrank(opts,options)
|
269
|
+
populateAddHeader(opts,"Crank options")
|
270
|
+
|
271
|
+
opts.on("--[no-]crank","Enable crank generation.","default: --#{options[:crank]?'':'no-'}crank") do |v|
|
272
|
+
options[:crank] = v
|
273
|
+
options[:java_addJavaEnumInterface]=true
|
274
|
+
end
|
275
|
+
end
|
276
|
+
def populateFlex(opts,options)
|
277
|
+
populateAddHeader(opts,"Flex integration options:")
|
278
|
+
|
279
|
+
opts.on("--[no-]generateXMLStrutsForm",": Add XML form serializer.","feature introduced for FLEX",%{default: --#{options[:generateXMLStrutsForm]?"":"no-"}generateXMLStrutsForm}) do |v|
|
280
|
+
options[:generateXMLStrutsForm] = v
|
281
|
+
end
|
282
|
+
|
283
|
+
opts.on("--[no-]flex",": Generate flex code",%{default: --#{options[:flex]?"":"no-"}flex}) do |v|
|
284
|
+
options[:flex] = v
|
285
|
+
# force generateXMLStrutsForm if flex is activated
|
286
|
+
options[:generateXMLStrutsForm] = v if v
|
287
|
+
end
|
288
|
+
end
|
289
|
+
|
290
|
+
def populatePersistence(opts,options)
|
291
|
+
populateAddHeader(opts,"Database persistence options:")
|
292
|
+
|
293
|
+
code_list = (OR_MAPPING_ALIASES.keys + OR_MAPPING).join(',')
|
294
|
+
opts.on("-m","--relational_mapping objr", OR_MAPPING, OR_MAPPING_ALIASES, ": Select object/relation library", " (#{code_list})","default: --relation_mapping #{options[:rel_mapping]}") do |encoding|
|
295
|
+
options[:rel_mapping] = encoding
|
296
|
+
end
|
297
|
+
|
298
|
+
opts.on("--[no-]db_useStereotypeMarker",": Are persistent capable classes marked with a stereotype",%{default: --#{options[:db_useStereotypeMarker]?"":"no-"}db_useStereotypeMarker}) do |v|
|
299
|
+
options[:db_useStereotypeMarker] = v
|
300
|
+
end
|
301
|
+
|
302
|
+
opts.on("--[no-]silentlyTruncateTableName",": Silently truncate generated table name to maximum sgbd allowed length.",%{default: --#{options[:silentlyTruncateTableName]?"":"no-"}silentlyTruncateTableName}) do |v|
|
303
|
+
options[:silentlyTruncateTableName] = v
|
304
|
+
end
|
305
|
+
|
306
|
+
opts.on("-d","--ddl_mode [MODE]",": SGBD schema creation mode","(create/update/...)",%{default: --ddl_mode #{options[:ddl_mode]}}) do |v|
|
307
|
+
options[:ddl_mode] = v
|
308
|
+
end
|
309
|
+
|
310
|
+
opts.on("-s","--[no-]simulateNotImplementedMethods",": Replace unimplemeted method with a simulation method.",%{default: --#{options[:simulateNotImplementedMethods]?"":"no-"}simulateNotImplementedMethods}) do |v|
|
311
|
+
options[:simulateNotImplementedMethods] = v
|
312
|
+
end
|
313
|
+
|
314
|
+
opts.on("-s","--[no-]java_addSuggester",": Add or remove the suggester method.",%{default: --#{options[:java_addSuggester]?"":"no-"}java_addSuggester}) do |v|
|
315
|
+
options[:java_addSuggester] = v
|
316
|
+
end
|
317
|
+
|
318
|
+
|
319
|
+
code_list2 = (DB_TYPE_DISCRIMINATOR_ALIASES.keys + DB_TYPE_DISCRIMINATOR).join(',')
|
320
|
+
opts.on("--dbTypeDiscriminator [objr]", DB_TYPE_DISCRIMINATOR, DB_TYPE_DISCRIMINATOR_ALIASES, ": Column type used to store an object type in database.", " (#{code_list2})","default: --dbTypeDiscriminator #{options[:dbTypeDiscriminator]}") do |encoding|
|
321
|
+
options[:dbTypeDiscriminator] = encoding
|
322
|
+
end
|
323
|
+
|
324
|
+
opts.on("--dbDiscriminatorCacheRelFile [RBFILE]",": File where db discriminator will be saved","to allow subsquent generation to use the same ids","NOTE: generated file will not be used, unless specified using --load option",%{default: --dbDiscriminatorCacheRelFile #{options[:dbDiscriminatorCacheRelFile]}}) do |v|
|
325
|
+
options[:dbDiscriminatorCacheRelFile] = v
|
326
|
+
end
|
327
|
+
|
328
|
+
opts.on("--[no-]mysql",": Optimize for mysql.",%{default: --#{options[:mysql]?"":"no-"}mysql}) do |v|
|
329
|
+
options[:mysql] = v
|
330
|
+
end
|
331
|
+
opts.on("--[no-]derby",": Optimize for derby.",%{default: --#{options[:derby]?"":"no-"}derby}) do |v|
|
332
|
+
options[:derby] = v
|
333
|
+
end
|
334
|
+
opts.on("--jpaConfigDir JPA_CONFIG_DIR",": Directory for the persistence.xml") do |v|
|
335
|
+
options[:jpaConfigDir] = v
|
336
|
+
end
|
337
|
+
end
|
338
|
+
|
339
|
+
def populateStruts(opts,options)
|
340
|
+
populateAddHeader(opts,"Struts Webapp options:")
|
341
|
+
|
342
|
+
opts.on("--[no-]struts",": Enable struts generation.","default: --#{options[:struts]?'':'no-'}struts") do |v|
|
343
|
+
options[:struts] = v
|
344
|
+
options[:java_addJavaEnumInterface]=true
|
345
|
+
end
|
346
|
+
|
347
|
+
opts.on("--[no-]java_addJavaEnumInterface",": Add Enum Interface.","default: --#{options[:java_addJavaEnumInterface]?'':'no-'}java_addJavaEnumInterface") do |v|
|
348
|
+
options[:java_addJavaEnumInterface] = v
|
349
|
+
end
|
350
|
+
opts.on("-u","--[no-]useUnzip",": Use unzip to install resources.","default: --#{options[:useUnzip]?'':'no-'}useUnzip") do |v|
|
351
|
+
options[:useUnzip] = v
|
352
|
+
end
|
353
|
+
|
354
|
+
opts.on("-c","--[no-]message-check",": Check message ressources consistency.","default: --#{options[:messageCheck]?'':'no-'}message-check") do |v|
|
355
|
+
options[:messageCheck] = v
|
356
|
+
end
|
357
|
+
|
358
|
+
opts.on("--webContentRelativeDir [DIRECTORY]",": Directory where webapp artefacts wil be generated (WEB-INF, META-INF, JSP, ...)",%{default: --webContentRelativeDir #{options[:webContentRelativeDir]}}) do |v|
|
359
|
+
options[:webContentRelativeDir] = v
|
360
|
+
end
|
361
|
+
|
362
|
+
opts.on("--strutsActionFormPackage [SUBPACKAGE]",": SubPackage where to generate struts related classes",%{default: --strutsActionFormPackage #{options[:strutsActionFormPackage]}}) do |v|
|
363
|
+
options[:strutsActionFormPackage] = v
|
364
|
+
end
|
365
|
+
end
|
366
|
+
|
367
|
+
def populateEJB(opts,options)
|
368
|
+
populateAddHeader(opts,"EJB options:")
|
369
|
+
|
370
|
+
opts.on("--[no-]ejb2",": Enable ejb2 experimental processing","default: --#{options[:ejb2]?'':'no-'}ejb2") do |v|
|
371
|
+
options[:ejb2] = v
|
372
|
+
end
|
373
|
+
|
374
|
+
opts.on("--[no-]generateComponent",": generate UML component as Java code","default: --#{options[:generateComponent]?'':'no-'}generateComponent") do |v|
|
375
|
+
options[:generateComponent] = v
|
376
|
+
end
|
377
|
+
|
378
|
+
opts.on("-t","--target_ejbconf DIRECTORY",": Destination directory for generated files","default: --target_ejbconf #{options[:target_ejbconf]}") do |v|
|
379
|
+
options[:target_ejbconf] = v
|
380
|
+
end
|
381
|
+
end
|
382
|
+
|
383
|
+
def populateMisc(opts,options)
|
384
|
+
populateAddHeader(opts,"Misc. options:")
|
385
|
+
|
386
|
+
opts.on("--[no-]generateAntBuildFile",": Generates a default ant build file",%{default: --#{options[:generateAntBuildFile]?"":"no-"}generateAntBuildFile}) do |v|
|
387
|
+
options[:generateAntBuildFile] = v
|
388
|
+
end
|
389
|
+
opts.on("--versionSignature version",": Adds a version signature to generated code, so old cold will not compile.","(an implemented interface is added to class and interfaces)","default: --versionSignature #{options[:versionSignature]}") do |v|
|
390
|
+
options[:versionSignature] = v
|
391
|
+
end
|
392
|
+
|
393
|
+
opts.on("--[no-]skipNoReverseMarker",": Only write markers when reverse is already set to yes. Usefull to get rid of unused reverse zone and get a better code browsing experience.","default: --#{options[:skipNoReverseMarker]?'':'no-'}skipNoReverseMarker") do |v|
|
394
|
+
options[:skipNoReverseMarker] = v
|
395
|
+
end
|
396
|
+
|
397
|
+
opts.on("--globalReverseFile FILE",": File containing all the tags of the reversed files") do |v|
|
398
|
+
options[:globalReverseFile] = v
|
399
|
+
end
|
400
|
+
|
401
|
+
opts.on("--[no-]readGlobalReverseFile",": Read the global reverse file for protected code.",%{default: --#{options[:readGlobalReverseFile]?"":"no-"}readGlobalReverseFile}) do |v|
|
402
|
+
options[:readGlobalReverseFile] = v
|
403
|
+
end
|
404
|
+
|
405
|
+
opts.on("--[no-]silentlyForceUnknownDatatypeToString",": Silently map an unknown datatype to String. This feature should only be used for testing.",%{default: --#{options[:silentlyForceUnknownDatatypeToString]?"":"no-"}silentlyForceUnknownDatatypeToString}) do |v|
|
406
|
+
options[:silentlyForceUnknownDatatypeToString] = v
|
407
|
+
end
|
408
|
+
|
409
|
+
opts.on("--[no-]java_failIfNonUniqueName",": Stop generation immediately when a name unicitiy constraint failure is detected.",%{default: --#{options[:java_failIfNonUniqueName]?"":"no-"}java_failIfNonUniqueName}) do |v|
|
410
|
+
options[:java_failIfNonUniqueName] = v
|
411
|
+
end
|
412
|
+
opts.on("--[no-]groovyExperimental",": Add experimental groovy features (alpha).",%{default: --#{options[:groovyExperimental]?"":"no-"}groovyExperimental}) do |v|
|
413
|
+
options[:groovyExperimental] = v
|
414
|
+
end
|
415
|
+
|
416
|
+
opts.on("--[no-]inspector",": start inspector web server at the end of code generation. Inspector is a web application for browsing in-memory scructure. This features is usefull for browsing meta-model structure and meta-model method calls.",%{default: --#{options[:inspector]?"":"no-"}inspector}) do |v|
|
417
|
+
options[:inspector] = v
|
418
|
+
end
|
419
|
+
|
420
|
+
opts.on("--[no-]inspectorAfterLoad",": start inspector web server just after loading models in memory. Inspector is a web application for browsing in-memory scructure. This features is usefull for browsing meta-model structure and meta-model method calls.",%{default: --#{options[:inspectorAfterLoad]?"":"no-"}inspectorAfterLoad}) do |v|
|
421
|
+
options[:inspectorAfterLoad] = v
|
422
|
+
end
|
423
|
+
|
424
|
+
opts.on("--[no-]generateDebugLauncher",": generates ruby script helper for launching ontomde-java from a ruby debugger. (netbeans, ruby, ...)",%{default: --#{options[:generateDebugLauncher]?"":"no-"}generateDebugLauncher}) do |v|
|
425
|
+
options[:generateDebugLauncher] = v
|
426
|
+
end
|
427
|
+
end
|
428
|
+
|
429
|
+
def populateDocumentation(opts,options)
|
430
|
+
populateAddHeader(opts,"Report generator:")
|
431
|
+
|
432
|
+
opts.on("--rsm6WebDocURI URL",": Base URL of RSM6 model html export","default: -- #{options[:rsm6WebDocURI]}") do |v|
|
433
|
+
options[:rsm6WebDocURI] = v
|
434
|
+
end
|
435
|
+
|
436
|
+
opts.on("--[no-]hideJavadocReverseTag",": Hide javadoc reverse tag.",%{default: --#{options[:hideJavadocReverseTag]?"":"no-"}reverseJavadoc}) do |v|
|
437
|
+
options[:hideJavadocReverseTag] = v
|
438
|
+
end
|
439
|
+
|
440
|
+
|
441
|
+
opts.on("--[no-]generateCompositionDiagram",": Generate a composition diagram (in graphviz dot file format)",%{default: --#{options[:generateCompositionDiagram]?"":"no-"}generateCompositionDiagram}) do |v|
|
442
|
+
options[:generateCompositionDiagram] = v
|
443
|
+
end
|
444
|
+
|
445
|
+
opts.on("--[no-]checkForAbstractAndInheritance",": Check model for abstract class with inheriting classes. Stop generation if an invalid class is encountered.",%{default: --#{options[:checkForAbstractAndInheritance]?"":"no-"}checkForAbstractAndInheritance}) do |v|
|
446
|
+
options[:checkForAbstractAndInheritance] = v
|
447
|
+
end
|
448
|
+
end
|
449
|
+
def populateDebug(opts,options)
|
450
|
+
populateAddHeader(opts,"Debug options:")
|
451
|
+
|
452
|
+
opts.on("--[no-]salvage",": Tries to handle highly defective model using best guess.","This feature is only intended for **quick demo** purposes.","Do not use for serious work!",%{default: --#{options[:salvage]?"":"no-"}salvage}) do |v|
|
453
|
+
options[:salvage] = v
|
454
|
+
end
|
455
|
+
|
456
|
+
populateAddHeader(opts,"File creation options:")
|
457
|
+
|
458
|
+
opts.on("--[no-]autoNewFileCreation",": Allows generator to create new file on its own","This feature should be deactivated for project under version control so no new file can be added to a project without a developper approval.","This feature should also be deactivated to help keep track of file rename and allow project refactoring",%{default: --#{options[:autoNewFileCreation]?"":"no-"}autoNewFileCreation}) do |v|
|
459
|
+
options[:autoNewFileCreation] = v
|
460
|
+
end
|
461
|
+
|
462
|
+
opts.on("--[no-]allowAutomaticCodeDeletion",": Automatically ignore deleted protected code.","If disabled, generator will halt when reversed code is not reused in file newly created",%{default: --#{options[:allowAutomaticCodeDeletion]?"":"no-"}allowAutomaticCodeDeletion}) do |v|
|
463
|
+
options[:allowAutomaticCodeDeletion] = v
|
464
|
+
end
|
465
|
+
|
466
|
+
opts.on("-s","--[no-]dry-run",": Do a dry run without executing actions..","No file will be changed neither created on disk",%{default: --#{options[:dryRun]?"":"no-"}dry-run}) do |v|
|
467
|
+
options[:dryRun] = v
|
468
|
+
end
|
469
|
+
|
470
|
+
opts.on("-v", "--[no-]verbose", ":Run in verbose mode",%{default: --#{options[:verbose]?"":"no-"}verbose}) do |v|
|
471
|
+
options[:verbose] = v
|
472
|
+
end
|
473
|
+
|
474
|
+
opts.on("-v", "--[no-]benchmark", ": Run in benchmark mode","Feature usefull for optimizing generation time",%{default: --#{options[:benchmark]?"":"no-"}benchmark}) do |v|
|
475
|
+
options[:benchmark] = v
|
476
|
+
end
|
477
|
+
|
478
|
+
opts.on("-v", "--[no-]profile", ": Run in profile mode","Feature usefull for optimizing generation time",%{default: --#{options[:profile]?"":"no-"}profile}) do |v|
|
479
|
+
options[:profile] = v
|
480
|
+
require 'unprof' if options[:profile]
|
481
|
+
end
|
482
|
+
|
483
|
+
opts.on("-v", "--[no-]logFileWrite", ": Log file write access to screen",%{default: --#{options[:logFileWrite]?"":"no-"}logFileWrite}) do |v|
|
484
|
+
options[:logFileWrite] = v
|
485
|
+
end
|
486
|
+
|
487
|
+
opts.on("--[no-]selfTestAndExit", ": Self test and exit.","(loads every dependencies)","(Note: used by binary generator)",%{default: --#{options[:selfTestAndExit]?"":"no-"}selfTestAndExit}) do |v|
|
488
|
+
options[:selfTestAndExit] = v
|
489
|
+
end
|
490
|
+
|
491
|
+
opts.on("--[no-]backTrace", ": Display back trace on error.",%{default: --#{options[:backTrace]?"":"no-"}backTrace}) do |v|
|
492
|
+
options[:backTrace] = v
|
493
|
+
end
|
494
|
+
end
|
495
|
+
|
496
|
+
def populateKb(opts,options)
|
497
|
+
populateAddHeader(opts,"Knowledge base export options:")
|
498
|
+
|
499
|
+
opts.on("--[no-]updateTestDataProject", ": update data test file specified by testDataRDFS",%{default: --#{options[:updateTestDataProject]?"":"no-"}updateTestDataProject}) do |v|
|
500
|
+
options[:updateTestDataProject] = v
|
501
|
+
end
|
502
|
+
|
503
|
+
opts.on("--testDataProject DATAPROJECT",": load Data from Protege/2000 RDF/RDFS DATAPROJECT (name of project without extension .pprj)") do |v|
|
504
|
+
options[:enableTestData] = true
|
505
|
+
options[:updateTestDataProject] =true
|
506
|
+
options[:testDataProject] = v
|
507
|
+
options[:testDataRDF] = v+".rdf"
|
508
|
+
options[:testDataRDFS] = v+".rdfs"
|
509
|
+
end
|
510
|
+
end
|
511
|
+
|
512
|
+
#Helper for creating a binary option
|
513
|
+
def binaryOption(opts,options,symb,help)
|
514
|
+
opts.on("--[no-]#{symb}", help ,%{default: --#{options[symb]?"":"no-"}#{symb}}) do |v|
|
515
|
+
options[symb] = v
|
516
|
+
end
|
517
|
+
end
|
518
|
+
|
519
|
+
def populateXSD(opts,options)
|
520
|
+
populateAddHeader(opts,"XML schema export options:")
|
521
|
+
binaryOption(opts,options,:generateXSD,": generate XSD schema files")
|
522
|
+
end
|
523
|
+
|
524
|
+
def populateHelp(opts,options)
|
525
|
+
# No argument, shows at tail. This will print an options summary.
|
526
|
+
# Try it and see!
|
527
|
+
opts.on_tail("-h", "--help", ": Show this message") do
|
528
|
+
puts opts
|
529
|
+
exit 1
|
530
|
+
end
|
531
|
+
|
532
|
+
opts.on_tail("--help-rdoc", ": Show help in rdoc format") do
|
533
|
+
#x=opts.to_s.
|
534
|
+
#Set very wide columns to disable column wrapping
|
535
|
+
opts.summary_indent="~"*300
|
536
|
+
opts.summary_width=999
|
537
|
+
puts opts.to_s.
|
538
|
+
gsub(/^##/,'==').
|
539
|
+
gsub(/(default:)/,"\n\n<i>\\1</i>").
|
540
|
+
gsub(/^[^a-zA-Z\n]*(-[^:\n]*:)/,"===\\1\n\n").
|
541
|
+
gsub(/ */," ").
|
542
|
+
gsub(/ */," ").
|
543
|
+
gsub(/~~*/,"").
|
544
|
+
to_s
|
545
|
+
|
546
|
+
|
547
|
+
#gsub(/^[ \t]*-([a-zA-Z])[ \t]*\n/,'-\1 ,').
|
548
|
+
#gsub(/^[ \t]*/,'').
|
549
|
+
|
550
|
+
#gsub(/(^[^:\n]*--*[^\t\n ]*)/,"<b>\\1</b>").
|
551
|
+
|
552
|
+
|
553
|
+
exit 1
|
554
|
+
end
|
555
|
+
end
|