
Module: ppl/ppl Branch: master Commit: dda4797dcd59ac3dd21d315e09aec8049620f3ad URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=dda4797dcd59a...
Author: Enea Zaffanella zaffanella@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; } }