Class: Jaspion::Kilza::Java::Property

Inherits:
Property
  • Object
show all
Defined in:
lib/jaspion/kilza/language/java/property.rb

Instance Attribute Summary collapse

Attributes inherited from Property

#array, #key, #name, #original_name, #original_type, #type

Instance Method Summary collapse

Methods inherited from Property

#==, #boolean?, clean, #fixnum?, #float?, normalize, #null?, #object?, #to_s

Constructor Details

#initialize(name, type, array, key) ⇒ Property

Returns a new instance of Property.



9
10
11
12
13
14
15
16
# File 'lib/jaspion/kilza/language/java/property.rb', line 9

def initialize(name, type, array, key)
  original_name = name
  name = RESERVED_PROPERTY_PREFIX + name unless RESERVED_WORDS.index(name).nil?
  super(name, type, array, key)

  @original_name = original_name
  @serializable = true
end

Instance Attribute Details

#gsonObject Also known as: gson?

Returns the value of attribute gson.



6
7
8
# File 'lib/jaspion/kilza/language/java/property.rb', line 6

def gson
  @gson
end

Instance Method Details

#class_nameObject



18
19
20
21
22
# File 'lib/jaspion/kilza/language/java/property.rb', line 18

def class_name
  class_name = super
  class_name = class_name + RESERVED_CLASS_POSFIX unless RESERVED_WORDS.index(class_name.downcase).nil?
  class_name
end

#constantsObject



24
25
26
27
# File 'lib/jaspion/kilza/language/java/property.rb', line 24

def constants
  return '    private static final String FIELD_' +
  @name.upcase + ' = "' + @original_name + '";'
end

#declarationObject



65
66
67
68
69
70
71
72
73
74
# File 'lib/jaspion/kilza/language/java/property.rb', line 65

def declaration
  r = ''
  r << "    @Expose\n" if gson?
  r << "    @SerializedName(FIELD_#{@name.upcase})\n" if gson?
  if array?
    r + "    private ArrayList<#{@type}> #{@name};"
  else
    r + "    private #{@type} #{@name};"
  end
end

#getterObject



126
127
128
129
130
131
132
133
134
135
136
137
138
# File 'lib/jaspion/kilza/language/java/property.rb', line 126

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

#parse_arrayObject



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/jaspion/kilza/language/java/property.rb', line 86

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

#parse_elementObject



76
77
78
79
80
81
82
83
84
# File 'lib/jaspion/kilza/language/java/property.rb', line 76

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

#parse_jsonObject



106
107
108
109
110
111
112
# File 'lib/jaspion/kilza/language/java/property.rb', line 106

def parse_json
  if array?
    parse_array
  else
    parse_element
  end
end

#read_parcelObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/jaspion/kilza/language/java/property.rb', line 29

def read_parcel
  r = ''
  if array?
    if object?
      r = "in.readTypedList(#{@name}, #{class_name}.CREATOR);"
    else
      r = "#{@name} = in.readArrayList(null);"
    end
  elsif object?
    r = "#{@name} = (#{class_name}) in.readParcelable(#{class_name}.class.getClassLoader());"
  elsif boolean?
    r = "#{@name} = in.readByte() != 0;"
  else
    r = "#{@name} = in.read#{type}();"
  end
  r
end

#setterObject



114
115
116
117
118
119
120
121
122
123
124
# File 'lib/jaspion/kilza/language/java/property.rb', line 114

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

#write_parcelObject



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/jaspion/kilza/language/java/property.rb', line 47

def write_parcel
  r = ''
  if array?
    if object?
      r = "out.writeTypedList(#{@name});"
    else
      r = "out.writeList(#{@name});"
    end
  elsif object?
    r = "out.writeParcelable(#{@name}, flags);"
  elsif boolean?
    r = "out.writeByte((byte) (#{name} ? 1 : 0));"
  else
    r = "out.write#{type}(#{name});"
  end
  r
end