@@ -19,8 +19,10 @@ Local<Value> FieldAccessor::GetJavaField(Isolate* isolate, const Local<Object>&
1919
2020 JniLocalRef targetJavaObject;
2121
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 ;
2426
2527 auto isPrimitiveType = fieldTypeName.size () == 1 ;
2628 auto isFieldArray = fieldTypeName[0 ] == ' [' ;
@@ -35,11 +37,11 @@ Local<Value> FieldAccessor::GetJavaField(Isolate* isolate, const Local<Object>&
3537 (" L" + fieldTypeName + " ;" ));
3638
3739 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);
4042 } 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);
4345 }
4446 }
4547
@@ -48,7 +50,7 @@ Local<Value> FieldAccessor::GetJavaField(Isolate* isolate, const Local<Object>&
4850
4951 if (targetJavaObject.IsNull ()) {
5052 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" ;
5254 throw NativeScriptException (ss.str ());
5355 }
5456 }
@@ -186,14 +188,17 @@ Local<Value> FieldAccessor::GetJavaField(Isolate* isolate, const Local<Object>&
186188void FieldAccessor::SetJavaField (Isolate* isolate, const Local<Object>& target, const Local<Value>& value, FieldCallbackData* fieldData) {
187189 JEnv env;
188190
191+ auto &fieldMetadata = fieldData->metadata ;
192+
189193 HandleScope handleScope (isolate);
190194 auto runtime = Runtime::GetRuntime (isolate);
191195 auto objectManager = runtime->GetObjectManager ();
192196
193197 JniLocalRef targetJavaObject;
194198
195- const auto & fieldTypeName = fieldData->signature ;
196- auto isStatic = fieldData->isStatic ;
199+ const auto & fieldTypeName = fieldMetadata.getSig ();
200+ auto isStatic = fieldMetadata.isStatic ;
201+
197202
198203 auto isPrimitiveType = fieldTypeName.size () == 1 ;
199204 auto isFieldArray = fieldTypeName[0 ] == ' [' ;
@@ -208,14 +213,14 @@ void FieldAccessor::SetJavaField(Isolate* isolate, const Local<Object>& target,
208213 (" L" + fieldTypeName + " ;" ));
209214
210215 if (isStatic) {
211- fieldData->clazz = env.FindClass (fieldData-> declaringType );
216+ fieldData->clazz = env.FindClass (fieldMetadata. getDeclaringType () );
212217 assert (fieldData->clazz != nullptr );
213- fieldData->fid = env.GetStaticFieldID (fieldData->clazz , fieldData-> name , fieldJniSig);
218+ fieldData->fid = env.GetStaticFieldID (fieldData->clazz , fieldMetadata. name , fieldJniSig);
214219 assert (fieldData->fid != nullptr );
215220 } else {
216- fieldData->clazz = env.FindClass (fieldData-> declaringType );
221+ fieldData->clazz = env.FindClass (fieldMetadata. getDeclaringType () );
217222 assert (fieldData->clazz != nullptr );
218- fieldData->fid = env.GetFieldID (fieldData->clazz , fieldData-> name , fieldJniSig);
223+ fieldData->fid = env.GetFieldID (fieldData->clazz , fieldMetadata. name , fieldJniSig);
219224 assert (fieldData->fid != nullptr );
220225 }
221226 }
@@ -225,7 +230,7 @@ void FieldAccessor::SetJavaField(Isolate* isolate, const Local<Object>& target,
225230
226231 if (targetJavaObject.IsNull ()) {
227232 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" ;
229234 throw NativeScriptException (ss.str ());
230235 }
231236 }
0 commit comments