MCPcopy Create free account
hub / github.com/cschanck/single-file-java / Node

Class Node

src/main/java/org/sfj/DrawDot.java:455–525  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

453 }
454
455 public static class Node extends BaseAttributable<Node>
456 implements Child, Colored<Node>, Labeled<Node>, Shaped<Node>, NodeStyled<Node>, Commentable<Node> {
457 private final String id;
458 private final List<String> commentsBefore = new LinkedList<>();
459 private final List<String> commentsAfter = new LinkedList<>();
460
461 public Node(String id) {
462 this.id = id;
463 }
464
465 @Override
466 public List<String> getCommentsBefore() {
467 return commentsBefore;
468 }
469
470 @Override
471 public List<String> getCommentsAfter() {
472 return commentsAfter;
473 }
474
475 Node recordV(String... labels) {
476 shaped(Shapes.RECORD);
477 return label("{" + String.join(" | ", labels) + "}");
478 }
479
480 Node recordH(String... labels) {
481 shaped(Shapes.RECORD);
482 return label(String.join(" | ", labels));
483 }
484
485 @Override
486 public String id() {
487 return id;
488 }
489
490 @Override
491 public void emit(DrawDot dot, PrintWriter writer, String indent) {
492 for (String s : commentsBefore) {
493 writer.println(indent + "// " + s);
494 }
495 writer.print(indent);
496 writer.print('"' + id() + "\" ");
497 List<String> opts = new LinkedList<>();
498 emit(opts);
499 if (!opts.isEmpty()) {
500 writer.print(opts);
501 }
502 writer.println();
503 for (String s : commentsAfter) {
504 writer.println(indent + "// " + s);
505 }
506 }
507
508 @Override
509 public String toString() {
510 return "Node{" + "id='" + id + '\'' + "} " + super.toString();
511 }
512

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected