[PPL-devel] [GIT] ppl/ppl(ppl-1_0-branch): A couple of changes to the Java interface:
Enea Zaffanella
zaffanella at cs.unipr.it
Sat Aug 11 17:28:31 CEST 2012
Module: ppl/ppl
Branch: ppl-1_0-branch
Commit: 9422ce4b5d5926f975a0b3d8c3c1d54f8ea85167
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=9422ce4b5d5926f975a0b3d8c3c1d54f8ea85167
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