MCPcopy Create free account
hub / github.com/BaseXdb/basex / path

Method path

basex-core/src/main/java/org/basex/gui/view/ViewData.java:47–73  ·  view source on GitHub ↗

Returns path for the specified PRE value. @param data data reference @param pre PRE value @return current path

(final Data data, final int pre)

Source from the content-addressed store, hash-verified

45 * @return current path
46 */
47 public static byte[] path(final Data data, final int pre) {
48 if(data == null || pre >= data.meta.size) return Token.EMPTY;
49
50 final IntList pres = new IntList();
51 int p = pre, k = data.kind(p);
52 while(k != Data.DOC) {
53 pres.add(p);
54 p = data.parent(p, k);
55 k = data.kind(p);
56 }
57
58 final TokenBuilder tb = new TokenBuilder();
59 tb.add(Function._DB_GET.args(data.meta.name, Token.string(data.text(p, true))).trim());
60 for(int i = pres.size() - 1; i >= 0; i--) {
61 p = pres.get(i);
62 k = data.kind(p);
63 final byte[] txt = switch(k) {
64 case Data.TEXT -> TEXT;
65 case Data.COMM -> COMMENT;
66 case Data.PI -> PI;
67 case Data.ATTR -> Token.concat(XMLToken.AT, data.name(p, k));
68 default -> data.name(p, k);
69 };
70 tb.add('/').add(txt);
71 }
72 return tb.finish();
73 }
74
75 /**
76 * Returns textual contents for the specified node.

Callers 5

executeMethod · 0.95
focusMethod · 0.95
setFilesMethod · 0.45
setFileMethod · 0.45
setTitleMethod · 0.45

Calls 14

addMethod · 0.95
addMethod · 0.95
stringMethod · 0.95
getMethod · 0.95
concatMethod · 0.95
finishMethod · 0.95
kindMethod · 0.65
argsMethod · 0.65
sizeMethod · 0.65
nameMethod · 0.65
addMethod · 0.65
parentMethod · 0.45

Tested by

no test coverage detected