MCPcopy
hub / github.com/dgraph-io/dgraph / stringHelper

Method stringHelper

dql/parser.go:1470–1531  ·  view source on GitHub ↗

stringHelper does simple DFS to convert FilterTree to string. nolint: unused

(buf *bytes.Buffer)

Source from the content-addressed store, hash-verified

1468// stringHelper does simple DFS to convert FilterTree to string.
1469// nolint: unused
1470func (f *FilterTree) stringHelper(buf *bytes.Buffer) {
1471 x.AssertTrue(f != nil)
1472 if f.Func != nil && len(f.Func.Name) > 0 {
1473 // Leaf node.
1474 x.Check2(buf.WriteRune('('))
1475 x.Check2(buf.WriteString(f.Func.Name))
1476
1477 if len(f.Func.Attr) > 0 {
1478 x.Check2(buf.WriteRune(' '))
1479 switch {
1480 case f.Func.IsCount:
1481 x.Check2(buf.WriteString("count("))
1482 case f.Func.IsValueVar:
1483 x.Check2(buf.WriteString("val("))
1484 case f.Func.IsLenVar:
1485 x.Check2(buf.WriteString("len("))
1486 }
1487 x.Check2(buf.WriteString(f.Func.Attr))
1488 if f.Func.IsCount || f.Func.IsValueVar || f.Func.IsLenVar {
1489 x.Check2(buf.WriteRune(')'))
1490 }
1491 if len(f.Func.Lang) > 0 {
1492 x.Check2(buf.WriteRune('@'))
1493 x.Check2(buf.WriteString(f.Func.Lang))
1494 }
1495
1496 for _, arg := range f.Func.Args {
1497 if arg.IsValueVar {
1498 x.Check2(buf.WriteString(" val("))
1499 } else {
1500 x.Check2(buf.WriteString(" \""))
1501 }
1502 x.Check2(buf.WriteString(arg.Value))
1503 if arg.IsValueVar {
1504 x.Check2(buf.WriteRune(')'))
1505 } else {
1506 x.Check2(buf.WriteRune('"'))
1507 }
1508 }
1509 }
1510 x.Check2(buf.WriteRune(')'))
1511 return
1512 }
1513 // Non-leaf node.
1514 x.Check2(buf.WriteRune('('))
1515 switch f.Op {
1516 case "and":
1517 x.Check2(buf.WriteString("AND"))
1518 case "or":
1519 x.Check2(buf.WriteString("OR"))
1520 case "not":
1521 x.Check2(buf.WriteString("NOT"))
1522 default:
1523 x.Fatalf("Unknown operator: %q", f.Op)
1524 }
1525
1526 for _, c := range f.Child {
1527 x.Check2(buf.WriteRune(' '))

Callers 1

debugStringMethod · 0.95

Calls 3

AssertTrueFunction · 0.92
Check2Function · 0.92
FatalfFunction · 0.92

Tested by

no test coverage detected