package nl.siegmann.epublib.domain; import java.io.Serializable; import org.rr.commons.utils.StringUtil; import nl.siegmann.epublib.Constants; public class TitledResourceReference extends ResourceReference implements Serializable { /** * */ private static final long serialVersionUID = 3918155020095190080L; private String fragmentId; private String title; public TitledResourceReference(Resource resource) { this(resource, null); } public TitledResourceReference(Resource resource, String title) { this(resource, title, null); } public TitledResourceReference(Resource resource, String title, String fragmentId) { super(resource); this.title = title; this.fragmentId = fragmentId; } public String getFragmentId() { return fragmentId; } public void setFragmentId(String fragmentId) { this.fragmentId = fragmentId; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } /** * If the fragmentId is blank it returns the resource href, otherwise it returns the resource href + '#' + the fragmentId. * * @return */ public String getCompleteHref() { if (StringUtil.isEmpty(fragmentId)) { return resource.getHref(); } else { return resource.getHref() + Constants.FRAGMENT_SEPARATOR_CHAR + fragmentId; } } public void setResource(Resource resource, String fragmentId) { super.setResource(resource); this.fragmentId = fragmentId; } /** * Sets the resource to the given resource and sets the fragmentId to null. * */ public void setResource(Resource resource) { setResource(resource, null); } }