class RomanList extends List {

    // constructors

    /**
     * Initialization
     */
    public RomanList() {
        super(true);
    }

    /**
     * Initialization
     *
     * @param symbolIndent indent
     */
    public RomanList(int symbolIndent) {
        super(true, symbolIndent);
    }

    /**
     * Initialization
     *
     * @param lowercase    roman-char in lowercase
     * @param symbolIndent indent
     */
    public RomanList(boolean lowercase, int symbolIndent) {
        super(true, symbolIndent);
        this.lowercase = lowercase;
    }

    // overridden methods

    /**
     * Adds an <CODE>Element</CODE> to the <CODE>List</CODE>.
     *
     * @param o the element to add.
     * @return true if adding the element succeeded
     */
    @Override
    public boolean add(Element o) {<FILL_FUNCTION_BODY>}

    /**
     * Adds a <CODE>String</CODE> to the <CODE>List</CODE>.
     *
     * @param s the string to add.
     * @return true if adding the string succeeded
     */
    @Override
    public boolean add(String s) {
        return this.add(new ListItem(s));
    }

}

        if (o instanceof ListItem) {
            ListItem item = (ListItem) o;
            Chunk chunk;
            chunk = new Chunk(preSymbol, symbol.getFont());
            chunk.append(RomanNumberFactory.getString(first + list.size(), lowercase));
            chunk.append(postSymbol);
            item.setListSymbol(chunk);
            item.setIndentationLeft(symbolIndent, autoindent);
            item.setIndentationRight(0);
            list.add(item);
        } else if (o instanceof List) {
            List nested = (List) o;
            nested.setIndentationLeft(nested.getIndentationLeft() + symbolIndent);
            first--;
            return list.add(nested);
        }
        return false;
    
<methods>public void <init>() ,public void <init>(float) ,public void <init>(boolean) ,public void <init>(boolean, boolean) ,public void <init>(boolean, float) ,public void <init>(boolean, boolean, float) ,public boolean add(com.lowagie.text.Element) ,public boolean add(com.lowagie.text.List) ,public boolean add(java.lang.String) ,public ArrayList<com.lowagie.text.Element> getChunks() ,public int getFirst() ,public float getIndentationLeft() ,public float getIndentationRight() ,public List<com.lowagie.text.Element> getItems() ,public java.lang.String getPostSymbol() ,public java.lang.String getPreSymbol() ,public com.lowagie.text.Chunk getSymbol() ,public float getSymbolIndent() ,public float getTotalLeading() ,public boolean isAlignindent() ,public boolean isAutoindent() ,public boolean isContent() ,public boolean isEmpty() ,public boolean isLettered() ,public boolean isLowercase() ,public boolean isNestable() ,public boolean isNumbered() ,public void normalizeIndentation() ,public boolean process(com.lowagie.text.ElementListener) ,public void setAlignindent(boolean) ,public void setAutoindent(boolean) ,public void setFirst(int) ,public void setIndentationLeft(float) ,public void setIndentationRight(float) ,public void setLettered(boolean) ,public void setListSymbol(com.lowagie.text.Chunk) ,public void setListSymbol(java.lang.String) ,public void setLowercase(boolean) ,public void setNumbered(boolean) ,public void setPostSymbol(java.lang.String) ,public void setPreSymbol(java.lang.String) ,public void setSymbolIndent(float) ,public int size() ,public int type() <variables>public static final boolean ALPHABETICAL,public static final boolean LOWERCASE,public static final boolean NUMERICAL,public static final boolean ORDERED,public static final boolean UNORDERED,public static final boolean UPPERCASE,protected boolean alignindent,protected boolean autoindent,protected int first,protected float indentationLeft,protected float indentationRight,protected boolean lettered,protected List<com.lowagie.text.Element> list,protected boolean lowercase,protected boolean numbered,protected java.lang.String postSymbol,protected java.lang.String preSymbol,protected com.lowagie.text.Chunk symbol,protected float symbolIndent