Esempio n. 1
0
void copyToHcpElement(JNIEnv * Env, hcp_tResult const& result, jobject& Destination)
{
			static const char* destClass = "com/husqvarnagroup/connectivity/HcpElement";

			static const char* setFamilyName = "setFamily";
			static const char* setFamilySig = "(Ljava/lang/String;)V";

			static const char* setCommandName = "setCommand";
			static const char* setCommandSig = "(Ljava/lang/String;)V";

			static const char* putName = "put";
			static const char* putSig = "(Ljava/lang/String;Ljava/lang/Object;)V";

			jclass java_class = Env->FindClass(destClass);

			if(java_class != NULL) {
				jmethodID setFamily = Env->GetMethodID(java_class, setFamilyName, setFamilySig);

				if(setFamily != NULL) {
					jmethodID setCommand = Env->GetMethodID(java_class, setCommandName, setCommandSig);

					if(setCommand != NULL) {
						jmethodID put = Env->GetMethodID(java_class, putName, putSig);

						if(put != NULL) {
							auto family = toJString(Env,result.family);
							auto command = toJString(Env,result.command);
							{
								Env->CallObjectMethod(Destination, setFamily, family);
								Env->CallObjectMethod(Destination, setCommand, command);
							}

							for(hcp_Size_t i = 0;i < result.parameterCount; i++) {
								static const hcp_Size_t offset = sizeof(hcp_tParameter);
								hcp_tParameter* parameter = (hcp_tParameter*)((hcp_Size_t)result.parameters + i*offset);

								jobject value = HcpJNI_NewObject(Env, parameter);
								auto key = toJString(Env,parameter->template_->name);
								{
									Env->CallObjectMethod(Destination, put, key, value);
								}
								Env->DeleteLocalRef(value);
							}
						} else {
							throw noSuchMethodError(destClass, putName, putSig);
						}

					} else {
						throw noSuchMethodError(destClass,setCommandName, setCommandSig);
					}
				} else {
					throw noSuchMethodError(destClass,setFamilyName, setFamilySig);
				}
			} else {
				throw noClassDefError(destClass);
			}
}
Esempio n. 2
0
JString JDouble::toJStringF(double r, int w, int f) { 
  if (w <= 0) return toJString(r);
  JBlock buf(50, 0), format(50, 0);
  sprintf(format, "%%%d.%dlf", w, f);
  sprintf(buf, format, r);
  return JString(buf);
}
Esempio n. 3
0
JString JComplex::toJStringF(const jcomplex& c, int w, int f) { 
  if (w <= 0) return toJString(c);
  JBlock buf(50, 0), format(50, 0);
  sprintf(format, "%%%d.%dlf,%%%d.%dlfi", w, f, w, f);
  sprintf(buf, format, c.r, c.i);
  return JString(buf);
}
Esempio n. 4
0
boolean JFileProperty::edit(int x, int y) {
  JString ov = value;
  if (JFileBox::create(JString("Property Edit for ")+
    toJString(), value, type, x, y) == JMessageBox::OK) {
    check();
  }
  return (value != ov);
}
Esempio n. 5
0
JString JDouble::toJString() { return toJString(value);}
Esempio n. 6
0
JString JComplex::toJString() { return toJString(value);}
Esempio n. 7
0
static jobject HcpJNI_NewObject(JNIEnv * env, const hcp_tParameter* pParameter) {
	jobject value = NULL;
	hcp_tParameter* parameter = (hcp_tParameter*)pParameter;

	switch(parameter->template_->type) {
			case HCP_FLOAT_ID: {

				jclass cls = env->FindClass( "java/lang/Float");
				jmethodID id = env->GetMethodID( cls, "<init>", "(F)V");
				value = env->NewObject(cls, id, (jfloat)parameter->value.f);

			} break;
			case HCP_BOOLEAN_ID: {

				jclass cls = env->FindClass( "java/lang/Boolean");
				jmethodID id = env->GetMethodID( cls, "<init>", "(Z)V");
				value = env->NewObject(cls, id, (jboolean)parameter->value.b);

			} break;
			case HCP_SIZET_ID: {

				jclass cls = env->FindClass( "java/lang/Long");
				jmethodID id = env->GetMethodID( cls, "<init>", "(J)V");
				value = env->NewObject(cls, id, (jlong)parameter->value.sz);

			} break;
			case HCP_UINT8_ID: {

				jclass cls = env->FindClass( "java/lang/Integer");
				jmethodID id = env->GetMethodID( cls, "<init>", "(I)V");
				value = env->NewObject(cls, id, (jint)parameter->value.u8);

			} break;
			case HCP_INT8_ID: {

				jclass cls = env->FindClass( "java/lang/Byte");
				jmethodID id = env->GetMethodID( cls, "<init>", "(B)V");
				value = env->NewObject(cls, id, (jbyte)parameter->value.s8);

			} break;
			case HCP_UINT16_ID: {

				jclass cls = env->FindClass( "java/lang/Integer");
				jmethodID id = env->GetMethodID( cls, "<init>", "(I)V");
				value = env->NewObject(cls, id, (jint)parameter->value.u16);

			} break;
			case HCP_INT16_ID: {

				jclass cls = env->FindClass( "java/lang/Short");
				jmethodID id = env->GetMethodID( cls, "<init>", "(S)V");
				value = env->NewObject(cls, id, (jshort)parameter->value.i16);

			} break;
			case HCP_UINT32_ID: {

				jclass cls = env->FindClass( "java/lang/Long");
				jmethodID id = env->GetMethodID( cls, "<init>", "(J)V");
				value = env->NewObject(cls, id, (jlong)parameter->value.u32);

			} break;
			case HCP_INT32_ID: {

				jclass cls = env->FindClass( "java/lang/Integer");
				jmethodID id = env->GetMethodID( cls, "<init>", "(I)V");
				value = env->NewObject(cls, id, (jint)parameter->value.i32);

			} break;
			case HCP_UINT64_ID: {

				jclass cls = env->FindClass( "java/lang/Long");
				jmethodID id = env->GetMethodID( cls, "<init>", "(J)V");
				value = env->NewObject(cls, id, (jlong)parameter->value.u64);

			} break;
			case HCP_INT64_ID: {

				jclass cls = env->FindClass( "java/lang/Long");
				jmethodID id = env->GetMethodID( cls, "<init>", "(J)V");
				value = env->NewObject(cls, id, (jlong)parameter->value.i64);

			} break;
			case HCP_STRING_ID: {
				value = toJString(env, parameter->value.str);
			} break;
			case HCP_DOUBLE_ID: {

				jclass cls = env->FindClass( "java/lang/Double");
				jmethodID id = env->GetMethodID( cls, "<init>", "(D)V");
				value = env->NewObject(cls, id, (jdouble)parameter->value.d);

			} break;
			case HCP_BLOB_ID: {
				hcp_tBlob* blob = &parameter->value.blb;

				//value = env->NewBooleanArray( blob->length);
				value = env->NewByteArray( blob->length);

				if(value != NULL) {
					env->SetByteArrayRegion( (jbyteArray)value, 0, blob->length, reinterpret_cast<jbyte*>(blob->value));
				}
			} break;
			case HCP_UNIXTIME_ID: {

				jclass cls = env->FindClass( "java/lang/Long");
				jmethodID id = env->GetMethodID( cls, "<init>", "(J)V");
				value = env->NewObject(cls, id, (jlong)parameter->value.time);

			} break;
			case HCP_SIMPLEVERSION_ID: {

				jclass cls = env->FindClass( "java/lang/Integer");
				jmethodID id = env->GetMethodID( cls, "<init>", "(I)V");
				value = env->NewObject(cls, id, (jint)parameter->value.version);

			} break;
			default : {
				value = NULL;
			} break;
		}

	return value;
}