Top Level Namespace
Defined Under Namespace
Classes: EClassClassAdapter, EClassClassMethodAdapter, EClassFieldAdapter
Constant Summary
collapse
- EObject =
org.eclipse.emf.ecore.EObject
- JavaResource =
org.emftext.language.java.resource.java.mopp.JavaResource
- JavaResourceUtil =
org.emftext.language.java.resource.java.util.JavaResourceUtil
- EcoreUtil =
org.eclipse.emf.ecore.util.EcoreUtil
- IJavaOptions =
org.emftext.language.java.resource.java.IJavaOptions
Instance Method Summary
collapse
Instance Method Details
#all_deep_content(root) ⇒ Object
41
42
43
44
45
46
47
48
|
# File 'lib/java_model/java_to_json.rb', line 41
def all_deep_content(root)
contents = []
all_direct_content(root).each do |c|
contents << c
contents.concat(all_deep_content(c))
end
contents
end
|
#all_direct_content(root) ⇒ Object
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/java_model/java_to_json.rb', line 24
def all_direct_content(root)
contents = []
root.keys.each do |k|
if k.start_with? 'relcont_' and root[k]
if root[k].is_a? Array
root[k].each do |c|
contents << c
end
else
contents << root[k]
end
end
end
contents
end
|
#create_resource_set ⇒ Object
7
8
9
10
11
12
13
|
# File 'lib/java_model/java_to_json.rb', line 7
def create_resource_set()
resource_set = org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.new
resource_set.getLoadOptions.put(IJavaOptions.DISABLE_LAYOUT_INFORMATION_RECORDING,true)
rf = org.emftext.language.java.resource.java.mopp.JavaResourceFactory.new
resource_set.getResourceFactoryRegistry.getExtensionToFactoryMap.put('java',rf)
resource_set
end
|
#eobject_class_qname(clazz) ⇒ Object
19
20
21
22
|
# File 'lib/java_model/java_to_json.rb', line 19
def eobject_class_qname(clazz)
raise "not implemented (ParentConcreteClassifier: #{clazz.getParentConcreteClassifier}" if clazz.getParentConcreteClassifier!=clazz
clazz.getContainingPackageName.join('.')+"."+clazz.name
end
|
#field_from_getter(getter) ⇒ Object
81
82
83
84
85
86
87
88
89
90
91
92
|
# File 'lib/java_model/java_to_json.rb', line 81
def field_from_getter(getter)
if (getter.name.start_with? 'get' and getter.name.length>3) or (getter.name.start_with? 'is' and getter.name.length>2)
field_name = getter.name.slice(3,1).downcase + getter.name.slice(4..-1) if getter.name.start_with? 'get'
field_name = getter.name.slice(2,1).downcase + getter.name.slice(3..-1) if getter.name.start_with? 'is'
fields = getter.eContainer.members.select {|m| m.java_kind_of? org.emftext.language.java.members.Field}
field = fields.find {|f| f.name==field_name}
return field
else
return nil
end
end
|
#field_from_setter(setter) ⇒ Object
94
95
96
97
98
99
100
101
102
103
104
105
|
# File 'lib/java_model/java_to_json.rb', line 94
def field_from_setter(setter)
if setter.name.start_with? 'set' and setter.name.length>3
field_name = setter.name.slice(3,1).downcase + setter.name.slice(4..-1) if setter.name.start_with? 'set'
fields = setter.eContainer.members.select {|m| m.java_kind_of? org.emftext.language.java.members.Field}
field = fields.find {|f| f.name==field_name}
return field
else
return nil
end
end
|
#get_deep_content_of_type(root, type) ⇒ Object
50
51
52
|
# File 'lib/java_model/java_to_json.rb', line 50
def get_deep_content_of_type(root,type)
all_deep_content(root).select {|o| o['type']==type}
end
|
#get_resource(resource_set, path) ⇒ Object
15
16
17
|
# File 'lib/java_model/java_to_json.rb', line 15
def get_resource(resource_set,path)
resource_set.getResource(org.eclipse.emf.common.util.URI.createFileURI(path),true)
end
|
#get_specific_deep_content(root, type, &block) ⇒ Object
54
55
56
|
# File 'lib/java_model/java_to_json.rb', line 54
def get_specific_deep_content(root,type,&block)
get_deep_content_of_type(root,type).find &block
end
|
#getter(field) ⇒ Object
66
67
68
69
70
71
72
|
# File 'lib/java_model/java_to_json.rb', line 66
def getter(field)
getter_nb_name = 'get' + field.name.slice(0,1).capitalize + field.name.slice(1..-1)
getter_b_name = 'is' + field.name.slice(0,1).capitalize + field.name.slice(1..-1)
methods = field.eContainer.members.select {|m| m.java_kind_of? org.emftext.language.java.members.ClassMethod}
getter = methods.find {|m| m.name==getter_b_name or m.name==getter_nb_name}
getter
end
|
#jsonize_java_obj(root) ⇒ Object
133
134
135
136
137
138
|
# File 'lib/java_model/java_to_json.rb', line 133
def jsonize_java_obj(root)
jsonize_obj(root,{
'http://www.emftext.org/java/classifiers#Class'=> EClassClassAdapter.new,
'http://www.emftext.org/java/members#ClassMethod'=> EClassClassMethodAdapter.new,
'http://www.emftext.org/java/members#Field'=> EClassFieldAdapter.new})
end
|
#setter(field) ⇒ Object
74
75
76
77
78
79
|
# File 'lib/java_model/java_to_json.rb', line 74
def setter(field)
setter_name = 'set' + field.name.slice(0,1).capitalize + field.name.slice(1..-1)
methods = field.eContainer.members.select {|m| m.java_kind_of? org.emftext.language.java.members.ClassMethod}
setter = methods.find {|m| m.name==setter_name}
setter
end
|
#translate_dir(src, dest, src_extension, dest_extension, &translate_file) ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/java_model/generate.rb', line 26
def translate_dir(src,dest,src_extension,dest_extension,&translate_file)
puts "== #{src} -> #{dest} ==" if $VERBOSE
Dir["#{src}/*"].each do |fd|
if File.directory? fd
basename = File.basename(fd)
translate_dir("#{src}/#{basename}","#{dest}/#{basename}",src_extension,dest_extension,&translate_file)
else
if File.extname(fd)==".#{src_extension}"
translated_simple_name = "#{File.basename(fd, ".#{src_extension}")}.#{dest_extension}"
translated_name = "#{dest}/#{translated_simple_name}"
puts "* #{fd} --> #{translated_name}" if $VERBOSE
translate_file.call(fd,translated_name)
end
end
end
end
|