1 /******************************************************************************
2 * Top contributors (to current version):
5 * This file is part of the cvc5 project.
7 * Copyright (c) 2009-2021 by the authors listed in the file AUTHORS
8 * in the top-level source directory and their institutional affiliations.
9 * All rights reserved. See the file COPYING in the top-level source
10 * directory for licensing information.
11 * ****************************************************************************
16 #include "api/cpp/cvc5.h"
17 #include "api_utilities.h"
18 #include "io_github_cvc5_api_Term.h"
20 using namespace cvc5::api
;
23 * Class: io_github_cvc5_api_Term
24 * Method: deletePointer
27 JNIEXPORT
void JNICALL
Java_io_github_cvc5_api_Term_deletePointer(JNIEnv
* env
,
31 delete reinterpret_cast<Term
*>(pointer
);
35 * Class: io_github_cvc5_api_Term
39 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_equals(JNIEnv
* env
,
44 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
45 Term
* term1
= reinterpret_cast<Term
*>(pointer1
);
46 Term
* term2
= reinterpret_cast<Term
*>(pointer2
);
47 // We compare the actual terms, not their pointers.
48 return static_cast<jboolean
>(*term1
== *term2
);
49 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
53 * Class: io_github_cvc5_api_Term
57 JNIEXPORT jint JNICALL
Java_io_github_cvc5_api_Term_compareTo(JNIEnv
* env
,
62 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
63 Term
* term1
= reinterpret_cast<Term
*>(pointer1
);
64 Term
* term2
= reinterpret_cast<Term
*>(pointer2
);
67 return static_cast<jint
>(-1);
73 return static_cast<jint
>(1);
74 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
78 * Class: io_github_cvc5_api_Term
79 * Method: getNumChildren
82 JNIEXPORT jint JNICALL
83 Java_io_github_cvc5_api_Term_getNumChildren(JNIEnv
* env
, jobject
, jlong pointer
)
85 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
86 Term
* current
= reinterpret_cast<Term
*>(pointer
);
87 return static_cast<jint
>(current
->getNumChildren());
88 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
92 * Class: io_github_cvc5_api_Term
96 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_getChild(JNIEnv
* env
,
101 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
102 Term
* current
= reinterpret_cast<Term
*>(pointer
);
103 Term
* ret
= new Term((*current
)[static_cast<size_t>(index
)]);
104 return reinterpret_cast<jlong
>(ret
);
105 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
109 * Class: io_github_cvc5_api_Term
113 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_getId(JNIEnv
* env
,
117 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
118 Term
* current
= reinterpret_cast<Term
*>(pointer
);
119 return static_cast<jlong
>(current
->getId());
120 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
124 * Class: io_github_cvc5_api_Term
128 JNIEXPORT jint JNICALL
Java_io_github_cvc5_api_Term_getKind(JNIEnv
* env
,
132 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
133 Term
* current
= reinterpret_cast<Term
*>(pointer
);
134 return static_cast<jint
>(current
->getKind());
135 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
139 * Class: io_github_cvc5_api_Term
143 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_getSort(JNIEnv
* env
,
147 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
148 Term
* current
= reinterpret_cast<Term
*>(pointer
);
149 Sort
* ret
= new Sort(current
->getSort());
150 return reinterpret_cast<jlong
>(ret
);
151 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
155 * Class: io_github_cvc5_api_Term
159 JNIEXPORT jlong JNICALL
160 Java_io_github_cvc5_api_Term_substitute__JJJ(JNIEnv
* env
,
164 jlong replacementPointer
)
166 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
167 Term
* current
= reinterpret_cast<Term
*>(pointer
);
168 Term
* term
= reinterpret_cast<Term
*>(termPointer
);
169 Term
* replacement
= reinterpret_cast<Term
*>(replacementPointer
);
170 Term
* ret
= new Term(current
->substitute(*term
, *replacement
));
171 return reinterpret_cast<jlong
>(ret
);
172 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
176 * Class: io_github_cvc5_api_Term
178 * Signature: (J[J[J)J
180 JNIEXPORT jlong JNICALL
181 Java_io_github_cvc5_api_Term_substitute__J_3J_3J(JNIEnv
* env
,
184 jlongArray termPointers
,
185 jlongArray replacementPointers
)
187 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
188 Term
* current
= reinterpret_cast<Term
*>(pointer
);
189 jsize termsSize
= env
->GetArrayLength(termPointers
);
190 jsize replacementsSize
= env
->GetArrayLength(replacementPointers
);
191 jlong
* termElements
= env
->GetLongArrayElements(termPointers
, nullptr);
192 jlong
* replacementElements
=
193 env
->GetLongArrayElements(replacementPointers
, nullptr);
195 std::vector
<Term
> terms(termsSize
);
196 std::vector
<Term
> replacements(replacementsSize
);
198 for (jsize i
= 0; i
< termsSize
; i
++)
200 Term
* term
= (Term
*)termElements
[i
];
203 env
->ReleaseLongArrayElements(termPointers
, termElements
, 0);
205 for (jsize i
= 0; i
< replacementsSize
; i
++)
207 Term
* term
= (Term
*)replacementElements
[i
];
208 replacements
[i
] = *term
;
210 env
->ReleaseLongArrayElements(replacementPointers
, replacementElements
, 0);
212 Term
* ret
= new Term(current
->substitute(terms
, replacements
));
213 return reinterpret_cast<jlong
>(ret
);
214 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
218 * Class: io_github_cvc5_api_Term
222 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_hasOp(JNIEnv
* env
,
226 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
227 Term
* current
= reinterpret_cast<Term
*>(pointer
);
228 return static_cast<jboolean
>(current
->hasOp());
229 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
233 * Class: io_github_cvc5_api_Term
237 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_getOp(JNIEnv
* env
,
241 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
242 Term
* current
= reinterpret_cast<Term
*>(pointer
);
243 Op
* ret
= new Op(current
->getOp());
244 return reinterpret_cast<jlong
>(ret
);
245 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
249 * Class: io_github_cvc5_api_Term
253 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_hasSymbol(JNIEnv
* env
,
257 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
258 Term
* current
= reinterpret_cast<Term
*>(pointer
);
259 return static_cast<jboolean
>(current
->hasSymbol());
260 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
264 * Class: io_github_cvc5_api_Term
266 * Signature: (J)Ljava/lang/String;
268 JNIEXPORT jstring JNICALL
Java_io_github_cvc5_api_Term_getSymbol(JNIEnv
* env
,
272 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
273 Term
* current
= reinterpret_cast<Term
*>(pointer
);
274 return env
->NewStringUTF(current
->getSymbol().c_str());
275 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
279 * Class: io_github_cvc5_api_Term
283 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isNull(JNIEnv
* env
,
287 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
288 Term
* current
= reinterpret_cast<Term
*>(pointer
);
289 return static_cast<jboolean
>(current
->isNull());
290 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
294 * Class: io_github_cvc5_api_Term
295 * Method: isConstArray
298 JNIEXPORT jboolean JNICALL
299 Java_io_github_cvc5_api_Term_isConstArray(JNIEnv
* env
, jobject
, jlong pointer
)
301 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
302 Term
* current
= reinterpret_cast<Term
*>(pointer
);
303 return static_cast<jboolean
>(current
->isConstArray());
304 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
308 * Class: io_github_cvc5_api_Term
309 * Method: getConstArrayBase
312 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_getConstArrayBase(
313 JNIEnv
* env
, jobject
, jlong pointer
)
315 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
316 Term
* current
= reinterpret_cast<Term
*>(pointer
);
317 Term
* ret
= new Term(current
->getConstArrayBase());
318 return reinterpret_cast<jlong
>(ret
);
319 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
323 * Class: io_github_cvc5_api_Term
327 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_notTerm(JNIEnv
* env
,
331 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
332 Term
* current
= reinterpret_cast<Term
*>(pointer
);
333 Term
* ret
= new Term(current
->notTerm());
334 return reinterpret_cast<jlong
>(ret
);
335 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
339 * Class: io_github_cvc5_api_Term
343 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_andTerm(JNIEnv
* env
,
348 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
349 Term
* current
= reinterpret_cast<Term
*>(pointer
);
350 Term
* term
= reinterpret_cast<Term
*>(termPointer
);
351 Term
* ret
= new Term(current
->andTerm(*term
));
352 return reinterpret_cast<jlong
>(ret
);
353 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
357 * Class: io_github_cvc5_api_Term
361 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_orTerm(JNIEnv
* env
,
366 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
367 Term
* current
= reinterpret_cast<Term
*>(pointer
);
368 Term
* term
= reinterpret_cast<Term
*>(termPointer
);
369 Term
* ret
= new Term(current
->orTerm(*term
));
370 return reinterpret_cast<jlong
>(ret
);
371 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
375 * Class: io_github_cvc5_api_Term
379 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_xorTerm(JNIEnv
* env
,
384 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
385 Term
* current
= reinterpret_cast<Term
*>(pointer
);
386 Term
* term
= reinterpret_cast<Term
*>(termPointer
);
387 Term
* ret
= new Term(current
->xorTerm(*term
));
388 return reinterpret_cast<jlong
>(ret
);
389 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
393 * Class: io_github_cvc5_api_Term
397 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_eqTerm(JNIEnv
* env
,
402 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
403 Term
* current
= reinterpret_cast<Term
*>(pointer
);
404 Term
* term
= reinterpret_cast<Term
*>(termPointer
);
405 Term
* ret
= new Term(current
->eqTerm(*term
));
406 return reinterpret_cast<jlong
>(ret
);
407 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
411 * Class: io_github_cvc5_api_Term
415 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_impTerm(JNIEnv
* env
,
420 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
421 Term
* current
= reinterpret_cast<Term
*>(pointer
);
422 Term
* term
= reinterpret_cast<Term
*>(termPointer
);
423 Term
* ret
= new Term(current
->impTerm(*term
));
424 return reinterpret_cast<jlong
>(ret
);
425 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
429 * Class: io_github_cvc5_api_Term
433 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_iteTerm(
434 JNIEnv
* env
, jobject
, jlong pointer
, jlong thenPointer
, jlong elsePointer
)
436 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
437 Term
* current
= reinterpret_cast<Term
*>(pointer
);
438 Term
* thenTerm
= reinterpret_cast<Term
*>(thenPointer
);
439 Term
* elseTerm
= reinterpret_cast<Term
*>(elsePointer
);
440 Term
* ret
= new Term(current
->iteTerm(*thenTerm
, *elseTerm
));
441 return reinterpret_cast<jlong
>(ret
);
442 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
446 * Class: io_github_cvc5_api_Term
448 * Signature: (J)Ljava/lang/String;
450 JNIEXPORT jstring JNICALL
Java_io_github_cvc5_api_Term_toString(JNIEnv
* env
,
454 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
455 Term
* current
= reinterpret_cast<Term
*>(pointer
);
456 return env
->NewStringUTF(current
->toString().c_str());
457 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
461 * Class: io_github_cvc5_api_Term
462 * Method: getRealOrIntegerValueSign
465 JNIEXPORT jint JNICALL
466 Java_io_github_cvc5_api_Term_getRealOrIntegerValueSign(JNIEnv
* env
,
470 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
471 Term
* current
= reinterpret_cast<Term
*>(pointer
);
472 return static_cast<jint
>(current
->getRealOrIntegerValueSign());
473 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jint
>(0));
477 * Class: io_github_cvc5_api_Term
478 * Method: isIntegerValue
481 JNIEXPORT jboolean JNICALL
482 Java_io_github_cvc5_api_Term_isIntegerValue(JNIEnv
* env
, jobject
, jlong pointer
)
484 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
485 Term
* current
= reinterpret_cast<Term
*>(pointer
);
486 return static_cast<jboolean
>(current
->isIntegerValue());
487 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
491 * Class: io_github_cvc5_api_Term
492 * Method: getIntegerValue
493 * Signature: (J)Ljava/lang/String;
495 JNIEXPORT jstring JNICALL
Java_io_github_cvc5_api_Term_getIntegerValue(
496 JNIEnv
* env
, jobject
, jlong pointer
)
498 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
499 Term
* current
= reinterpret_cast<Term
*>(pointer
);
500 std::string value
= current
->getIntegerValue();
501 jstring ret
= env
->NewStringUTF(value
.c_str());
503 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
507 * Class: io_github_cvc5_api_Term
508 * Method: isStringValue
511 JNIEXPORT jboolean JNICALL
512 Java_io_github_cvc5_api_Term_isStringValue(JNIEnv
* env
, jobject
, jlong pointer
)
514 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
515 Term
* current
= reinterpret_cast<Term
*>(pointer
);
516 return static_cast<jboolean
>(current
->isStringValue());
517 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
521 * Class: io_github_cvc5_api_Term
522 * Method: getStringValue
523 * Signature: (J)Ljava/lang/String;
525 JNIEXPORT jstring JNICALL
526 Java_io_github_cvc5_api_Term_getStringValue(JNIEnv
* env
, jobject
, jlong pointer
)
528 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
529 Term
* current
= reinterpret_cast<Term
*>(pointer
);
530 std::wstring termString
= current
->getStringValue();
532 size_t length
= termString
.length();
533 jchar
* unicode
= new jchar
[length
];
534 const wchar_t* s
= termString
.c_str();
535 for (size_t i
= 0; i
< length
; i
++)
539 jstring ret
= env
->NewString(unicode
, length
);
542 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
546 * Class: io_github_cvc5_api_Term
547 * Method: isRealValue
550 JNIEXPORT jboolean JNICALL
551 Java_io_github_cvc5_api_Term_isRealValue(JNIEnv
* env
, jobject
, jlong pointer
)
553 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
554 Term
* current
= reinterpret_cast<Term
*>(pointer
);
555 return static_cast<jboolean
>(current
->isRealValue());
556 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
560 * Class: io_github_cvc5_api_Term
561 * Method: getRealValue
562 * Signature: (J)Ljava/lang/String;
564 JNIEXPORT jstring JNICALL
565 Java_io_github_cvc5_api_Term_getRealValue(JNIEnv
* env
, jobject
, jlong pointer
)
567 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
568 Term
* current
= reinterpret_cast<Term
*>(pointer
);
569 std::string realValue
= current
->getRealValue();
570 return env
->NewStringUTF(realValue
.c_str());
571 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
575 * Class: io_github_cvc5_api_Term
576 * Method: isBooleanValue
579 JNIEXPORT jboolean JNICALL
580 Java_io_github_cvc5_api_Term_isBooleanValue(JNIEnv
* env
, jobject
, jlong pointer
)
582 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
583 Term
* current
= reinterpret_cast<Term
*>(pointer
);
584 return static_cast<jboolean
>(current
->isBooleanValue());
585 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
589 * Class: io_github_cvc5_api_Term
590 * Method: getBooleanValue
593 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_getBooleanValue(
594 JNIEnv
* env
, jobject
, jlong pointer
)
596 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
597 Term
* current
= reinterpret_cast<Term
*>(pointer
);
598 return static_cast<jboolean
>(current
->getBooleanValue());
599 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
603 * Class: io_github_cvc5_api_Term
604 * Method: isBitVectorValue
607 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isBitVectorValue(
608 JNIEnv
* env
, jobject
, jlong pointer
)
610 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
611 Term
* current
= reinterpret_cast<Term
*>(pointer
);
612 return static_cast<jboolean
>(current
->isBitVectorValue());
613 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
617 * Class: io_github_cvc5_api_Term
618 * Method: getBitVectorValue
619 * Signature: (JI)Ljava/lang/String;
621 JNIEXPORT jstring JNICALL
Java_io_github_cvc5_api_Term_getBitVectorValue(
622 JNIEnv
* env
, jobject
, jlong pointer
, jint base
)
624 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
625 Term
* current
= reinterpret_cast<Term
*>(pointer
);
627 current
->getBitVectorValue(static_cast<std::uint32_t>(base
));
628 return env
->NewStringUTF(ret
.c_str());
629 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
633 * Class: io_github_cvc5_api_Term
634 * Method: isAbstractValue
637 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isAbstractValue(
638 JNIEnv
* env
, jobject
, jlong pointer
)
640 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
641 Term
* current
= reinterpret_cast<Term
*>(pointer
);
642 return static_cast<jboolean
>(current
->isAbstractValue());
643 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
647 * Class: io_github_cvc5_api_Term
648 * Method: getAbstractValue
649 * Signature: (J)Ljava/lang/String;
651 JNIEXPORT jstring JNICALL
Java_io_github_cvc5_api_Term_getAbstractValue(
652 JNIEnv
* env
, jobject
, jlong pointer
)
654 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
655 Term
* current
= reinterpret_cast<Term
*>(pointer
);
656 std::string ret
= current
->getAbstractValue();
657 return env
->NewStringUTF(ret
.c_str());
658 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
662 * Class: io_github_cvc5_api_Term
663 * Method: isTupleValue
666 JNIEXPORT jboolean JNICALL
667 Java_io_github_cvc5_api_Term_isTupleValue(JNIEnv
* env
, jobject
, jlong pointer
)
669 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
670 Term
* current
= reinterpret_cast<Term
*>(pointer
);
671 return static_cast<jboolean
>(current
->isTupleValue());
672 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
676 * Class: io_github_cvc5_api_Term
677 * Method: getTupleValue
680 JNIEXPORT jlongArray JNICALL
681 Java_io_github_cvc5_api_Term_getTupleValue(JNIEnv
* env
, jobject
, jlong pointer
)
683 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
684 Term
* current
= reinterpret_cast<Term
*>(pointer
);
685 std::vector
<Term
> terms
= current
->getTupleValue();
686 jlongArray ret
= getPointersFromObjects
<Term
>(env
, terms
);
688 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
692 * Class: io_github_cvc5_api_Term
693 * Method: isFloatingPointPosZero
696 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isFloatingPointPosZero(
697 JNIEnv
* env
, jobject
, jlong pointer
)
699 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
700 Term
* current
= reinterpret_cast<Term
*>(pointer
);
701 return static_cast<jboolean
>(current
->isFloatingPointPosZero());
702 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
706 * Class: io_github_cvc5_api_Term
707 * Method: isFloatingPointNegZero
710 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isFloatingPointNegZero(
711 JNIEnv
* env
, jobject
, jlong pointer
)
713 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
714 Term
* current
= reinterpret_cast<Term
*>(pointer
);
715 return static_cast<jboolean
>(current
->isFloatingPointNegZero());
716 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
720 * Class: io_github_cvc5_api_Term
721 * Method: isFloatingPointPosInf
724 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isFloatingPointPosInf(
725 JNIEnv
* env
, jobject
, jlong pointer
)
727 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
728 Term
* current
= reinterpret_cast<Term
*>(pointer
);
729 return static_cast<jboolean
>(current
->isFloatingPointPosInf());
730 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
734 * Class: io_github_cvc5_api_Term
735 * Method: isFloatingPointNegInf
738 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isFloatingPointNegInf(
739 JNIEnv
* env
, jobject
, jlong pointer
)
741 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
742 Term
* current
= reinterpret_cast<Term
*>(pointer
);
743 return static_cast<jboolean
>(current
->isFloatingPointNegInf());
744 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
748 * Class: io_github_cvc5_api_Term
749 * Method: isFloatingPointNaN
752 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isFloatingPointNaN(
753 JNIEnv
* env
, jobject
, jlong pointer
)
755 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
756 Term
* current
= reinterpret_cast<Term
*>(pointer
);
757 return static_cast<jboolean
>(current
->isFloatingPointNaN());
758 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
762 * Class: io_github_cvc5_api_Term
763 * Method: isFloatingPointValue
766 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isFloatingPointValue(
767 JNIEnv
* env
, jobject
, jlong pointer
)
769 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
770 Term
* current
= reinterpret_cast<Term
*>(pointer
);
771 return static_cast<jboolean
>(current
->isFloatingPointValue());
772 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
776 * Class: io_github_cvc5_api_Term
777 * Method: getFloatingPointValue
778 * Signature: (J)Lio/github/cvc5/api/Triplet;
780 JNIEXPORT jobject JNICALL
Java_io_github_cvc5_api_Term_getFloatingPointValue(
781 JNIEnv
* env
, jobject thisObject
, jlong pointer
)
783 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
784 Term
* current
= reinterpret_cast<Term
*>(pointer
);
785 auto [exponent
, significand
, term
] = current
->getFloatingPointValue();
786 Term
* termPointer
= new Term(term
);
788 // Long longObject = new Long(pointer)
789 jclass longClass
= env
->FindClass("Ljava/lang/Long;");
790 jmethodID longConstructor
= env
->GetMethodID(longClass
, "<init>", "(J)V");
791 jobject e
= env
->NewObject(longClass
, longConstructor
, exponent
);
792 jobject s
= env
->NewObject(longClass
, longConstructor
, significand
);
793 jobject t
= env
->NewObject(longClass
, longConstructor
, termPointer
);
795 // Triplet triplet = new Triplet<Long, Long, Long>(e, s, t);
796 jclass tripletClass
= env
->FindClass("Lio/github/cvc5/api/Triplet;");
797 jmethodID tripletConstructor
= env
->GetMethodID(
800 "(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V");
801 jobject triplet
= env
->NewObject(tripletClass
, tripletConstructor
, e
, s
, t
);
804 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
808 * Class: io_github_cvc5_api_Term
812 JNIEXPORT jboolean JNICALL
813 Java_io_github_cvc5_api_Term_isSetValue(JNIEnv
* env
, jobject
, jlong pointer
)
815 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
816 Term
* current
= reinterpret_cast<Term
*>(pointer
);
817 return static_cast<jboolean
>(current
->isSetValue());
818 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
822 * Class: io_github_cvc5_api_Term
823 * Method: getSetValue
826 JNIEXPORT jlongArray JNICALL
827 Java_io_github_cvc5_api_Term_getSetValue(JNIEnv
* env
, jobject
, jlong pointer
)
829 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
830 Term
* current
= reinterpret_cast<Term
*>(pointer
);
831 std::set
<Term
> terms
= current
->getSetValue();
832 std::vector
<jlong
> pointers(terms
.size());
834 for (const Term
& t
: terms
)
836 pointers
[i
] = reinterpret_cast<jlong
>(new Term(t
));
839 jlongArray ret
= env
->NewLongArray(pointers
.size());
840 env
->SetLongArrayRegion(ret
, 0, pointers
.size(), pointers
.data());
842 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
846 * Class: io_github_cvc5_api_Term
847 * Method: isSequenceValue
850 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isSequenceValue(
851 JNIEnv
* env
, jobject
, jlong pointer
)
853 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
854 Term
* current
= reinterpret_cast<Term
*>(pointer
);
855 return static_cast<jboolean
>(current
->isSequenceValue());
856 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
860 * Class: io_github_cvc5_api_Term
861 * Method: getSequenceValue
864 JNIEXPORT jlongArray JNICALL
Java_io_github_cvc5_api_Term_getSequenceValue(
865 JNIEnv
* env
, jobject
, jlong pointer
)
867 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
868 Term
* current
= reinterpret_cast<Term
*>(pointer
);
869 std::vector
<Term
> terms
= current
->getSequenceValue();
870 jlongArray ret
= getPointersFromObjects
<Term
>(env
, terms
);
872 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
876 * Class: io_github_cvc5_api_Term
877 * Method: isUninterpretedValue
880 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isUninterpretedValue(
881 JNIEnv
* env
, jobject
, jlong pointer
)
883 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
884 Term
* current
= reinterpret_cast<Term
*>(pointer
);
885 return static_cast<jboolean
>(current
->isUninterpretedValue());
886 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
890 * Class: io_github_cvc5_api_Term
891 * Method: getUninterpretedValue
892 * Signature: (J)Lio/github/cvc5/api/Pair;
894 JNIEXPORT jobject JNICALL
Java_io_github_cvc5_api_Term_getUninterpretedValue(
895 JNIEnv
* env
, jobject
, jlong pointer
)
897 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
898 Term
* current
= reinterpret_cast<Term
*>(pointer
);
899 std::pair
<Sort
, std::int32_t> value
= current
->getUninterpretedValue();
901 Sort
* sort
= new Sort(value
.first
);
902 jlong sortPointer
= reinterpret_cast<jlong
>(sort
);
904 // Long longObject = new Long(pointer)
905 jclass longClass
= env
->FindClass("Ljava/lang/Long;");
906 jmethodID longConstructor
= env
->GetMethodID(longClass
, "<init>", "(J)V");
907 jobject longObject
= env
->NewObject(longClass
, longConstructor
, sortPointer
);
909 // Integer integerObject = new Integer(pair.second)
910 jclass integerClass
= env
->FindClass("Ljava/lang/Integer;");
911 jmethodID integerConstructor
=
912 env
->GetMethodID(integerClass
, "<init>", "(I)V");
913 jobject integerObject
= env
->NewObject(
914 integerClass
, integerConstructor
, static_cast<jint
>(value
.second
));
916 // Pair<String, Long> pair = new Pair<String, Long>(jName, longObject)
917 jclass pairClass
= env
->FindClass("Lio/github/cvc5/api/Pair;");
918 jmethodID pairConstructor
= env
->GetMethodID(
919 pairClass
, "<init>", "(Ljava/lang/Object;Ljava/lang/Object;)V");
921 env
->NewObject(pairClass
, pairConstructor
, longObject
, integerObject
);
924 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
928 * Class: io_github_cvc5_api_Term
932 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_iterator(JNIEnv
* env
,
936 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
937 Term
* current
= reinterpret_cast<Term
*>(pointer
);
938 Term::const_iterator
* retPointer
= new Term::const_iterator(current
->begin());
939 return reinterpret_cast<jlong
>(retPointer
);
940 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);