package net.rubygrapefruit.docs.model.buildable; import net.rubygrapefruit.docs.model.CrossReference; import net.rubygrapefruit.docs.model.Inline; import net.rubygrapefruit.docs.model.Referenceable; import java.util.Arrays; import java.util.List; public class BuildableCrossReference extends BuildableInlineContainer implements CrossReference, BuildableInline { private final Referenceable target; public BuildableCrossReference(Referenceable target) { this.target = target; } public Referenceable getTarget() { return target; } @Override public List<? extends Inline> getContents() { List<? extends Inline> contents = super.getContents(); if (contents.isEmpty()) { BuildableText text = new BuildableText(); text.append(target.getReferenceText()); return Arrays.asList(text); } return contents; } }