lib/jaspion/kilza/language/java.rb in jaspion-kilza-1.0.9 vs lib/jaspion/kilza/language/java.rb in jaspion-kilza-1.1.0

- old
+ new

@@ -22,10 +22,74 @@ end end module Jaspion module Kilza + class Java + class Property < Jaspion::Kilza::Property + + def json_key + return ' private static final String FIELD_' + + @name.upcase + ' = "' + @original_name + '";' + end + + def declaration + r = %( @Expose + @SerializedName(FIELD_#{@name.upcase}) +) + + if array? + r + " private ArrayList<#{@type}> #{@name};" + else + r + " private #{@type} #{@name};" + end + end + + def parse_element + if object? + " this.#{@name} = new #{@type}(object.optJSONObject(FIELD_#{@name.upcase}));" + elsif null? + " this.#{@name} = object.opt(FIELD_#{@name.upcase});" + else + " this.#{@name} = object.opt#{@type}(FIELD_#{@name.upcase});" + end + end + + def parse_array + r = %( if (object.optJSONArray(FIELD_#{@name.upcase}) != null) + { + this.#{@name} = new ArrayList<>(); + JSONArray #{@name}JsonArray = object.optJSONArray(FIELD_#{@name.upcase}); + for (int i = 0; i < #{@name}JsonArray.length(); i++) { + ) + + if object? || null? + r = r + " JSONObject #{@name} = #{@name}JsonArray.optJSONObject(i);" + else + r = r + " #{@type} #{@name} = #{@name}JsonArray.optJSON#{@type}(i);" + end + r = r + %( + this.#{@name}.add(new #{@type}(#{@name})); + } + }) + return r + end + + def parse_json + if array? + parse_array + else + parse_element + end + end + end + end + end +end + +module Jaspion + module Kilza # Objective-C Language parser class Java include Jaspion::Kilza::Language def initialize(json_string) @@ -52,9 +116,17 @@ @equal_keys = %w(id identifier uid) end def clazz(name) 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? + prop = Jaspion::Kilza::Java::Property.new(name , type, array, key) + prop.original_name = original_name + prop end def classes(class_name) super(class_name)