summaryrefslogtreecommitdiff
path: root/src/util/statistics.i
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2012-11-17 04:05:17 +0000
committerMorgan Deters <mdeters@gmail.com>2012-11-17 04:05:17 +0000
commit44498017455cce207bf9cb0a1ebbf67c4a4d77cf (patch)
tree18f0bf80ea93cfd1f0e49cf38b7f0baf2d457285 /src/util/statistics.i
parentdb35c4be8bd37746e1c27e446291c82556df1d05 (diff)
* Fix for bug 445 agreed to in meeting 11/13/2012: always dump in ALL_SUPPORTED logic
* Java bindings fixes: fixed access to ostreams, iterators * Make SmtEngine::setUserAttribute() (and others) take a const string& * Also a few compliance fixes (this commit was certified error- and warning-free by the test-and-commit script.)
Diffstat (limited to 'src/util/statistics.i')
-rw-r--r--src/util/statistics.i46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/util/statistics.i b/src/util/statistics.i
index a14fc29dd..1f5cab2e1 100644
--- a/src/util/statistics.i
+++ b/src/util/statistics.i
@@ -1,8 +1,54 @@
%{
#include "util/statistics.h"
+#include "bindings/java_iterator_adapter.h"
+#include "bindings/java_output_stream_adapter.h"
%}
%rename(assign) CVC4::Statistics::operator=(const StatisticsBase&);
%rename(assign) CVC4::Statistics::operator=(const Statistics& stats);
+%ignore CVC4::StatisticsBase::begin();
+%ignore CVC4::StatisticsBase::end();
+%ignore CVC4::StatisticsBase::begin() const;
+%ignore CVC4::StatisticsBase::end() const;
+%extend CVC4::StatisticsBase {
+ CVC4::JavaIteratorAdapter<CVC4::StatisticsBase> iterator() {
+ return CVC4::JavaIteratorAdapter<CVC4::StatisticsBase>(*$self);
+ }
+}
+
+%typemap(javainterfaces) CVC4::StatisticsBase "java.lang.Iterable<Object>";
+
+%typemap(javaclassmodifiers) CVC4::JavaIteratorAdapter<CVC4::StatisticsBase> "class";
+%typemap(javainterfaces) CVC4::JavaIteratorAdapter<CVC4::StatisticsBase> "java.util.Iterator";
+%typemap(javacode) CVC4::JavaIteratorAdapter<CVC4::StatisticsBase> "
+ public void remove() {
+ throw new java.lang.UnsupportedOperationException();
+ }
+
+ public Object next() {
+ if(hasNext()) {
+ return getNext();
+ } else {
+ throw new java.util.NoSuchElementException();
+ }
+ }
+"
+
+%typemap(jni) CVC4::StatisticsBase::const_iterator::value_type "jobjectArray";
+%typemap(jtype) CVC4::StatisticsBase::const_iterator::value_type "java.lang.Object[]";
+%typemap(jstype) CVC4::StatisticsBase::const_iterator::value_type "java.lang.Object[]";
+%typemap(javaout) CVC4::StatisticsBase::const_iterator::value_type { return $jnicall; }
+%typemap(out) CVC4::StatisticsBase::const_iterator::value_type {
+ $result = jenv->NewObjectArray(2, jenv->FindClass("java/lang/Object"), $null);
+ jenv->SetObjectArrayElement($result, 0, jenv->NewStringUTF($1.first.c_str()));
+ jclass clazz = jenv->FindClass("edu/nyu/acsys/CVC4/SExpr");
+ jmethodID methodid = jenv->GetMethodID(clazz, "<init>", "(JZ)V");
+ jenv->SetObjectArrayElement($result, 1, jenv->NewObject(jenv->FindClass("edu/nyu/acsys/CVC4/SExpr"), methodid, reinterpret_cast<long>(new CVC4::SExpr($1.second)), true));
+ };
+
%include "util/statistics.h"
+%include "bindings/java_iterator_adapter.h"
+%include "bindings/java_output_stream_adapter.h"
+
+%template(JavaIteratorAdapter_StatisticsBase) CVC4::JavaIteratorAdapter<CVC4::StatisticsBase>;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback