class MarkedObject implements Element {

    /**
     * The element that is wrapped in a MarkedObject.
     */
    protected Element element;

    /**
     * Contains extra markupAttributes
     */
    protected Properties markupAttributes = new Properties();

    /**
     * This constructor is for internal use only.
     */
    protected MarkedObject() {
        element = null;
    }

    /**
     * Creates a MarkedObject.
     *
     * @param element an object of type {@link Element}
     */
    public MarkedObject(Element element) {
        this.element = element;
    }

    /**
     * Gets all the chunks in this element.
     *
     * @return an <CODE>ArrayList</CODE>
     */
    public ArrayList<Element> getChunks() {
        return element.getChunks();
    }

    /**
     * Processes the element by adding it (or the different parts) to an
     * <CODE>ElementListener</CODE>.
     *
     * @param listener an <CODE>ElementListener</CODE>
     * @return <CODE>true</CODE> if the element was processed successfully
     */
    public boolean process(ElementListener listener) {<FILL_FUNCTION_BODY>}

    /**
     * Gets the type of the text element.
     *
     * @return a type
     */
    public int type() {
        return MARKED;
    }

    /**
     * @see com.lowagie.text.Element#isContent()
     * @since iText 2.0.8
     */
    public boolean isContent() {
        return true;
    }

    /**
     * @see com.lowagie.text.Element#isNestable()
     * @since iText 2.0.8
     */
    public boolean isNestable() {
        return true;
    }

    /**
     * Getter for the markup attributes.
     *
     * @return the markupAttributes
     */
    public Properties getMarkupAttributes() {
        return markupAttributes;
    }

    /**
     * Adds one markup attribute.
     *
     * @param key   attribute's key
     * @param value attribute's value
     */
    public void setMarkupAttribute(String key, String value) {
        markupAttributes.setProperty(key, value);
    }

}

        try {
            return listener.add(element);
        } catch (DocumentException de) {
            return false;
        }
    
<no_super_class>