[PPL-devel] [GIT] ppl/ppl(master): A couple of changes to the Java interface:

Enea Zaffanella zaffanella at cs.unipr.it
Wed Aug 8 14:38:02 CEST 2012


Module: ppl/ppl
Branch: master
Commit: dda4797dcd59ac3dd21d315e09aec8049620f3ad
URL:    http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=dda4797dcd59ac3dd21d315e09aec8049620f3ad

Author: Enea Zaffanella <zaffanella at cs.unipr.it>
Date:   Wed Aug  8 14:35:17 2012 +0200

A couple of changes to the Java interface:
  - Variable's id are of long type (like space dimension arguments);
  - added NOT_EQUAL value to enumeration Relation_Symbol.

---

 interfaces/Java/jni/ppl_java_common.cc             |    6 ++++--
 interfaces/Java/jni/ppl_java_globals.cc            |    8 ++++----
 .../Linear_Expression_Variable.java                |    2 +-
 .../parma_polyhedra_library/Relation_Symbol.java   |    4 +++-
 .../Java/parma_polyhedra_library/Variable.java     |   13 +++++++++----
 .../Variable_Stringifier.java                      |    2 +-
 .../Java/tests/Custom_Variable_Stringifier.java    |    2 +-
 7 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/interfaces/Java/jni/ppl_java_common.cc b/interfaces/Java/jni/ppl_java_common.cc
index d97c53c..e4ffa6a 100644
--- a/interfaces/Java/jni/ppl_java_common.cc
+++ b/interfaces/Java/jni/ppl_java_common.cc
@@ -559,6 +559,8 @@ build_cxx_relsym(JNIEnv* env, jobject j_relsym) {
     return GREATER_OR_EQUAL;
   case 4:
     return GREATER_THAN;
+  case 5:
+    return NOT_EQUAL;
   default:
     PPL_JAVA_UNEXPECTED;
   }
@@ -848,7 +850,7 @@ build_cxx_linear_expression(JNIEnv* env, jobject j_le) {
   if (env->IsAssignableFrom(current_class,
                             cached_classes.Linear_Expression_Variable)) {
     jmethodID mID = cached_FMIDs.Linear_Expression_Variable_var_id_ID;
-    jint var_id = env->CallIntMethod(j_le, mID);
+    jlong var_id = env->CallLongMethod(j_le, mID);
     return Linear_Expression(Variable(var_id));
   }
   // LE_Coefficient
@@ -1225,7 +1227,7 @@ Java_Variable_output_function(std::ostream& s, Variable v) {
     // the corresponding method ID, so as to compare it with cached one.
     jclass dyn_class = env->GetObjectClass(stringifier);
     jmethodID dyn_mID = env->GetMethodID(dyn_class, "stringify",
-                                         "(I)Ljava/lang/String;");
+                                         "(J)Ljava/lang/String;");
     CHECK_RESULT_ASSERT(env, mID == dyn_mID);
   }
 #endif // #ifndef NDEBUG
diff --git a/interfaces/Java/jni/ppl_java_globals.cc b/interfaces/Java/jni/ppl_java_globals.cc
index a071be4..f6f519a 100644
--- a/interfaces/Java/jni/ppl_java_globals.cc
+++ b/interfaces/Java/jni/ppl_java_globals.cc
@@ -459,7 +459,7 @@ Java_parma_1polyhedra_1library_Linear_1Expression_1Variable_initIDs
 			 "(Lparma_polyhedra_library/Variable;)V");
   CHECK_RESULT_ASSERT(env, mID);
   cached_FMIDs.Linear_Expression_Variable_init_ID = mID;
-  mID = env->GetMethodID(j_le_var_class, "var_id", "()I");
+  mID = env->GetMethodID(j_le_var_class, "var_id", "()J");
   CHECK_RESULT_ASSERT(env, mID);
   cached_FMIDs.Linear_Expression_Variable_var_id_ID = mID;
 }
@@ -675,14 +675,14 @@ Java_parma_1polyhedra_1library_Bounded_1Integer_1Type_1Width_initIDs
 JNIEXPORT void JNICALL
 Java_parma_1polyhedra_1library_Variable_initIDs
 (JNIEnv* env, jclass j_variable_class) {
-  jfieldID fID = env->GetFieldID(j_variable_class, "varid", "I");
+  jfieldID fID = env->GetFieldID(j_variable_class, "varid", "J");
   CHECK_RESULT_ASSERT(env, fID);
   cached_FMIDs.Variable_varid_ID = fID;
   fID = env->GetStaticFieldID(j_variable_class, "stringifier",
                               "Lparma_polyhedra_library/Variable_Stringifier;");
   CHECK_RESULT_ASSERT(env, fID);
   cached_FMIDs.Variable_stringifier_ID = fID;
-  jmethodID mID = env->GetMethodID(j_variable_class, "<init>", "(I)V");
+  jmethodID mID = env->GetMethodID(j_variable_class, "<init>", "(J)V");
   CHECK_RESULT_ASSERT(env, mID);
   cached_FMIDs.Variable_init_ID = mID;
 }
