lib/jaspion/kilza/language/java.rb in jaspion-kilza-1.1.0 vs lib/jaspion/kilza/language/java.rb in jaspion-kilza-1.1.1
- old
+ new
@@ -9,10 +9,11 @@
# Represents the Java class package
attr_accessor :package
def initialize(name, package = nil)
super(name)
+ @name = @name + RESERVED_CLASS_POSFIX unless RESERVED_WORDS.index(name.downcase).nil?
@package = package
end
def sources
[code('java', 'java')]
@@ -25,11 +26,11 @@
module Jaspion
module Kilza
class Java
class Property < Jaspion::Kilza::Property
- def json_key
+ def constants
return ' private static final String FIELD_' +
@name.upcase + ' = "' + @original_name + '";'
end
def declaration
@@ -79,10 +80,36 @@
parse_array
else
parse_element
end
end
+
+ def setter
+ newname = @name.gsub(/_*(.+)/) { $1 }.capitalize
+ r = StringIO.new
+ if array?
+ r << "public void set#{newname}(ArrayList<#{@type}> value) {"
+ else
+ r << "public void set#{newname}(#{@type} value) {"
+ end
+ r << "\n this.#{@name} = value;\n }"
+ r.string
+ end
+
+ def getter
+ newname = @name.gsub(/_*(.+)/) { $1 }.capitalize
+ r = StringIO.new
+ if array?
+ r << "public ArrayList<#{@type}> get#{@name.capitalize}() {"
+ elsif boolean?
+ r << "public #{@type} is#{newname}() {"
+ else
+ r << "public #{@type} get#{newname}() {"
+ end
+ r << "\n return this.#{@name};\n }"
+ r.string
+ end
end
end
end
end
@@ -90,21 +117,23 @@
module Kilza
# Objective-C Language parser
class Java
include Jaspion::Kilza::Language
+ RESERVED_PROPERTY_PREFIX = '_'
+ RESERVED_CLASS_POSFIX = 'Class'
+ RESERVED_WORDS = %w(
+ abstract continue for new switch assert default goto,
+ package synchronized boolean do if private this break double implements,
+ protected throw byte else import public throws case enum instanceof,
+ null return transient catch extends int short try char final interface static,
+ void class finally long strictfp volatile const float native super while
+ )
+
def initialize(json_string)
super(json_string)
- @reserved_words = %w(
- abstract continue for new switch assert default goto,
- package synchronized boolean do if private this break double implements,
- protected throw byte else import public throws case enum instanceof,
- null return transient catch extends int short try char final interface static,
- void class finally long strictfp volatile const float native super while
- )
-
@types = {
'nilclass' => 'Object',
'string' => 'String',
'fixnum' => 'Long',
'float' => 'Double',
@@ -120,21 +149,24 @@
Jaspion::Kilza::Java::Class.new(name)
end
def property(name, type, array, key)
original_name = name
- name = @reserved_delimiter + name unless @reserved_words.index(name).nil?
+ name = RESERVED_PROPERTY_PREFIX + name unless RESERVED_WORDS.index(name).nil?
prop = Jaspion::Kilza::Java::Property.new(name , type, array, key)
prop.original_name = original_name
prop
end
def classes(class_name)
super(class_name)
@classes.each do |cl|
cl.properties.each do |pr|
- pr.type = pr.name.capitalize if pr.object? || (pr.array? && pr.null?)
+ name = Kilza.clean(pr.original_name)
+ name[0] = name[0].capitalize
+ name = name + RESERVED_CLASS_POSFIX unless RESERVED_WORDS.index(name.downcase).nil?
+ pr.type = name if pr.object? || (pr.array? && pr.null?)
cl.imports.push('import java.util.ArrayList;') if pr.array? &&
cl.imports.index('import java.util.ArrayList;').nil?
pr.type = @types[pr.type] unless @types[pr.type].nil?