std::string SwigDirector_CppClass::getLanguage() const {
    std::string c_result ;
    jstring jresult = 0 ;
    JNIEnvWrapper swigjnienv(this) ;
    JNIEnv * jenv = swigjnienv.getJNIEnv() ;
    jobject swigjobj = (jobject) NULL ;

    if (!swig_override[0]) {
        return CppClass::getLanguage();
    }
    swigjobj = swig_get_self(jenv);
    if (swigjobj && jenv->IsSameObject(swigjobj, NULL) == JNI_FALSE) {
        jresult = (jstring) jenv->CallStaticObjectMethod(Swig::jclass_director_testJNI, Swig::director_methids[0], swigjobj);
        if (jenv->ExceptionCheck() == JNI_TRUE) return c_result;
        if(!jresult) {
            SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
            return c_result;
        }
        const char *c_result_pstr = (const char *)jenv->GetStringUTFChars(jresult, 0);
        if (!c_result_pstr) return c_result;
        c_result.assign(c_result_pstr);
        jenv->ReleaseStringUTFChars(jresult, c_result_pstr);
    } else {
        SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null upcall object");
    }
    if (swigjobj) jenv->DeleteLocalRef(swigjobj);
    return c_result;
}
/* VTable implementation */
    PyObject *swig_get_method(size_t method_index, const char *method_name) const {
      PyObject *method = vtable[method_index];
      if (!method) {
        swig::SwigVar_PyObject name = SWIG_Python_str_FromChar(method_name);
        method = PyObject_GetAttr(swig_get_self(), name);
        if (!method) {
          std::string msg = "Method in class OTNameLookup doesn't exist, undefined ";
          msg += method_name;
          Swig::DirectorMethodException::raise(msg.c_str());
        }
        vtable[method_index] = method;
      }
      return method;
    }