package org.jboss.resteasy.plugins.providers.atom;
import javax.ws.rs.core.MediaType;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import java.net.URI;
/**
* <p>Per RFC4287:</p>
* <p/>
* <pre>
* The "atom:link" element defines a reference from an entry or feed to
* a Web resource. This specification assigns no meaning to the content
* (if any) of this element.
* <p/>
* atomLink =
* element atom:link {
* atomCommonAttributes,
* attribute href { atomUri },
* attribute rel { atomNCName | atomUri }?,
* attribute type { atomMediaType }?,
* attribute hreflang { atomLanguageTag }?,
* attribute title { text }?,
* attribute length { text }?,
* undefinedContent
* }
* </pre>
*
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
@XmlRootElement(name = "link")
@XmlAccessorType(XmlAccessType.PROPERTY)
public class Link extends CommonAttributes
{
protected URI href;
protected String rel;
protected MediaType type;
protected String hreflang;
protected String title;
protected String length;
public Link()
{
}
public Link(String rel, URI href)
{
this.rel = rel;
this.href = href;
}
public Link(String rel, URI href, MediaType type)
{
this.rel = rel;
this.href = href;
this.type = type;
}
public Link(String rel, String href)
{
this.rel = rel;
this.href = URI.create(href);
}
public Link(String rel, String href, MediaType type)
{
this.rel = rel;
this.href = URI.create(href);
this.type = type;
}
public Link(String rel, String href, String type)
{
this.rel = rel;
this.href = URI.create(href);
this.type = MediaType.valueOf(type);
}
@XmlAttribute(required = true)
public URI getHref()
{
return href;
}
public void setHref(URI href)
{
this.href = href;
}
@XmlAttribute
public String getRel()
{
return rel;
}
public void setRel(String rel)
{
this.rel = rel;
}
@XmlAttribute
public MediaType getType()
{
return type;
}
public void setType(MediaType type)
{
this.type = type;
}
@XmlAttribute
public String getHreflang()
{
return hreflang;
}
public void setHreflang(String hreflang)
{
this.hreflang = hreflang;
}
@XmlAttribute
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
@XmlAttribute
public String getLength()
{
return length;
}
public void setLength(String length)
{
this.length = length;
}
}