package org.jboss.resteasy.plugins.providers.atom.app;

import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlType;
import jakarta.xml.bind.annotation.XmlValue;

/**
 * <p>
 * Per RFC5023:
 * </p>
 *
 * <pre>
 * The content of an "app:accept" element value is a media range as
 * defined in [RFC2616].  The media range specifies a type of
 * representation that can be POSTed to a Collection.
 *
 * The app:accept element is similar to the HTTP Accept request-header
 * [RFC2616].  Media type parameters are allowed within app:accept, but
 * app:accept has no notion of preference -- "accept-params" or "q"
 * arguments, as specified in Section 14.1 of [RFC2616] are not
 * significant.
 *
 * White space (as defined in [REC-xml]) around the app:accept element's
 * media range is insignificant and MUST be ignored.
 *
 * A value of "application/atom+xml;type=entry" MAY appear in any app:
 * accept list of media ranges and indicates that Atom Entry Documents
 * can be POSTed to the Collection.  If no app:accept element is
 * present, clients SHOULD treat this as equivalent to an app:accept
 * element with the content "application/atom+xml;type=entry".
 *
 * If one app:accept element exists and is empty, clients SHOULD assume
 * that the Collection does not support the creation of new Entries.
 *
 * appAccept =
 *    element app:accept {
 *          appCommonAttributes,
 *          ( text? )
 *    }
 * </pre>
 *
 * @author <a href="mailto:kurt.stam@gmail.com">Kurt Stam</a>
 * @version $Revision: 1 $
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
        "content"
})
@XmlRootElement(name = "accept")
public class AppAccept extends AppCommonAttributes {

    private static final long serialVersionUID = 8792589507058023990L;
    @XmlValue
    protected String content;

    public AppAccept() {
    }

    public AppAccept(final String content) {
        super();
        this.content = content;
    }

    /**
     * Gets the value of the content property.
     *
     * @return
     *         possible object is
     *         {@link String }
     *
     */
    public String getContent() {
        return content;
    }

    /**
     * Sets the value of the content property.
     *
     * @param value
     *              allowed object is
     *              {@link String }
     *
     */
    public void setContent(String value) {
        this.content = value;
    }
}
