class ChildTextElement extends TextElement {

    private final Node child;

    ChildTextElement(Node child) {
        this.child = child;
    }

    @Override
    public String expand() {
        return LexicalPreservingPrinter.print(child);
    }

    public Node getChild() {
        return child;
    }

    @Override
    public boolean isToken(int tokenKind) {
        return false;
    }

    @Override
    public boolean isNode(Node node) {
        return node == child;
    }

    NodeText getNodeTextForWrappedNode() {
        return LexicalPreservingPrinter.getOrCreateNodeText(child);
    }

    @Override
    public boolean equals(Object o) {<FILL_FUNCTION_BODY>}

    @Override
    public int hashCode() {
        return child.hashCode();
    }

    @Override
    public String toString() {
        return "ChildTextElement{" + child + '}';
    }

    @Override
    public boolean isWhiteSpace() {
        return false;
    }

    @Override
    public boolean isSpaceOrTab() {
        return false;
    }

    @Override
    public boolean isNewline() {
        return false;
    }

    @Override
    public boolean isComment() {
        return child instanceof Comment;
    }

    @Override
    public boolean isSeparator() {
        return false;
    }

    @Override
    public boolean isIdentifier() {
        return false;
    }

    @Override
    public boolean isKeyword() {
        return false;
    }

    @Override
    public boolean isPrimitive() {
        return false;
    }

    @Override
    public boolean isLiteral() {
        return false;
    }

    @Override
    public boolean isChildOfClass(Class<? extends Node> nodeClass) {
        return nodeClass.isInstance(child);
    }

    @Override
    Optional<Range> getRange() {
        return child.getRange();
    }

	@Override
	public void accept(LexicalPreservingVisitor visitor) {
		NodeText nodeText = getNodeTextForWrappedNode();
		nodeText.getElements().forEach(element -> element.accept(visitor));
	}
}

        if (this == o)
            return true;
        if (o == null || getClass() != o.getClass())
            return false;
        ChildTextElement that = (ChildTextElement) o;
        return child.equals(that.child);
    
<methods>public non-sealed void <init>() ,public boolean isChild() ,public abstract boolean isChildOfClass(Class<? extends com.github.javaparser.ast.Node>) ,public abstract boolean isComment() ,public abstract boolean isIdentifier() ,public abstract boolean isKeyword() ,public abstract boolean isLiteral() ,public abstract boolean isNewline() ,public abstract boolean isPrimitive() ,public abstract boolean isSeparator() ,public abstract boolean isSpaceOrTab() ,public abstract boolean isWhiteSpace() ,public final boolean isWhiteSpaceOrComment() ,public boolean match(com.github.javaparser.printer.lexicalpreservation.TextElement) <variables>