char *SWModule_impl::getKeyParent() throw(CORBA::SystemException) { sword::SWKey *key = delegate->getKey(); SWBuf retVal = ""; TreeKeyIdx *tkey = SWDYNAMIC_CAST(TreeKeyIdx, key); if (tkey) { if (tkey->parent()) { retVal = tkey->getText(); } } return CORBA::string_dup((const char *)retVal); }
/* * Class: org_crosswire_android_sword_SWModule * Method: getKeyParent * Signature: ()Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_org_crosswire_android_sword_SWModule_getKeyParent (JNIEnv *env, jobject me) { init(); SWBuf retVal = ""; SWModule *module = getModule(env, me); if (module) { sword::SWKey *key = module->getKey(); TreeKeyIdx *tkey = SWDYNAMIC_CAST(TreeKeyIdx, key); if (tkey) { if (tkey->parent()) { retVal = tkey->getText(); } } } return env->NewStringUTF(assureValidUTF8(retVal)); }
int main(int argc, char **argv) { if (argc != 2) { fprintf(stderr, "usage: %s <tree/key/data/path>\n", *argv); exit(-1); } TreeKeyIdx *treeKey = new TreeKeyIdx(argv[1]); if (treeKey->Error()) { RawGenBook::createModule(argv[1]); } delete treeKey; RawGenBook *book = new RawGenBook(argv[1]); TreeKeyIdx root = *((TreeKeyIdx *)((SWKey *)(*book))); treeKey = (TreeKeyIdx *)(SWKey *)(*book); SWBuf input; char line[1024]; do { std::cout << "[" << treeKey->getText() << "] > "; fgets(line, 1000, stdin); input = line; input.trim(); if (input.length() > 0) { switch (input[0]) { case 'n': printLocalName(treeKey); break; case 's': setLocalName(treeKey); break; case 'g': gotoPath(treeKey); break; case 'G': assurePath(treeKey); break; case 'p': root.root(); printTree(root, treeKey); break; case 'a': appendSibbling(treeKey); break; case 'c': appendChild(treeKey); break; case 'd': deleteNode(treeKey); break; case 'j': treeKey->nextSibling(); break; case 'k': treeKey->previousSibling(); break; case 'h': treeKey->parent(); break; case 'l': treeKey->firstChild(); break; case 'r': treeKey->root(); break; case 't': setEntryText(book); break; case 'v': viewEntryText(book); break; case 'q': break; case '?': default: std::cout << "\n p - print tree\n"; std::cout << " n - get local name\n"; std::cout << " s - set local name\n"; std::cout << " j - next sibbling\n"; std::cout << " k - previous sibbling\n"; std::cout << " h - parent\n"; std::cout << " l - first child\n"; std::cout << " r - root\n"; std::cout << " g - goto path\n"; std::cout << " G goto path; create if it doesn't exist\n"; std::cout << " a - append sibbling\n"; std::cout << " c - append child\n"; std::cout << " d - delete node\n"; std::cout << " v - view entry text\n"; std::cout << " t - set entry text\n"; std::cout << " q - quit\n\n"; break; } } } while (input.compare("q")); delete treeKey; return 0; }
int main(int argc, char **argv) { if (argc != 2) { fprintf(stderr, "usage: %s <tree/key/data/path>\n", *argv); exit(-1); } TreeKeyIdx *treeKey = new TreeKeyIdx(argv[1]); if (treeKey->Error()) { treeKey->create(argv[1]); delete treeKey; treeKey = new TreeKeyIdx(argv[1]); } TreeKeyIdx root = *treeKey; std::string input; char line[1024]; do { std::cout << "[" << treeKey->getText() << "] > "; fgets(line, 1000, stdin); input = line; if (input.length() > 0) { switch (input[0]) { case 'n': printLocalName(treeKey); break; case 's': setLocalName(treeKey); break; case 'p': root.root(); printTree(root, treeKey); break; case 'a': appendSibbling(treeKey); break; case 'c': appendChild(treeKey); break; case 'j': treeKey->nextSibling(); break; case 'g': assurePath(treeKey); break; case 'k': treeKey->previousSibling(); break; case 'h': treeKey->parent(); break; case 'l': treeKey->firstChild(); break; case 'r': treeKey->root(); break; case 'q': break; case '?': default: std::cout << "\n p - print tree\n"; std::cout << " n - get local name\n"; std::cout << " s - set local name\n"; std::cout << " j - next sibbling\n"; std::cout << " k - previous sibbling\n"; std::cout << " h - parent\n"; std::cout << " l - first child\n"; std::cout << " r - root\n"; std::cout << " a - append sibbling\n"; std::cout << " c - append child\n"; std::cout << " u - get user data\n"; std::cout << " d - set user data\n"; std::cout << " g - goto path; create if it doesn't exist\n"; std::cout << " q - quit\n\n"; break; } } } while (input.compare("q")); delete treeKey; return 0; }