Class: Jaspion::Kilza::Java::Property
- Inherits:
-
Property
- Object
- Property
- Jaspion::Kilza::Java::Property
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
#gson ⇒ Object
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_name ⇒ Object
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
|
#constants ⇒ Object
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
|
#declaration ⇒ Object
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
|
#getter ⇒ Object
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_array ⇒ Object
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_element ⇒ Object
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_json ⇒ Object
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_parcel ⇒ Object
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
|
#setter ⇒ Object
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_parcel ⇒ Object
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
|