assign function categories based on extant example

This commit is contained in:
Jonathan Shook 2021-11-12 19:56:10 -06:00
parent f599f66516
commit 79547218df

View File

@ -4,16 +4,18 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import io.nosqlbench.nb.api.content.NBIO;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.core.bindings.VirtDataDocs;
import io.nosqlbench.virtdata.api.processors.DocFuncData;
import io.nosqlbench.virtdata.core.bindings.VirtDataDocs;
import io.nosqlbench.virtdata.userlibs.apps.docsapp.fdocs.FDoc;
import io.nosqlbench.virtdata.userlibs.apps.docsapp.fdocs.FDocCat;
import io.nosqlbench.virtdata.userlibs.apps.docsapp.fdocs.FDocFunc;
import io.nosqlbench.virtdata.userlibs.apps.docsapp.fdocs.FDocFuncs;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.*;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
@ -66,7 +68,7 @@ public class VirtDataGenDocsApp implements Runnable {
while (largs.peekFirst() != null) {
String argtype = largs.removeFirst();
if (largs.peekFirst() == null) {
throw new RuntimeException(VirtDataGenDocsApp.class.toString() + " expects args in param value couplets.");
throw new RuntimeException(VirtDataGenDocsApp.class + " expects args in param value couplets.");
}
String argval = largs.removeFirst().toLowerCase();
@ -167,8 +169,25 @@ public class VirtDataGenDocsApp implements Runnable {
List<DocFuncData> allDocs = VirtDataDocs.getAllDocs();
for (DocFuncData docFuncData : allDocs) {
FDocFunc fDocFunc = new FDocFunc(docFuncData);
Set<Category> categories =
fDocFunc.getCategories().size()==0 ? Set.of(Category.general) : fDocFunc.getCategories();
Set<Category> categories = fDocFunc.getCategories();
if (categories.size() == 0) {
for (FDocCat knownCategoriy : docsinfo) {
for (FDocFuncs knownFunctionDocs : knownCategoriy) {
if (knownFunctionDocs.getFunctionName().equals(fDocFunc.getFuncName())) {
categories = knownFunctionDocs.iterator().next().getCategories();
break;
}
}
if (categories.size() > 0) {
break;
}
}
}
if (categories.size()==0) {
categories = Set.of(Category.general);
logger.warn("Assigned generic category to " + fDocFunc.getFuncName());
}
for (Category categoryName : categories) {
FDocCat fDocCat = docsinfo.addCategory(categoryName.toString());
fDocCat.addFunctionDoc(fDocFunc);