Statistics
| Revision:

svn-gvsig-desktop / trunk / libraries / libFMap / src / com / iver / cit / gvsig / fmap / edition / ExpansionFile.java @ 4835

History | View | Annotate | Download (2.74 KB)

1 1241 fernando
package com.iver.cit.gvsig.fmap.edition;
2
3 3651 fjp
import com.iver.cit.gvsig.fmap.core.IRow;
4 1290 fernando
5 1251 vcaballero
import java.io.IOException;
6 1290 fernando
7 3996 caballero
import java.util.BitSet;
8 1287 vcaballero
import java.util.HashMap;
9 1241 fernando
10 1251 vcaballero
11 1241 fernando
/**
12 1290 fernando
 * Maneja el fichero de extensi?n en el que se almacenan las modificacionesy adici?nes
13 1251 vcaballero
 * durante la edici?n. Los ?ndices que devuelve esta clase en sus m?todos
14 3651 fjp
 * addRow y modifyRow son invariables, es decir, que si se invoca un
15
 * m?todo addRow que retorna un 8, independientemente de las operaciones
16
 * que se realicen posteriormente, una llamada a getRow(8) retornar?
17
 * dicha fila. Si esta geometr?a es eliminada posteriormente, se retornar? un
18 1290 fernando
 * null. Esto ?ltimo se cumple mientras no se invoque el m?todo compact, mediante
19
 * el que se reorganizan las geometr?as dejando en el fichero s?lo las que tienen
20
 * validez en el momento de realizar la invocaci?n.
21 1241 fernando
 */
22
public interface ExpansionFile {
23 1251 vcaballero
        /**
24
         * A?ade una geometria al final del fichero y retorna el ?ndice que ocupa
25
         * esta geometria en el mismo
26
         *
27 3651 fjp
         * @param row DOCUMENT ME!
28 4799 fjp
         * @param status TODO
29 1251 vcaballero
         *
30
         * @return DOCUMENT ME!
31 1290 fernando
         *
32 1251 vcaballero
         * @throws IOException
33
         */
34 4799 fjp
        int addRow(IRow row, int status) throws IOException;
35 1241 fernando
36 1251 vcaballero
        /**
37
         * Modifica la index-?sima geometr?a del fichero devolviendo la posici?n en
38
         * la que se pone la geometria modificada.
39
         *
40
         * @param index DOCUMENT ME!
41 3651 fjp
         * @param row DOCUMENT ME!
42 1251 vcaballero
         *
43
         * @return DOCUMENT ME!
44 1290 fernando
         *
45 1251 vcaballero
         * @throws IOException
46
         */
47 3651 fjp
        int modifyRow(int index, IRow row) throws IOException;
48 1241 fernando
49 1251 vcaballero
        /**
50
         * Obtiene la geometria que hay en el ?ndice 'index' o null si la geometr?a
51
         * ha sido invalidada.
52
         *
53
         * @param index DOCUMENT ME!
54
         *
55
         * @return DOCUMENT ME!
56 1290 fernando
         *
57 1251 vcaballero
         * @throws IOException
58
         */
59 3653 fjp
        IRowEdited getRow(int index) throws IOException;
60 1241 fernando
61 1251 vcaballero
        /**
62
         * Invalida una geometr?a, de cara a una futura compactaci?n del fichero
63
         *
64
         * @param index DOCUMENT ME!
65
         */
66 3996 caballero
        //void invalidateRow(int index);
67 1290 fernando
68 1251 vcaballero
        /**
69
         * Realiza una compactaci?n del fichero que maneja esta clase
70 1290 fernando
         *
71
         * @param relations DOCUMENT ME!
72 1251 vcaballero
         */
73 1287 vcaballero
        void compact(HashMap relations);
74 1251 vcaballero
75
        /**
76
         * Devuelve el n?mero de geometr?as del fichero.
77
         *
78 1290 fernando
         * @return n?mero de geometr?as.
79 1251 vcaballero
         */
80 3996 caballero
        //int getRowCount();
81 3835 caballero
82 3652 fjp
    /**
83
     * Mueve el puntero de escritura de manera que las siguientes escrituras
84
     * machacar?n la ?ltima fila
85
     */
86
    void deleteLastRow();
87 3835 caballero
88 3653 fjp
    /**
89
     * Abre el fichero de expansi?n para comenzar la edici?n
90
     *
91
     * @throws IOException Si se produce alg?n error al abrir
92
     */
93
    void open() throws IOException;
94 3652 fjp
95 3653 fjp
    /**
96
     * Cierra el fichero de expansi?n al terminar la edici?n
97
     *
98
     * @throws IOException Si se produce alg?n error
99
     */
100 3835 caballero
    void close() throws IOException;
101 3653 fjp
102 3835 caballero
        /**
103
         * @param previousExpansionFileIndex
104
         */
105 3996 caballero
        //void validateRow(int previousExpansionFileIndex);
106
        //BitSet getInvalidRows();
107 4191 fjp
108
    int getSize();
109 1241 fernando
}