class FDFAnnotationTextMarkup extends FDFAnnotation
{
    /**
     * Default constructor.
     */
    public FDFAnnotationTextMarkup()
    {
        super();
    }

    /**
     * Constructor.
     *
     * @param a An existing FDF Annotation.
     */
    public FDFAnnotationTextMarkup(COSDictionary a)
    {
        super(a);
    }

    /**
     * Constructor.
     *
     * @param element An XFDF element.
     *
     * @throws IOException If there is an error extracting information from the element.
     */
    public FDFAnnotationTextMarkup(Element element) throws IOException
    {
        super(element);

        String coords = element.getAttribute("coords");
        if (coords == null || coords.isEmpty())
        {
            throw new IOException("Error: missing attribute 'coords'");
        }
        String[] coordsValues = coords.split(",");
        if (coordsValues.length < 8)
        {
            throw new IOException("Error: too little numbers in attribute 'coords'");
        }
        float[] values = new float[coordsValues.length];
        for (int i = 0; i < coordsValues.length; i++)
        {
            values[i] = Float.parseFloat(coordsValues[i]);
        }
        setCoords(values);
    }

    /**
     * Set the coordinates of individual words or group of words.
     * 
     * The quadliterals shall encompasses a word or group of contiguous words in the text underlying the annotation. The
     * coordinates for each quadrilateral shall be given in the order x1 y1 x2 y2 x3 y3 x4 y4.
     *
     * @param coords an array of 8 􏰍 n numbers specifying the coordinates of n quadrilaterals.
     */
    public void setCoords(float[] coords)
    {
        annot.setItem(COSName.QUADPOINTS, COSArray.of(coords));
    }

    /**
     * Get the coordinates of individual words or group of words.
     * 
     * @see #setCoords(float[])
     * @return the array of 8 􏰍 n numbers specifying the coordinates of n quadrilaterals.
     */
    public float[] getCoords()
    {<FILL_FUNCTION_BODY>}

}

        COSArray quadPoints = annot.getCOSArray(COSName.QUADPOINTS);
        if (quadPoints != null)
        {
            return quadPoints.toFloatArray();
        }
        else
        {
            return null; // Should never happen as this is a required item
        }
    
<methods>public void <init>() ,public void <init>(org.apache.pdfbox.cos.COSDictionary) ,public void <init>(org.w3c.dom.Element) throws java.io.IOException,public static org.apache.pdfbox.pdmodel.fdf.FDFAnnotation create(org.apache.pdfbox.cos.COSDictionary) ,public org.apache.pdfbox.pdmodel.interactive.annotation.PDBorderEffectDictionary getBorderEffect() ,public org.apache.pdfbox.pdmodel.interactive.annotation.PDBorderStyleDictionary getBorderStyle() ,public org.apache.pdfbox.cos.COSDictionary getCOSObject() ,public java.awt.Color getColor() ,public java.lang.String getContents() ,public java.util.Calendar getCreationDate() throws java.io.IOException,public java.lang.String getDate() ,public java.lang.String getIntent() ,public java.lang.String getName() ,public float getOpacity() ,public java.lang.Integer getPage() ,public org.apache.pdfbox.pdmodel.common.PDRectangle getRectangle() ,public java.lang.String getRichContents() ,public java.lang.String getSubject() ,public java.lang.String getTitle() ,public boolean isHidden() ,public boolean isInvisible() ,public boolean isLocked() ,public boolean isLockedContents() ,public boolean isNoRotate() ,public boolean isNoView() ,public boolean isNoZoom() ,public boolean isPrinted() ,public boolean isReadOnly() ,public boolean isToggleNoView() ,public final void setBorderEffect(org.apache.pdfbox.pdmodel.interactive.annotation.PDBorderEffectDictionary) ,public final void setBorderStyle(org.apache.pdfbox.pdmodel.interactive.annotation.PDBorderStyleDictionary) ,public final void setColor(java.awt.Color) ,public final void setContents(java.lang.String) ,public final void setCreationDate(java.util.Calendar) ,public final void setDate(java.lang.String) ,public final void setHidden(boolean) ,public final void setIntent(java.lang.String) ,public final void setInvisible(boolean) ,public final void setLocked(boolean) ,public void setLockedContents(boolean) ,public final void setName(java.lang.String) ,public final void setNoRotate(boolean) ,public final void setNoView(boolean) ,public final void setNoZoom(boolean) ,public final void setOpacity(float) ,public final void setPage(int) ,public final void setPrinted(boolean) ,public final void setReadOnly(boolean) ,public final void setRectangle(org.apache.pdfbox.pdmodel.common.PDRectangle) ,public final void setRichContents(java.lang.String) ,public final void setSubject(java.lang.String) ,public final void setTitle(java.lang.String) ,public final void setToggleNoView(boolean) <variables>private static final int FLAG_HIDDEN,private static final int FLAG_INVISIBLE,private static final int FLAG_LOCKED,private static final int FLAG_LOCKED_CONTENTS,private static final int FLAG_NO_ROTATE,private static final int FLAG_NO_VIEW,private static final int FLAG_NO_ZOOM,private static final int FLAG_PRINTED,private static final int FLAG_READ_ONLY,private static final int FLAG_TOGGLE_NO_VIEW,private static final Logger LOG,protected final non-sealed org.apache.pdfbox.cos.COSDictionary annot