本文整理汇总了C++中SWModule::getEntryAttributes方法的典型用法代码示例。如果您正苦于以下问题:C++ SWModule::getEntryAttributes方法的具体用法?C++ SWModule::getEntryAttributes怎么用?C++ SWModule::getEntryAttributes使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SWModule
的用法示例。
在下文中一共展示了SWModule::getEntryAttributes方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char **argv) {
if (argc != 2) {
cerr << "\nusage: " << *argv << " <modName>\n" << endl;
exit(-1);
}
SWMgr library(new MarkupFilterMgr(FMT_XHTML));
library.setGlobalOption("Headings", "On");
SWModule *module = library.getModule(argv[1]);
if (!module) {
cerr << "\nCouldn't find module: " << argv[1] << "\n" << endl;
exit(-2);
}
module->setKey("Ps.3.1");
outputCurrentVerse(module);
module->setKey("Mark.1.14");
outputCurrentVerse(module);
cout << "\nWhitespace tests around headings:\n";
((VerseKey *)module->getKey())->setIntros(true);
*module = TOP;
// module heading
cout << module->renderText() << "\n";
(*module)++;
// testament heading
cout << module->renderText() << "\n";
(*module)++;
// book heading
cout << module->renderText() << "\n";
(*module)++;
// chapter heading
cout << module->renderText() << "\n";
(*module)++;
// verse body
module->renderText();
SWBuf header = module->getEntryAttributes()["Heading"]["Preverse"]["0"];
cout << module->renderText(header) << endl;
cout << "[ " << module->getKeyText() << " ] " << module->renderText() << "\n";
(*module)++;
// verse body
module->renderText();
header = module->getEntryAttributes()["Heading"]["Preverse"]["0"];
cout << module->renderText(header) << endl;
cout << "[ " << module->getKeyText() << " ] " << module->renderText() << "\n";
return 0;
}
示例2:
const char *SWModule_getEntryAttributes(SWHANDLE hmodule, const char *level1, const char *level2, const char *level3) {
SWModule *module = (SWModule *)hmodule;
static SWBuf retval;
module->renderText();
retval = module->getEntryAttributes()[level1][level2][level3].c_str();
return (retval.length()) ? (const char*)retval.c_str() : NULL;
}
示例3: getVerses
std::string SwordPluginAPI::getVerses(const std::string& moduleName, const std::string& key, const std::string& single) {
/*Get verses from a specific module (e.g. "ESV"). Set your biblepassage in key e.g. "James 1:19" */
std::stringstream passage;
std::stringstream tmpPassage;
std::stringstream out;
SWModule *module = displayLibrary->getModule(moduleName.c_str());
/* if (!module || !(strcmp(module->Type(), "Biblical Texts") == 0 || strcmp(module->Type(), "Commentaries") == 0)) {
PDL_JSException(parms, "getVerses: Module isn't verse driven (no bible or commentary). Currently BibleZ HD doesn't support Generic Books and Lexicons / Dictionaries!");
return PDL_TRUE;
} */
//module->setKey(key);
//VerseKey *vk = (VerseKey*)module->getKey();
VerseKey *vk = dynamic_cast<VerseKey *>(module->getKey());
//vk->AutoNormalize(false);
vk->Headings(true);
vk->setText(key.c_str());
ListKey verses = VerseKey().ParseVerseList(key.c_str(), "", true);
passage << "{\"bookName\": \"" << vk->getBookName() << "\", \"cnumber\": \"" << vk->Chapter() << "\", \"vnumber\": \"" << vk->Verse() << "\", \"passageSingle\" : \"" << vk->getBookName() << " " << vk->Chapter() << ":" << vk->Verse() << "\", \"passage\" : \"" << vk->getBookName() << " " << vk->Chapter() << "\", \"abbrev\": \"" << vk->getBookAbbrev() << "\"}";
if (single == "true") {
verses = VerseKey().ParseVerseList(key.c_str(), "", true);
} else {
tmpPassage << vk->getBookName() << " " << vk->Chapter();
verses = VerseKey().ParseVerseList(tmpPassage.str().c_str(), "", true);
}
AttributeTypeList::iterator i1;
AttributeList::iterator i2;
AttributeValue::iterator i3;
out << "[";
for (verses = TOP; !verses.Error(); verses++) {
vk->setText(verses);
if (strcmp(module->RenderText(), "") != 0) {
//headingOn = 0;
out << "{\"content\": \"" << convertString(module->RenderText()) << "\", ";
out << "\"vnumber\": \"" << vk->Verse() << "\", ";
out << "\"cnumber\": \"" << vk->Chapter() << "\"";
out << ", \"heading\": \"" << convertString(module->getEntryAttributes()["Heading"]["Preverse"]["0"].c_str()) << "\"";
for (i1 = module->getEntryAttributes().begin(); i1 != module->getEntryAttributes().end(); i1++) {
if (strcmp(i1->first, "Footnote") == 0) {
out << ", \"footnotes\": [";
for (i2 = i1->second.begin(); i2 != i1->second.end(); i2++) {
out << "{";
for (i3 = i2->second.begin(); i3 != i2->second.end(); i3++) {
out << "\"" << i3->first << "\": \"" << convertString(i3->second.c_str()) << "\"";
//footnotesOn = 1;
if (i3 != --i2->second.end()) {
out << ", ";
}
}
out << "}";
if (i2 != --i1->second.end()) {
out << ", ";
}
}
out << "]";
} /*else if (strcmp(i1->first, "Word") == 0) {
out << ", \"words\": [";
for (i2 = i1->second.begin(); i2 != i1->second.end(); i2++) {
out << "{";
for (i3 = i2->second.begin(); i3 != i2->second.end(); i3++) {
out << "\"" << i3->first << "\": \"" << convertString(i3->second.c_str()) << "\"";
if (i3 != --i2->second.end()) {
out << ", ";
}
}
out << "}";
if (i2 != --i1->second.end()) {
out << ", ";
}
}
out << "]";
} */
}
if (vk->Chapter() == 1 && vk->Verse() == 1) {
vk->setChapter(0);
vk->setVerse(0);
out << ", \"intro\": \"" << convertString(module->RenderText()) << "\"";
}
out << "}";
ListKey helper = verses;
helper++;
if (!helper.Error()) {
out << ", ";
}
}
}
out << "]";
//.........这里部分代码省略.........
示例4: getModule
/*
* Class: org_crosswire_android_sword_SWModule
* Method: getEntryAttribute
* Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)[Ljava/lang/String;
*/
JNIEXPORT jobjectArray JNICALL Java_org_crosswire_android_sword_SWModule_getEntryAttribute
(JNIEnv *env, jobject me, jstring level1JS, jstring level2JS, jstring level3JS, jboolean filteredJS) {
init();
const char *level1 = env->GetStringUTFChars(level1JS, NULL);
const char *level2 = env->GetStringUTFChars(level2JS, NULL);
const char *level3 = env->GetStringUTFChars(level3JS, NULL);
bool filtered = (filteredJS == JNI_TRUE);
jclass clazzString = env->FindClass("java/lang/String");
jobjectArray ret = 0;
SWModule *module = getModule(env, me);
if (module) {
module->renderText(); // force parse
vector<SWBuf> results;
sword::AttributeTypeList &entryAttribs = module->getEntryAttributes();
sword::AttributeTypeList::iterator i1Start, i1End;
sword::AttributeList::iterator i2Start, i2End;
sword::AttributeValue::iterator i3Start, i3End;
if ((level1) && (*level1)) {
i1Start = entryAttribs.find(level1);
i1End = i1Start;
if (i1End != entryAttribs.end())
++i1End;
}
else {
i1Start = entryAttribs.begin();
i1End = entryAttribs.end();
}
for (;i1Start != i1End; ++i1Start) {
if ((level2) && (*level2)) {
i2Start = i1Start->second.find(level2);
i2End = i2Start;
if (i2End != i1Start->second.end())
++i2End;
}
else {
i2Start = i1Start->second.begin();
i2End = i1Start->second.end();
}
for (;i2Start != i2End; ++i2Start) {
if ((level3) && (*level3)) {
i3Start = i2Start->second.find(level3);
i3End = i3Start;
if (i3End != i2Start->second.end())
++i3End;
}
else {
i3Start = i2Start->second.begin();
i3End = i2Start->second.end();
}
for (;i3Start != i3End; ++i3Start) {
results.push_back(i3Start->second);
}
if (i3Start != i3End)
break;
}
if (i2Start != i2End)
break;
}
ret = (jobjectArray) env->NewObjectArray(results.size(), clazzString, NULL);
SWLog::getSystemLog()->logDebug("getEntryAttributes: size returned: %d", results.size());
for (int i = 0; i < results.size(); i++) {
if (filtered) {
env->SetObjectArrayElement(ret, i, env->NewStringUTF(assureValidUTF8(module->renderText(results[i].c_str()))));
}
else {
env->SetObjectArrayElement(ret, i, env->NewStringUTF(assureValidUTF8(results[i].c_str())));
}
}
}
env->ReleaseStringUTFChars(level3JS, level3);
env->ReleaseStringUTFChars(level2JS, level2);
env->ReleaseStringUTFChars(level1JS, level1);
return (ret) ? ret : (jobjectArray) env->NewObjectArray(0, clazzString, NULL);
}