comparison libinterp/octave-value/ov-java.cc @ 15813:10d6ab9b1b4f

Implement octave_value function class_name() for class "octave_java" * libinterp/octave-value/ov-class.cc(Fclass): Remove special code for Java objects; Just call class_name() on octave_value object. * libinterp/octave-value/ov-java.h: Declare octave_value type functions. Rename confusing octave_java class private variable java_type to java_classname. * libinterp/octave-value/ov-java.cc: Replace tests for Java object from class_name() == "octave_java" to is_java().
author Rik <rik@octave.org>
date Tue, 18 Dec 2012 10:29:51 -0800
parents 01d4f742d75d
children f28b3dcbaa9a
comparison
equal deleted inserted replaced
15812:83bf6fd9e46d 15813:10d6ab9b1b4f
1061 octave_value 1061 octave_value
1062 box_more (JNIEnv* jni_env, jobject jobj, jclass jcls) 1062 box_more (JNIEnv* jni_env, jobject jobj, jclass jcls)
1063 { 1063 {
1064 octave_value retval = box (jni_env, jobj, jcls); 1064 octave_value retval = box (jni_env, jobj, jcls);
1065 1065
1066 if (retval.class_name () == "octave_java") 1066 if (retval.is_java ())
1067 { 1067 {
1068 retval = octave_value (); 1068 retval = octave_value ();
1069 1069
1070 jclass_ref cls (jni_env); 1070 jclass_ref cls (jni_env);
1071 1071
1151 unbox (JNIEnv* jni_env, const octave_value& val, jobject_ref& jobj, 1151 unbox (JNIEnv* jni_env, const octave_value& val, jobject_ref& jobj,
1152 jclass_ref& jcls) 1152 jclass_ref& jcls)
1153 { 1153 {
1154 int found = 1; 1154 int found = 1;
1155 1155
1156 if (val.class_name () == "octave_java") 1156 if (val.is_java ())
1157 { 1157 {
1158 octave_java *ovj = TO_JAVA (val); 1158 octave_java *ovj = TO_JAVA (val);
1159 jobj = ovj->to_java (); 1159 jobj = ovj->to_java ();
1160 jobj.detach (); 1160 jobj.detach ();
1161 jcls = jni_env->GetObjectClass (jobj); 1161 jcls = jni_env->GetObjectClass (jobj);
1512 1512
1513 // octave_java class definition 1513 // octave_java class definition
1514 1514
1515 DEFINE_OCTAVE_ALLOCATOR (octave_java); 1515 DEFINE_OCTAVE_ALLOCATOR (octave_java);
1516 1516
1517 DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (octave_java, "octave_java", "octave_java"); 1517 int octave_java::t_id (-1);
1518
1519 const std::string octave_java::t_name ("octave_java");
1520
1521 void
1522 octave_java::register_type (void)
1523 {
1524 t_id = octave_value_typeinfo::register_type
1525 (octave_java::t_name, "<unknown>", octave_value (new octave_java ()));
1526 }
1518 1527
1519 dim_vector 1528 dim_vector
1520 octave_java::dims (void) const 1529 octave_java::dims (void) const
1521 { 1530 {
1522 JNIEnv *current_env = thread_jni_env (); 1531 JNIEnv *current_env = thread_jni_env ();
1976 { 1985 {
1977 octave_value_list tmp; 1986 octave_value_list tmp;
1978 for (int i=2; i<args.length (); i++) 1987 for (int i=2; i<args.length (); i++)
1979 tmp(i-2) = args(i); 1988 tmp(i-2) = args(i);
1980 1989
1981 if (args(1).class_name () == "octave_java") 1990 if (args(1).is_java ())
1982 { 1991 {
1983 octave_java *jobj = TO_JAVA (args(1)); 1992 octave_java *jobj = TO_JAVA (args(1));
1984 retval = jobj->do_javaMethod (current_env, methodname, tmp); 1993 retval = jobj->do_javaMethod (current_env, methodname, tmp);
1985 } 1994 }
1986 else if (args(1).is_string ()) 1995 else if (args(1).is_string ())
2038 if (args.length () == 2) 2047 if (args.length () == 2)
2039 { 2048 {
2040 std::string name = args(1).string_value (); 2049 std::string name = args(1).string_value ();
2041 if (! error_state) 2050 if (! error_state)
2042 { 2051 {
2043 if (args(0).class_name () == "octave_java") 2052 if (args(0).is_java ())
2044 { 2053 {
2045 octave_java *jobj = TO_JAVA (args(0)); 2054 octave_java *jobj = TO_JAVA (args(0));
2046 retval = jobj->do_java_get (current_env, name); 2055 retval = jobj->do_java_get (current_env, name);
2047 } 2056 }
2048 else if (args(0).is_string ()) 2057 else if (args(0).is_string ())
2100 if (args.length () == 3) 2109 if (args.length () == 3)
2101 { 2110 {
2102 std::string name = args(1).string_value (); 2111 std::string name = args(1).string_value ();
2103 if (! error_state) 2112 if (! error_state)
2104 { 2113 {
2105 if (args(0).class_name () == "octave_java") 2114 if (args(0).is_java ())
2106 { 2115 {
2107 octave_java *jobj = TO_JAVA (args(0)); 2116 octave_java *jobj = TO_JAVA (args(0));
2108 retval = jobj->do_java_set (current_env, name, args(2)); 2117 retval = jobj->do_java_set (current_env, name, args(2));
2109 } 2118 }
2110 else if (args(0).is_string ()) 2119 else if (args(0).is_string ())
2144 { 2153 {
2145 JNIEnv *current_env = octave_java::thread_jni_env (); 2154 JNIEnv *current_env = octave_java::thread_jni_env ();
2146 2155
2147 if (args.length () == 1) 2156 if (args.length () == 1)
2148 { 2157 {
2149 if (args(0).class_name () == "octave_java") 2158 if (args(0).is_java ())
2150 { 2159 {
2151 octave_java *jobj = TO_JAVA (args(0)); 2160 octave_java *jobj = TO_JAVA (args(0));
2152 retval(0) = box_more (current_env, jobj->to_java (), 0); 2161 retval(0) = box_more (current_env, jobj->to_java (), 0);
2153 } 2162 }
2154 else 2163 else