@@ -1285,7 +1285,7 @@ Java_parma_1polyhedra_1library_Variable_setStringifier
     CHECK_RESULT_ASSERT(env, vs_class);
     cached_classes.Variable_Stringifier = vs_class;
     jmethodID mID = env->GetMethodID(vs_class, "stringify",
-                                     "(I)Ljava/lang/String;");
+                                     "(J)Ljava/lang/String;");
     CHECK_RESULT_ASSERT(env, mID);
     cached_FMIDs.Variable_Stringifier_stringify_ID = mID;
     // Set C++ output function to the Java wrapper.
diff --git a/interfaces/Java/parma_polyhedra_library/Linear_Expression_Variable.java b/interfaces/Java/parma_polyhedra_library/Linear_Expression_Variable.java
index 80811a6..7eb5a8a 100644
--- a/interfaces/Java/parma_polyhedra_library/Linear_Expression_Variable.java
+++ b/interfaces/Java/parma_polyhedra_library/Linear_Expression_Variable.java
@@ -45,7 +45,7 @@ extends Linear_Expression {
 	return new Linear_Expression_Variable(arg);
     }
 
-    private int var_id() {
+    private long var_id() {
         return arg.id();
     }
 
diff --git a/interfaces/Java/parma_polyhedra_library/Relation_Symbol.java b/interfaces/Java/parma_polyhedra_library/Relation_Symbol.java
index b3de214..946ad1b 100644
--- a/interfaces/Java/parma_polyhedra_library/Relation_Symbol.java
+++ b/interfaces/Java/parma_polyhedra_library/Relation_Symbol.java
@@ -35,7 +35,9 @@ public enum Relation_Symbol {
     //! Greater than or equal to.
     GREATER_OR_EQUAL,
     //! Greater than.
-    GREATER_THAN;
+    GREATER_THAN,
+    //! Not equal to.
+    NOT_EQUAL;
 
     private static native void initIDs();
     static {
diff --git a/interfaces/Java/parma_polyhedra_library/Variable.java b/interfaces/Java/parma_polyhedra_library/Variable.java
index ea13aa0..6a31cca 100644
--- a/interfaces/Java/parma_polyhedra_library/Variable.java
+++ b/interfaces/Java/parma_polyhedra_library/Variable.java
@@ -37,14 +37,14 @@ import javax.management.RuntimeErrorException;
 */
 public class Variable implements Comparable<Variable> {
     //! The index of the Cartesian axis.
-    private int varid;
+    private long varid;
 
     //! Builds the variable corresponding to the Cartesian axis of index \p i.
     /*!
       \exception RuntimeErrorException
       Thrown if <CODE>i</CODE> is has negative value.
     */
-    public Variable(int i) {
+    public Variable(long i) {
 	if (i < 0)
 	    throw new
 		RuntimeErrorException(new Error("parma_polyhedra_library.Variable::"
@@ -55,7 +55,7 @@ public class Variable implements Comparable<Variable> {
     }
 
     //! Returns the index of the Cartesian axis associated to \p this.
-    public int id() {
+    public long id() {
 	return varid;
     }
 
@@ -65,7 +65,12 @@ public class Variable implements Comparable<Variable> {
       is greater than \p v.
     */
     public int compareTo(Variable v) {
-        return varid - v.varid;
+        if (varid < v.varid)
+            return -1;
+        else if (varid == v.varid)
+            return 0;
+        else
+            return 1;
     }
 
     //! Optional customization provider for \c toString.
diff --git a/interfaces/Java/parma_polyhedra_library/Variable_Stringifier.java b/interfaces/Java/parma_polyhedra_library/Variable_Stringifier.java
index 67d6233..55110fd 100644
--- a/interfaces/Java/parma_polyhedra_library/Variable_Stringifier.java
+++ b/interfaces/Java/parma_polyhedra_library/Variable_Stringifier.java
@@ -29,5 +29,5 @@ package parma_polyhedra_library;
   method \c setStringifier.
 */
 public interface Variable_Stringifier {
-    public String stringify(int var_id);
+    public String stringify(long var_id);
 }
diff --git a/interfaces/Java/tests/Custom_Variable_Stringifier.java b/interfaces/Java/tests/Custom_Variable_Stringifier.java
index f13e27c..93d6c43 100644
--- a/interfaces/Java/tests/Custom_Variable_Stringifier.java
+++ b/interfaces/Java/tests/Custom_Variable_Stringifier.java
@@ -23,7 +23,7 @@ site: http://bugseng.com/products/ppl/ . */
 import parma_polyhedra_library.*;
 
 public class Custom_Variable_Stringifier implements Variable_Stringifier {
-    public String stringify(int var_id) {
+    public String stringify(long var_id) {
         return "Var_" + var_id;
     }
 }




More information about the PPL-devel mailing list