package org.zwobble.mammoth.internal.documents; import java.util.List; import java.util.Optional; public class Hyperlink implements DocumentElement, HasChildren { public static Hyperlink href(String href, Optional targetFrame, List children) { return new Hyperlink(Optional.of(href), Optional.empty(), targetFrame, children); } public static Hyperlink anchor(String anchor, Optional targetFrame, List children) { return new Hyperlink(Optional.empty(), Optional.of(anchor), targetFrame, children); } private final Optional href; private final Optional anchor; private final Optional targetFrame; private final List children; public Hyperlink(Optional href, Optional anchor, Optional targetFrame, List children) { this.href = href; this.anchor = anchor; this.targetFrame = targetFrame; this.children = children; } public Optional getHref() { return href; } public Optional getAnchor() { return anchor; } public Optional getTargetFrame() { return targetFrame; } @Override public List getChildren() { return children; } @Override public Hyperlink replaceChildren(List newChildren) { return new Hyperlink(this.href, this.anchor, this.targetFrame, newChildren); } @Override public T accept(DocumentElementVisitor visitor, U context) { return visitor.visit(this, context); } }