forked from GitHub/gf-core
finished Type.getHypos & added Hypo.getType
This commit is contained in:
@@ -1281,10 +1281,16 @@ Java_org_grammaticalframework_pgf_Type_getHypos(JNIEnv* env, jobject self)
|
|||||||
PgfType* tp = get_ref(env, self);
|
PgfType* tp = get_ref(env, self);
|
||||||
|
|
||||||
jclass hypo_class = (*env)->FindClass(env, "org/grammaticalframework/pgf/Hypo");
|
jclass hypo_class = (*env)->FindClass(env, "org/grammaticalframework/pgf/Hypo");
|
||||||
|
jmethodID constrId = (*env)->GetMethodID(env, hypo_class, "<init>", "(Ljava/lang/Object;J)V");
|
||||||
|
|
||||||
size_t n_hypos = gu_seq_length(tp->hypos);
|
size_t n_hypos = gu_seq_length(tp->hypos);
|
||||||
jobjectArray jhypos = (*env)->NewObjectArray(env, n_hypos, hypo_class, NULL);
|
jobjectArray jhypos = (*env)->NewObjectArray(env, n_hypos, hypo_class, NULL);
|
||||||
|
for (size_t i = 0; i < n_hypos; i++) {
|
||||||
|
PgfHypo *hypo = gu_seq_index(tp->hypos, PgfHypo, i);
|
||||||
|
jobject jhypo = (*env)->NewObject(env, hypo_class, constrId, self, p2l(hypo));
|
||||||
|
(*env)->SetObjectArrayElement(env, jhypos, i, jhypo);
|
||||||
|
(*env)->DeleteLocalRef(env, jhypo);
|
||||||
|
}
|
||||||
return jhypos;
|
return jhypos;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1305,6 +1311,18 @@ Java_org_grammaticalframework_pgf_Type_toString(JNIEnv* env, jobject self)
|
|||||||
return jstr;
|
return jstr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jobject JNICALL
|
||||||
|
Java_org_grammaticalframework_pgf_Hypo_getType(JNIEnv* env, jobject self)
|
||||||
|
{
|
||||||
|
PgfHypo* hypo = get_ref(env, self);
|
||||||
|
|
||||||
|
jclass type_class = (*env)->FindClass(env, "org/grammaticalframework/pgf/Type");
|
||||||
|
jmethodID constrId = (*env)->GetMethodID(env, type_class, "<init>", "(Ljava/lang/Object;J)V");
|
||||||
|
jobject jtype = (*env)->NewObject(env, type_class, constrId, self, p2l(hypo->type));
|
||||||
|
|
||||||
|
return jtype;
|
||||||
|
}
|
||||||
|
|
||||||
JNIEXPORT jobject JNICALL
|
JNIEXPORT jobject JNICALL
|
||||||
Java_org_grammaticalframework_pgf_Generator_generateAll(JNIEnv* env, jclass clazz, jobject jpgf, jstring jstartCat)
|
Java_org_grammaticalframework_pgf_Generator_generateAll(JNIEnv* env, jclass clazz, jobject jpgf, jstring jstartCat)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,4 +8,15 @@ public class Hypo {
|
|||||||
|
|
||||||
/** The type for this hypothesis */
|
/** The type for this hypothesis */
|
||||||
public native Type getType();
|
public native Type getType();
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////
|
||||||
|
// private stuff
|
||||||
|
|
||||||
|
private Object master;
|
||||||
|
private long ref;
|
||||||
|
|
||||||
|
private Hypo(Object master, long ref) {
|
||||||
|
this.master = master;
|
||||||
|
this.ref = ref;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user