@@ -19,8 +19,10 @@ Local<Value> FieldAccessor::GetJavaField(Isolate* isolate, const Local<Object>&
19
19
20
20
JniLocalRef targetJavaObject;
21
21
22
- const auto & fieldTypeName = fieldData->signature ;
23
- auto isStatic = fieldData->isStatic ;
22
+ auto &fieldMetadata = fieldData->metadata ;
23
+
24
+ const auto & fieldTypeName = fieldMetadata.getSig ();
25
+ auto isStatic = fieldMetadata.isStatic ;
24
26
25
27
auto isPrimitiveType = fieldTypeName.size () == 1 ;
26
28
auto isFieldArray = fieldTypeName[0 ] == ' [' ;
@@ -35,11 +37,11 @@ Local<Value> FieldAccessor::GetJavaField(Isolate* isolate, const Local<Object>&
35
37
(" L" + fieldTypeName + " ;" ));
36
38
37
39
if (isStatic) {
38
- fieldData->clazz = env.FindClass (fieldData-> declaringType );
39
- fieldData->fid = env.GetStaticFieldID (fieldData->clazz , fieldData-> name , fieldJniSig);
40
+ fieldData->clazz = env.FindClass (fieldMetadata. getDeclaringType () );
41
+ fieldData->fid = env.GetStaticFieldID (fieldData->clazz , fieldMetadata. name , fieldJniSig);
40
42
} else {
41
- fieldData->clazz = env.FindClass (fieldData-> declaringType );
42
- fieldData->fid = env.GetFieldID (fieldData->clazz , fieldData-> name , fieldJniSig);
43
+ fieldData->clazz = env.FindClass (fieldMetadata. getDeclaringType () );
44
+ fieldData->fid = env.GetFieldID (fieldData->clazz , fieldMetadata. name , fieldJniSig);
43
45
}
44
46
}
45
47
@@ -48,7 +50,7 @@ Local<Value> FieldAccessor::GetJavaField(Isolate* isolate, const Local<Object>&
48
50
49
51
if (targetJavaObject.IsNull ()) {
50
52
stringstream ss;
51
- ss << " Cannot access property '" << fieldData-> name .c_str () << " ' because there is no corresponding Java object" ;
53
+ ss << " Cannot access property '" << fieldMetadata. name .c_str () << " ' because there is no corresponding Java object" ;
52
54
throw NativeScriptException (ss.str ());
53
55
}
54
56
}
@@ -186,14 +188,17 @@ Local<Value> FieldAccessor::GetJavaField(Isolate* isolate, const Local<Object>&
186
188
void FieldAccessor::SetJavaField (Isolate* isolate, const Local<Object>& target, const Local<Value>& value, FieldCallbackData* fieldData) {
187
189
JEnv env;
188
190
191
+ auto &fieldMetadata = fieldData->metadata ;
192
+
189
193
HandleScope handleScope (isolate);
190
194
auto runtime = Runtime::GetRuntime (isolate);
191
195
auto objectManager = runtime->GetObjectManager ();
192
196
193
197
JniLocalRef targetJavaObject;
194
198
195
- const auto & fieldTypeName = fieldData->signature ;
196
- auto isStatic = fieldData->isStatic ;
199
+ const auto & fieldTypeName = fieldMetadata.getSig ();
200
+ auto isStatic = fieldMetadata.isStatic ;
201
+
197
202
198
203
auto isPrimitiveType = fieldTypeName.size () == 1 ;
199
204
auto isFieldArray = fieldTypeName[0 ] == ' [' ;
@@ -208,14 +213,14 @@ void FieldAccessor::SetJavaField(Isolate* isolate, const Local<Object>& target,
208
213
(" L" + fieldTypeName + " ;" ));
209
214
210
215
if (isStatic) {
211
- fieldData->clazz = env.FindClass (fieldData-> declaringType );
216
+ fieldData->clazz = env.FindClass (fieldMetadata. getDeclaringType () );
212
217
assert (fieldData->clazz != nullptr );
213
- fieldData->fid = env.GetStaticFieldID (fieldData->clazz , fieldData-> name , fieldJniSig);
218
+ fieldData->fid = env.GetStaticFieldID (fieldData->clazz , fieldMetadata. name , fieldJniSig);
214
219
assert (fieldData->fid != nullptr );
215
220
} else {
216
- fieldData->clazz = env.FindClass (fieldData-> declaringType );
221
+ fieldData->clazz = env.FindClass (fieldMetadata. getDeclaringType () );
217
222
assert (fieldData->clazz != nullptr );
218
- fieldData->fid = env.GetFieldID (fieldData->clazz , fieldData-> name , fieldJniSig);
223
+ fieldData->fid = env.GetFieldID (fieldData->clazz , fieldMetadata. name , fieldJniSig);
219
224
assert (fieldData->fid != nullptr );
220
225
}
221
226
}
@@ -225,7 +230,7 @@ void FieldAccessor::SetJavaField(Isolate* isolate, const Local<Object>& target,
225
230
226
231
if (targetJavaObject.IsNull ()) {
227
232
stringstream ss;
228
- ss << " Cannot access property '" << fieldData-> name .c_str () << " ' because there is no corresponding Java object" ;
233
+ ss << " Cannot access property '" << fieldMetadata. name .c_str () << " ' because there is no corresponding Java object" ;
229
234
throw NativeScriptException (ss.str ());
230
235
}
231
236
}
0 commit comments