ontomde-core 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/Manifest.txt +6 -7
- data/lib/ontomde-core/completion.rb +4 -4
- data/lib/ontomde-core/converter-ea/{XMI2RDFS.xslt → 7_1_829/XMI2RDFS.xslt} +39 -34
- data/lib/ontomde-core/converter-ea/7_1_829/XMI2RDFS_step2.xslt +24 -0
- data/lib/ontomde-core/converter-ea/7_1_833/XMI2RDFS.xslt +817 -0
- data/lib/ontomde-core/converter-ea/7_1_833/XMI2RDFS_step2.xslt +24 -0
- data/lib/ontomde-core/converter-ea/7_5_843/XMI2RDFS.xslt +817 -0
- data/lib/ontomde-core/converter-ea/7_5_843/XMI2RDFS_step2.xslt +24 -0
- data/lib/ontomde-core/customERB.rb +1 -1
- data/lib/ontomde-core/custom_method_missing.rb +6 -6
- data/lib/ontomde-core/fileLoader.rb +49 -34
- data/lib/ontomde-core/fileTypes.rb +10 -10
- data/lib/ontomde-core/helper.rb +46 -21
- data/lib/ontomde-core/inspector.rb +2 -2
- data/lib/ontomde-core/log.rb +1 -1
- data/lib/ontomde-core/meta.rb +15 -15
- data/lib/ontomde-core/resource.rb +12 -10
- data/lib/ontomde-core/resourceSet.rb +3 -1
- data/lib/ontomde-core/triplet.rb +2 -0
- data/lib/ontomde-core/version.rb +1 -1
- metadata +8 -9
- data/lib/ontomde-core/inspector/rails/vendor/plugins/auto_complete/README +0 -23
- data/lib/ontomde-core/inspector/rails/vendor/plugins/auto_complete/Rakefile +0 -22
- data/lib/ontomde-core/inspector/rails/vendor/plugins/auto_complete/init.rb +0 -2
- data/lib/ontomde-core/inspector/rails/vendor/plugins/auto_complete/lib/auto_complete.rb +0 -47
- data/lib/ontomde-core/inspector/rails/vendor/plugins/auto_complete/lib/auto_complete_macros_helper.rb +0 -143
- data/lib/ontomde-core/inspector/rails/vendor/plugins/auto_complete/test/auto_complete_test.rb +0 -67
@@ -0,0 +1,24 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<xsl:stylesheet version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:uml="http://schema.omg.org/spec/UML/2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns0="http://uml/2#">
|
3
|
+
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
|
4
|
+
|
5
|
+
|
6
|
+
<xsl:template match="*|@*">
|
7
|
+
<xsl:copy>
|
8
|
+
<xsl:apply-templates select="@*"/>
|
9
|
+
<xsl:apply-templates select="node()"/>
|
10
|
+
</xsl:copy>
|
11
|
+
</xsl:template>
|
12
|
+
<xsl:template match="@rdf:about[starts-with(.,'EA')]">
|
13
|
+
<xsl:attribute name="rdf:about">
|
14
|
+
<xsl:value-of select="concat('http://EA#',.)"/>
|
15
|
+
</xsl:attribute>
|
16
|
+
</xsl:template>
|
17
|
+
<xsl:template match="@rdf:resource[starts-with(.,'EA')]">
|
18
|
+
<xsl:attribute name="rdf:resource">
|
19
|
+
<xsl:value-of select="concat('http://EA#',.)"/>
|
20
|
+
</xsl:attribute>
|
21
|
+
</xsl:template>
|
22
|
+
|
23
|
+
|
24
|
+
</xsl:stylesheet>
|
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
def method_missing(methId,args=nil)
|
9
|
-
objinfo=
|
9
|
+
objinfo='-'
|
10
10
|
if self.kind_of?(Mrdf_Resource)
|
11
11
|
objinfo= <<END
|
12
12
|
**** For ressource of type #{self.class.name}
|
@@ -17,12 +17,12 @@ def method_missing(methId,args=nil)
|
|
17
17
|
END
|
18
18
|
end
|
19
19
|
|
20
|
-
msg=respond_to?(:rdf_uri) ? "#{rdf_uri}" :
|
20
|
+
msg=respond_to?(:rdf_uri) ? "#{rdf_uri}" : 'nil'
|
21
21
|
log.error { "method #{methId} not available for object of class #{self.class.name}, (uri=#{msg})(to_s=#{self}) #{objinfo}" }
|
22
22
|
|
23
23
|
|
24
24
|
|
25
|
-
if msg==
|
25
|
+
if msg=='ukb_null'
|
26
26
|
log.error { <<END
|
27
27
|
********** INVALID MODEL DETECTED **********
|
28
28
|
********** INVALID MODEL DETECTED **********
|
@@ -46,7 +46,7 @@ END
|
|
46
46
|
end
|
47
47
|
|
48
48
|
log.debug {
|
49
|
-
msg=
|
49
|
+
msg=''
|
50
50
|
self.methods.sort{|a,b| a<=>b}.each {|m|
|
51
51
|
msg="#{msg}, #{m}"
|
52
52
|
}
|
@@ -58,10 +58,10 @@ END
|
|
58
58
|
#self.included_modules.each { |m|
|
59
59
|
# #puts "include #{m}"
|
60
60
|
# }
|
61
|
-
puts
|
61
|
+
puts 'end of custom method_missing'
|
62
62
|
#TODO: l'appel au stock method_missing genere des temps de traitements infinis. (cpu a 100%, conso memoire enorme)
|
63
63
|
#super
|
64
|
-
puts
|
64
|
+
puts 'exiting'
|
65
65
|
throw NoMethodError.new("method missing '#{methId}' for object '#{self.class.name}'",methId,args)
|
66
66
|
#exit
|
67
67
|
end
|
@@ -13,7 +13,7 @@ class NTripleFile < NTriple
|
|
13
13
|
def line=(_line)
|
14
14
|
@line=_line
|
15
15
|
@about_uri=@predicat_uri=@value_uri=@value_litteral=nil
|
16
|
-
@split=@line.split(
|
16
|
+
@split=@line.split(' ',3)
|
17
17
|
end
|
18
18
|
|
19
19
|
def about_uri
|
@@ -38,7 +38,7 @@ class NTripleFile < NTriple
|
|
38
38
|
#(A File should not mix CR/LF lines with CR lines)
|
39
39
|
def lineOffset
|
40
40
|
return @litOffset unless @litOffset.nil?
|
41
|
-
i=@split[2].rindex(
|
41
|
+
i=@split[2].rindex('.')
|
42
42
|
l=@split[2].length
|
43
43
|
@litOffset=l-i+3
|
44
44
|
return @litOffset
|
@@ -48,7 +48,7 @@ class NTripleFile < NTriple
|
|
48
48
|
case @split[2][0]
|
49
49
|
when 60 then return true
|
50
50
|
when 34 then return false
|
51
|
-
else raise Warning.new,
|
51
|
+
else raise Warning.new,'Bad ntriple detected'
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
@@ -64,20 +64,20 @@ class NTripleFile < NTriple
|
|
64
64
|
end
|
65
65
|
|
66
66
|
module Mrdf_Repository
|
67
|
-
def loadMetaModelFromFile(fileName,ignoreHeader=true)
|
67
|
+
def loadMetaModelFromFile(fileName,ignoreHeader=true,failOnWarn=false)
|
68
68
|
@updateCount=@updateCount+1
|
69
|
-
raise Exception.new(
|
70
|
-
m=fileName+
|
69
|
+
raise Exception.new('nil fileName passed to loadMetaModelFromFile') if fileName.nil?
|
70
|
+
m=fileName+'.rb'
|
71
71
|
#log.debug "m=#{m}"
|
72
72
|
#TODO: cacheMetaModelFile forced to false
|
73
73
|
# because range handling broke it
|
74
74
|
if( context[:cacheMetaModelFile,false] && File.exists?(m) && File.mtime(m) > File.mtime(fileName) )
|
75
75
|
log.debug "Using cache in #{m}"
|
76
76
|
require(m)
|
77
|
-
loadModelFromFile(fileName,ignoreHeader)
|
77
|
+
loadModelFromFile(fileName,ignoreHeader,failOnWarn)
|
78
78
|
else
|
79
79
|
log.debug "Generating cache in #{m}"
|
80
|
-
loadModelFromFile(fileName,ignoreHeader)
|
80
|
+
loadModelFromFile(fileName,ignoreHeader,failOnWarn)
|
81
81
|
self.generateClassesFromMetamodel(m)
|
82
82
|
end
|
83
83
|
end
|
@@ -93,15 +93,15 @@ module Mrdf_Repository
|
|
93
93
|
# loadModelFromFile("MyUmlModelFile.nt")
|
94
94
|
# loadModelFromFile("MyDslModelFile.nt")
|
95
95
|
# loadModelFromFile("MyDslModelFile.xml")
|
96
|
-
def loadModelFromFile (srcFileName,ignoreHeader=true)
|
96
|
+
def loadModelFromFile (srcFileName,ignoreHeader=true,failOnWarn=false)
|
97
97
|
#Converts from RDF/XML to RDF/NT when needed.
|
98
98
|
fileName=translateToNt(srcFileName)
|
99
99
|
|
100
100
|
@updateCount=@updateCount+1
|
101
101
|
[MODE_parseModelStream_CREATE_INSTANCES,MODE_parseModelStream_POPULATE_FIELDS].each { |modeData|
|
102
102
|
begin
|
103
|
-
File.open(fileName,
|
104
|
-
parseModelStream(aFile,modeData,ignoreHeader)
|
103
|
+
File.open(fileName,'r') { |aFile|
|
104
|
+
parseModelStream(aFile,modeData,ignoreHeader,failOnWarn)
|
105
105
|
}
|
106
106
|
rescue Exception => e
|
107
107
|
raise Exception.new(e.message+"ERROR *** current file is: \"#{fileName}\"\nERROR ***\n")
|
@@ -119,7 +119,7 @@ module Mrdf_Repository
|
|
119
119
|
MODE_parseModelStream_POPULATE_FIELDS=!MODE_parseModelStream_CREATE_INSTANCES
|
120
120
|
|
121
121
|
#Populate model objects and fields from RDF stream.
|
122
|
-
def parseModelStream(stream,modeData,ignoreHeader=false)
|
122
|
+
def parseModelStream(stream,modeData,ignoreHeader=false,failOnWarn=false)
|
123
123
|
aFile=stream
|
124
124
|
i=0
|
125
125
|
nt=NTripleFile.new()
|
@@ -150,6 +150,7 @@ module Mrdf_Repository
|
|
150
150
|
Crdf_Resource.new(self,z.uri)
|
151
151
|
#parse(nt.line,modeData)
|
152
152
|
i=i-1
|
153
|
+
raise z if failOnWarn
|
153
154
|
retry
|
154
155
|
rescue Warning => w
|
155
156
|
log.error "WARNING ["+(modeData ? "data":"res")+" :line "+i.to_s+", "+w.to_s+"]:"+nt.line
|
@@ -158,21 +159,21 @@ module Mrdf_Repository
|
|
158
159
|
}
|
159
160
|
end
|
160
161
|
|
161
|
-
PLATFORM_IS_JAVA=!(RUBY_PLATFORM.index(
|
162
|
-
OS_IS_WINDOWS=!(ENV['OS'].nil? ? true : ENV['OS'].index(
|
162
|
+
PLATFORM_IS_JAVA=!(RUBY_PLATFORM.index('java').nil?)
|
163
|
+
OS_IS_WINDOWS=!(ENV['OS'].nil? ? true : ENV['OS'].index('Windows').nil?)
|
163
164
|
|
164
|
-
puts(%{O/S detected: #{OS_IS_WINDOWS ?
|
165
|
-
puts(%{Ruby platform detected: #{PLATFORM_IS_JAVA ?
|
165
|
+
puts(%{O/S detected: #{OS_IS_WINDOWS ? 'WINDOWS' : '*nix'}})
|
166
|
+
puts(%{Ruby platform detected: #{PLATFORM_IS_JAVA ? 'Java' : 'C'}})
|
166
167
|
|
167
168
|
def rapperRun(param)
|
168
169
|
if ! OS_IS_WINDOWS
|
169
170
|
#we are not under windows
|
170
171
|
#built in rapper cannot be used (it is for windows)
|
171
172
|
#we use rapper available in path.
|
172
|
-
cmd=
|
173
|
+
cmd='rapper '+param
|
173
174
|
elsif PLATFORM_IS_JAVA
|
174
175
|
#We are under windows but under jruby
|
175
|
-
cmd=::Mrdf_Model::WIN_PATH_RAPPER+
|
176
|
+
cmd=::Mrdf_Model::WIN_PATH_RAPPER+' '+param
|
176
177
|
else
|
177
178
|
#We are under windows but under Matz Ruby Implementation (MRI)
|
178
179
|
cmd='"'+::Mrdf_Model::WIN_PATH_RAPPER+'"'+param
|
@@ -180,50 +181,64 @@ module Mrdf_Repository
|
|
180
181
|
return if system(cmd)
|
181
182
|
msg=<<END
|
182
183
|
***
|
183
|
-
*** Error running rapper #{
|
184
|
+
*** Error running rapper #{'external ' if OS_IS_WINDOWS }binary executable.
|
184
185
|
*** #{cmd}
|
185
|
-
*** #{
|
186
|
+
*** #{'UBUNTU user should install raptor-utils package.' if !OS_IS_WINDOWS}
|
186
187
|
***
|
187
188
|
END
|
188
189
|
raise Exception.new(msg)
|
189
190
|
end
|
190
191
|
|
191
192
|
|
192
|
-
def translateEAXMI_to_NT(eaxmifile)
|
193
|
+
def translateEAXMI_to_NT(eaxmifile,ea_version)
|
193
194
|
translatedfile="#{eaxmifile}_tmp.nt"
|
194
|
-
|
195
|
+
param1="#{eaxmifile} -o #{translatedfile}_prestep2 #{File.dirname(__FILE__)}\\converter-ea\\#{ea_version}\\XMI2RDFS.xslt"
|
196
|
+
#step2 is for getting rid of file://xxx
|
197
|
+
param2="#{translatedfile}_prestep2 -o #{translatedfile} #{File.dirname(__FILE__)}\\converter-ea\\#{ea_version}\\XMI2RDFS_step2.xslt"
|
198
|
+
|
195
199
|
if ! OS_IS_WINDOWS
|
196
200
|
#we are not under windows
|
197
201
|
#built in rapper cannot be used (it is for windows)
|
198
202
|
#we use rapper available in path.
|
199
|
-
raise Exception.new(
|
203
|
+
raise Exception.new('TODO: use xslt under linux')
|
200
204
|
elsif PLATFORM_IS_JAVA
|
201
205
|
#We are under windows but under jruby
|
202
|
-
|
206
|
+
cmd1="#{File.dirname(__FILE__)}\\converter-ea\\msxsl.exe "+param1.tr('/','\\\\')
|
207
|
+
cmd2="#{File.dirname(__FILE__)}\\converter-ea\\msxsl.exe "+param2.tr('/','\\\\')
|
203
208
|
else
|
204
209
|
#We are under windows but under Matz Ruby Implementation (MRI)
|
205
|
-
|
210
|
+
cmd1="#{File.dirname(__FILE__)}\\converter-ea\\msxsl.exe "+param1.tr('/','\\\\')
|
211
|
+
cmd2="#{File.dirname(__FILE__)}\\converter-ea\\msxsl.exe "+param2.tr('/','\\\\')
|
206
212
|
end
|
207
|
-
|
208
|
-
|
213
|
+
puts " :starting Enterprise Architect XMI conversion using msxml"
|
214
|
+
[cmd1,cmd2].each { |cmd|
|
215
|
+
ret=system(cmd)
|
216
|
+
raise Exception.new("\n***\n***Error running command\n***\n***#{cmd}\n***Please check that no msxml process is running in background\n***\n") unless ret
|
217
|
+
}
|
218
|
+
puts " :done with Enterprise Architect file conversion"
|
219
|
+
return translateXMLRDF_to_NT(translatedfile)
|
209
220
|
end
|
210
221
|
|
211
222
|
#returns a filename containing a ntriple version of file in srcfilename.
|
212
223
|
def translateToNt(srcFileName)
|
213
224
|
return translateXMLRDF_to_NT(srcFileName) if (srcFileName=~/\.rdfs*$/ )
|
214
|
-
return translateEAXMI_to_NT(srcFileName) if (srcFileName=~/\.
|
225
|
+
return translateEAXMI_to_NT(srcFileName,'7_5_843') if (srcFileName=~/\.ea7_5_843\.xm[il]*$/)
|
226
|
+
return translateEAXMI_to_NT(srcFileName,'7_1_833') if (srcFileName=~/\.ea7_1_833\.xm[il]*$/)
|
227
|
+
return translateEAXMI_to_NT(srcFileName,'7_1_829') if (srcFileName=~/\.ea7_1_829\.xm[il]*$/)
|
215
228
|
|
216
229
|
#no conversion necessary
|
217
230
|
return srcFileName
|
218
231
|
end
|
219
232
|
|
220
233
|
def translateXMLRDF_to_NT(srcFileName)
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
234
|
+
# added version number to avoid cache reuse when upgrading
|
235
|
+
fileName="#{srcFileName}.#{Ontomde::Core::VERSION}.cache.deleteMe.nt"
|
236
|
+
useCache=context[:useTranslateToNtCache,true]
|
237
|
+
mtk_addTempFileToDelete(fileName) unless useCache
|
238
|
+
if( useCache && File.exists?(fileName) && File.mtime(fileName) > File.mtime(srcFileName) )
|
239
|
+
puts "INFO:Using cache in #{fileName}"
|
225
240
|
else
|
226
|
-
raise
|
241
|
+
raise 'white space in rdf file names not supported under windows' if fileName.include?(' ')
|
227
242
|
if !OS_IS_WINDOWS
|
228
243
|
param=' -q -o ntriples -i rdfxml '+srcFileName+' > '+fileName
|
229
244
|
else
|
@@ -235,7 +250,7 @@ END
|
|
235
250
|
end
|
236
251
|
|
237
252
|
def translateToXML(srcFileName,fileName)
|
238
|
-
raise
|
253
|
+
raise 'Blanc dans nom de fichier non supportes sous windows' if fileName.include?(' ') || srcFileName.include?(' ')
|
239
254
|
if !OS_IS_WINDOWS
|
240
255
|
param=' -q -i ntriples -o rdfxml '+srcFileName+' > '+fileName+''
|
241
256
|
else
|
@@ -10,10 +10,10 @@ class FileType
|
|
10
10
|
@@types[type]=self
|
11
11
|
end
|
12
12
|
def writeComment(str,writer)
|
13
|
-
raise Warning.new(),
|
13
|
+
raise Warning.new(), 'Internal error. Undefined method'
|
14
14
|
end
|
15
15
|
def beginMarker(str,id)
|
16
|
-
raise Warning.new(),
|
16
|
+
raise Warning.new(), 'Internal error. Undefined method'
|
17
17
|
end
|
18
18
|
|
19
19
|
#marker placeholder
|
@@ -22,7 +22,7 @@ class FileType
|
|
22
22
|
return "\n"
|
23
23
|
end
|
24
24
|
def endMarker(str)
|
25
|
-
raise Warning.new(),
|
25
|
+
raise Warning.new(), 'Internal error. Undefined method'
|
26
26
|
end
|
27
27
|
|
28
28
|
#marker placeholder
|
@@ -50,7 +50,7 @@ end
|
|
50
50
|
|
51
51
|
class FileTypeJava < FileType
|
52
52
|
include Singleton
|
53
|
-
def initialize(ext=
|
53
|
+
def initialize(ext='.java')
|
54
54
|
super(ext)
|
55
55
|
@re_begin=Regexp.new(/^[ \t]*\/\*[ _]*XMDA[ _]BEGIN[ _]+reverse="(.*)"[ _]uri="(.*)"[ _]*\*\//)
|
56
56
|
@re_end=Regexp.new(/^[ \t]*\/\*[ _]*XMDA[ _]END[ _]+uri="(.*)"[ _]*\*\//)
|
@@ -61,7 +61,7 @@ class FileTypeJava < FileType
|
|
61
61
|
def thinLineComment
|
62
62
|
#return context[:thinLineComment,true] ? ('_'*60) : ''
|
63
63
|
#return "_____________________________________________________________________________________________________________________________________________"
|
64
|
-
return
|
64
|
+
return ''
|
65
65
|
end
|
66
66
|
def beginMarker(uri,reverse)
|
67
67
|
return %{\n/*XMDA_BEGIN_reverse="#{reverse ? 'yes':'no'}"_#{thinLineComment}uri="#{uri}"_*/\n}
|
@@ -76,7 +76,7 @@ FileTypeJava.instance # register
|
|
76
76
|
class FileTypeXML < FileType
|
77
77
|
# a character that can not exist in a URI
|
78
78
|
URI_ESCAPE_CHAR_ONE='°'
|
79
|
-
def initialize(ext=
|
79
|
+
def initialize(ext='.xml')
|
80
80
|
super(ext)
|
81
81
|
@re_begin=/^[ \t]*<\!-- *XMDA BEGIN +reverse="([^"]*)" uri="([^"]*)" *-->/
|
82
82
|
@re_end=/^[ \t]*<\!-- *XMDA END +uri="([^"]*)" *-->/
|
@@ -100,14 +100,14 @@ end
|
|
100
100
|
FileTypeXML.instance # register
|
101
101
|
|
102
102
|
class FileTypeXSD < FileTypeXML
|
103
|
-
def initialize(ext=
|
103
|
+
def initialize(ext='.xsd')
|
104
104
|
super
|
105
105
|
end
|
106
106
|
end
|
107
107
|
FileTypeXSD.instance # register
|
108
108
|
|
109
109
|
class FileTypeJavaProperties < FileType
|
110
|
-
def initialize(ext=
|
110
|
+
def initialize(ext='.properties')
|
111
111
|
super(ext)
|
112
112
|
@re_begin=/^[ \t]*#[_ ]*XMDA_BEGIN_reverse="([^"]*)"_uri="([^"]*)"[ _]*$/
|
113
113
|
@re_end=/^[ \t]*#[ _]*XMDA_END_uri="([^"]*)"[ _]*$/
|
@@ -129,7 +129,7 @@ FileTypeJavaProperties.instance # register
|
|
129
129
|
|
130
130
|
class FileTypeJSP < FileType
|
131
131
|
include Singleton
|
132
|
-
def initialize(ext=
|
132
|
+
def initialize(ext='.jsp')
|
133
133
|
super(ext)
|
134
134
|
@re_begin=Regexp.new(/^[ \t]*<%--*[ _]*XMDA[ _]BEGIN[ _]*reverse="(.*)"[ _]uri="(.*)"[ _]*--%>/)
|
135
135
|
@re_end=Regexp.new(/^[ \t]*<%--[ _]*XMDA[ _]END[ _]*uri="(.*)"[ _]*--%>/)
|
@@ -140,7 +140,7 @@ class FileTypeJSP < FileType
|
|
140
140
|
def thinLineComment
|
141
141
|
#return context[:thinLineComment,true] ? ('_'*60) : ''
|
142
142
|
#return "_____________________________________________________________________________________________________________________________________________"
|
143
|
-
return
|
143
|
+
return ''
|
144
144
|
end
|
145
145
|
def beginMarker(uri,reverse)
|
146
146
|
return %{\n<%--_XMDA_BEGIN_reverse="#{reverse ? 'yes':'no'}"_#{thinLineComment}uri="#{uri}"_--%>\n}
|
data/lib/ontomde-core/helper.rb
CHANGED
@@ -89,7 +89,7 @@ module Mmtk_helper
|
|
89
89
|
end
|
90
90
|
|
91
91
|
#mtk_writeSession temporary file suffix.
|
92
|
-
TEMP_FILE_SUFFIX=
|
92
|
+
TEMP_FILE_SUFFIX='.xmda_toolkit_temporary'
|
93
93
|
|
94
94
|
@@max_file_logged=30
|
95
95
|
|
@@ -123,7 +123,7 @@ module Mmtk_helper
|
|
123
123
|
|
124
124
|
#if a file exist named fileName.mda, then write to this
|
125
125
|
#file instead of fileName
|
126
|
-
divert=fileName+
|
126
|
+
divert=fileName+'.mda'
|
127
127
|
if (File.exists?(divert))
|
128
128
|
fileType=FileType.getFileType(fileName) if fileType.nil?
|
129
129
|
fileName=divert
|
@@ -160,8 +160,8 @@ module Mmtk_helper
|
|
160
160
|
unusedData=protectedReverse.unusedData
|
161
161
|
if(!unusedData.nil?)
|
162
162
|
log.info { "warning: saved code appended to #{fileName}.mtk_save" }
|
163
|
-
msg=
|
164
|
-
File.open(fileName+
|
163
|
+
msg=''
|
164
|
+
File.open(fileName+'.mtk_save',File::CREAT|File::APPEND|File::RDWR, 0644) { |file|
|
165
165
|
unusedData.each {|k|
|
166
166
|
msg=msg+%{\n ** uri="#{k}"}
|
167
167
|
file.write <<END
|
@@ -198,7 +198,7 @@ You must take the appropriate actions before re-running generator.
|
|
198
198
|
***************************************************************
|
199
199
|
}}
|
200
200
|
#exit(1)
|
201
|
-
raise Exception.new(
|
201
|
+
raise Exception.new('potential code loss detected')
|
202
202
|
end
|
203
203
|
|
204
204
|
end
|
@@ -216,7 +216,7 @@ You must take the appropriate actions before re-running generator.
|
|
216
216
|
# We just wait a few seconds and try again.
|
217
217
|
#raise IOException.new(),"KO" if retryCount<2
|
218
218
|
File.rename(fileName+TEMP_FILE_SUFFIX,fileName)
|
219
|
-
puts
|
219
|
+
puts 'Retry succeeded.' if retryCount>0
|
220
220
|
break # exit while
|
221
221
|
rescue => e
|
222
222
|
retryCount=retryCount+1
|
@@ -286,10 +286,20 @@ You must take the appropriate actions before re-running generator.
|
|
286
286
|
#
|
287
287
|
#EXAMPLE.
|
288
288
|
# encloseWrite("<title>","</title>") { write "Today news" }
|
289
|
-
def encloseWrite(beforeStr,afterStr,&middleBlock)
|
290
|
-
|
291
|
-
|
292
|
-
|
289
|
+
def encloseWrite(beforeStr,afterStr,stealth=false,&middleBlock)
|
290
|
+
if(stealth)
|
291
|
+
s=mtk_stss { yield }
|
292
|
+
return false if s.nil? || s.empty?
|
293
|
+
write(beforeStr.to_s)
|
294
|
+
write(s)
|
295
|
+
write(afterStr.to_s)
|
296
|
+
return true
|
297
|
+
else
|
298
|
+
write(beforeStr.to_s)
|
299
|
+
yield
|
300
|
+
write(afterStr.to_s)
|
301
|
+
return nil
|
302
|
+
end
|
293
303
|
end
|
294
304
|
|
295
305
|
# Write string to the current file opened by mtk_writeSession.
|
@@ -339,7 +349,16 @@ END
|
|
339
349
|
if context[:hasGlobalReverse,false]
|
340
350
|
if context[:globalReverseFile]!=fileName
|
341
351
|
return true if context[:reversedFiles].include?(File.basename(fileName))
|
342
|
-
|
352
|
+
if mtk_shouldAlreadyBeenReversed(fileName)
|
353
|
+
msg=<<END
|
354
|
+
|
355
|
+
FILENAME="#{fileName}" File.exists?=#{File.exists?(fileName)}
|
356
|
+
$FILENAME should have been reversed by batch reverse process and it has not.
|
357
|
+
This may be caused by an internal error or a platform limitation.
|
358
|
+
You should know that there is a length limit for paths and your fileName is #{fileName.length} character long. You may consider reducing packages depths and shortening names for reducing global fileName length.
|
359
|
+
END
|
360
|
+
raise Warning.new,msg
|
361
|
+
end
|
343
362
|
else
|
344
363
|
globalFile=true
|
345
364
|
endFilesName=false
|
@@ -360,13 +379,13 @@ END
|
|
360
379
|
|
361
380
|
if globalFile && !endFilesExtension
|
362
381
|
if !endFilesName
|
363
|
-
if line.include?(
|
382
|
+
if line.include?('End_Files_Name')
|
364
383
|
endFilesName=true
|
365
384
|
else
|
366
385
|
context[:reversedFiles].concat(line[0,line.size-1].split(','))
|
367
386
|
end
|
368
387
|
else
|
369
|
-
if line.include?(
|
388
|
+
if line.include?('End_Files_Extension')
|
370
389
|
endFilesExtension=true
|
371
390
|
else
|
372
391
|
context[:requireReverseExtensions].concat(line[0,line.size-1].split(','))
|
@@ -422,7 +441,7 @@ ENDERRORMSG
|
|
422
441
|
qualified_block_uri=block_uri
|
423
442
|
context[:reverseGlobalMap][qualified_block_uri]=buffer
|
424
443
|
end
|
425
|
-
open(
|
444
|
+
open('reverse.log','a') {|r|
|
426
445
|
r.write("\n### reverse #{qualified_block_uri}\n")
|
427
446
|
r.write( "#{buffer} #{buffer.length}")
|
428
447
|
} #unless context[:logFileReverse].nil?
|
@@ -494,15 +513,17 @@ module Mmtk_helper #_Resource
|
|
494
513
|
# }
|
495
514
|
def mtk_protected(initialReverseMode=false,zoneId='0',noMarker=false, &block)
|
496
515
|
#mbu=mtk_block_uri
|
497
|
-
raise Exception.new(
|
516
|
+
raise Exception.new('Bad parameter') if initialReverseMode!=false && initialReverseMode!=true
|
498
517
|
mbu="#{rdf_uri}__#{zoneId}"
|
499
518
|
qualified_uri=rdf_Repository.mtk_qualifyBlockURI(mbu)
|
500
519
|
|
501
520
|
fileType=context[:protectedReverse].fileType
|
502
521
|
|
503
|
-
str=
|
522
|
+
str=nil
|
504
523
|
if context[:hasGlobalReverse,false]
|
505
524
|
str=context[:reverseGlobalMap][qualified_uri]
|
525
|
+
else
|
526
|
+
str=context[:protectedReverse][qualified_uri]
|
506
527
|
end
|
507
528
|
|
508
529
|
reverse= (!str.nil?) || initialReverseMode
|
@@ -557,7 +578,7 @@ module Mmtk_helper #_Resource
|
|
557
578
|
|
558
579
|
def mtk_annotation(initialReverseMode=false,zonesId=['annotations'],noMarker=false)
|
559
580
|
#mbu=mtk_block_uri
|
560
|
-
raise Exception.new(
|
581
|
+
raise Exception.new('Bad parameter') if initialReverseMode!=false && initialReverseMode!=true
|
561
582
|
|
562
583
|
if !noMarker
|
563
584
|
revAnno=''
|
@@ -580,14 +601,18 @@ module Mmtk_helper #_Resource
|
|
580
601
|
if reverse
|
581
602
|
nothingReverse = false
|
582
603
|
revAnno+=del
|
583
|
-
del=','
|
604
|
+
del=', '
|
584
605
|
if zone=='0'
|
585
606
|
revAnno+='code'
|
586
607
|
else
|
587
608
|
if zone=='annoparam0'
|
588
609
|
revAnno+='anno_param'
|
589
610
|
else
|
590
|
-
|
611
|
+
if zone=='custom_code'
|
612
|
+
revAnno+='custom'
|
613
|
+
else
|
614
|
+
revAnno+=zone
|
615
|
+
end
|
591
616
|
end
|
592
617
|
end
|
593
618
|
end
|
@@ -596,8 +621,8 @@ module Mmtk_helper #_Resource
|
|
596
621
|
if nothingReverse then
|
597
622
|
revAnno = 'nothing'
|
598
623
|
end
|
599
|
-
|
600
|
-
write("@OntoMDE(reverse={#{revAnno}},uri
|
624
|
+
write("\t") # good for methods and attributes
|
625
|
+
write("@OntoMDE(reverse = { #{revAnno} }, uri = \"#{rdf_uri}\")\n")
|
601
626
|
end
|
602
627
|
end
|
603
628
|
|
data/lib/ontomde-core/log.rb
CHANGED
data/lib/ontomde-core/meta.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
|
2
2
|
#require "ontomde-core/exceptions.rb"
|
3
|
-
require
|
3
|
+
require 'singleton'
|
4
4
|
|
5
5
|
# Helper methods to handle rdf ressources as object.
|
6
6
|
module IteratorOrSingleElement
|
7
7
|
def to_s
|
8
|
-
r=
|
9
|
-
sep=
|
8
|
+
r=''
|
9
|
+
sep=''
|
10
10
|
self.each{ |elt|
|
11
11
|
r=r+sep+(elt.to_s)
|
12
|
-
sep=
|
12
|
+
sep=' '
|
13
13
|
}
|
14
14
|
return r
|
15
15
|
end
|
@@ -21,7 +21,7 @@ module IteratorOrSingleElement
|
|
21
21
|
return super(array)
|
22
22
|
end
|
23
23
|
|
24
|
-
STRING_TO_BOOLEAN_HASH={
|
24
|
+
STRING_TO_BOOLEAN_HASH={ 'false' => false, 'true' => true}
|
25
25
|
def other_implem_isTrue?
|
26
26
|
return false if length==0
|
27
27
|
raise Warning.new,"bad data for isTrue?(length=#{length}>1)" if length>1
|
@@ -33,8 +33,8 @@ module IteratorOrSingleElement
|
|
33
33
|
#return false if length==0
|
34
34
|
return false if empty?
|
35
35
|
raise Warning.new,"bad data for isTrue?(length=#{length}>1)" if length>1
|
36
|
-
return false if self[0]==
|
37
|
-
return true if self[0]==
|
36
|
+
return false if self[0]=='false'
|
37
|
+
return true if self[0]=='true'
|
38
38
|
raise Warning.new,"bad data for isTrue?(#{self[0]})" if length>1
|
39
39
|
|
40
40
|
end
|
@@ -89,7 +89,7 @@ class ArrayOrSingleElementEmpty #< ArrayOrSingleElement
|
|
89
89
|
|
90
90
|
# returns ""
|
91
91
|
def to_s
|
92
|
-
return
|
92
|
+
return ''
|
93
93
|
end
|
94
94
|
|
95
95
|
#return true
|
@@ -273,12 +273,12 @@ END
|
|
273
273
|
}
|
274
274
|
|
275
275
|
|
276
|
-
range_array=
|
276
|
+
range_array='['; sep=''
|
277
277
|
range.each { |r|
|
278
278
|
range_array+=sep+r.name #.getRubyModuleName
|
279
|
-
sep=
|
279
|
+
sep=','
|
280
280
|
}
|
281
|
-
range_array+=
|
281
|
+
range_array+=']'
|
282
282
|
|
283
283
|
if (true)
|
284
284
|
ret << %{def #{sym_short}_typeOk?(val)
|
@@ -307,7 +307,7 @@ END
|
|
307
307
|
return rdf_getter_one(@#{sym},false,:#{sym_short})
|
308
308
|
end}
|
309
309
|
|
310
|
-
inv=(sym_short.to_s==
|
310
|
+
inv=(sym_short.to_s=='ext_isReferencedBy') ? '' : 'item.ext_isReferencedBy_add(self) if item.respond_to?(:ext_isReferencedBy_add) '
|
311
311
|
|
312
312
|
ret << %{def #{sym_short}=(v)
|
313
313
|
if v.nil?
|
@@ -348,10 +348,10 @@ end
|
|
348
348
|
|
349
349
|
module Mrdf_Repository
|
350
350
|
def mtk_object_message
|
351
|
-
return
|
351
|
+
return ''
|
352
352
|
end
|
353
353
|
def mtk_related_message
|
354
|
-
return
|
354
|
+
return ''
|
355
355
|
end
|
356
356
|
end
|
357
357
|
|
@@ -368,7 +368,7 @@ END
|
|
368
368
|
#return a string describing object related to this object
|
369
369
|
#(used for error log messages)
|
370
370
|
def mtk_related_message
|
371
|
-
related=
|
371
|
+
related=''
|
372
372
|
ext_isReferencedBy.each { |g|
|
373
373
|
related=related+"** (#{g.class.name}) #{g}\n"
|
374
374
|
}
|