Statistics
| Revision:

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

History | View | Annotate | Download (2.96 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 6212 fjp
         * @param indexInternalFields fields that where valid when this row was added.
30 1251 vcaballero
         *
31 6212 fjp
         * @return calculated index of the new row.
32 1290 fernando
         *
33 1251 vcaballero
         * @throws IOException
34
         */
35 6212 fjp
        int addRow(IRow row, int status, int indexInternalFields) throws IOException;
36 1241 fernando
37 1251 vcaballero
        /**
38
         * Modifica la index-?sima geometr?a del fichero devolviendo la posici?n en
39
         * la que se pone la geometria modificada.
40
         *
41 6212 fjp
         * @param calculated index of row to be modified
42
         * @param row newRow that replaces the old row.
43 1251 vcaballero
         *
44 6212 fjp
         * @return new calculated index of the modified row.
45 1290 fernando
         *
46 1251 vcaballero
         * @throws IOException
47
         */
48 6212 fjp
        int modifyRow(int index, IRow row, int indexInternalFields) throws IOException;
49 1241 fernando
50 1251 vcaballero
        /**
51
         * Obtiene la geometria que hay en el ?ndice 'index' o null si la geometr?a
52
         * ha sido invalidada.
53
         *
54 6212 fjp
         * @param index caculatedIndex of the row to be read.
55
         * @return
56 1251 vcaballero
         * @throws IOException
57
         */
58 3653 fjp
        IRowEdited getRow(int index) throws IOException;
59 1241 fernando
60 1251 vcaballero
        /**
61
         * Invalida una geometr?a, de cara a una futura compactaci?n del fichero
62
         *
63
         * @param index DOCUMENT ME!
64
         */
65 3996 caballero
        //void invalidateRow(int index);
66 1290 fernando
67 1251 vcaballero
        /**
68
         * Realiza una compactaci?n del fichero que maneja esta clase
69 1290 fernando
         *
70
         * @param relations DOCUMENT ME!
71 1251 vcaballero
         */
72 1287 vcaballero
        void compact(HashMap relations);
73 1251 vcaballero
74
        /**
75
         * Devuelve el n?mero de geometr?as del fichero.
76
         *
77 1290 fernando
         * @return n?mero de geometr?as.
78 1251 vcaballero
         */
79 3996 caballero
        //int getRowCount();
80 3835 caballero
81 3652 fjp
    /**
82
     * Mueve el puntero de escritura de manera que las siguientes escrituras
83
     * machacar?n la ?ltima fila
84
     */
85
    void deleteLastRow();
86 3835 caballero
87 3653 fjp
    /**
88
     * Abre el fichero de expansi?n para comenzar la edici?n
89
     *
90
     * @throws IOException Si se produce alg?n error al abrir
91
     */
92
    void open() throws IOException;
93 3652 fjp
94 3653 fjp
    /**
95
     * Cierra el fichero de expansi?n al terminar la edici?n
96
     *
97
     * @throws IOException Si se produce alg?n error
98
     */
99 3835 caballero
    void close() throws IOException;
100 3653 fjp
101 3835 caballero
        /**
102
         * @param previousExpansionFileIndex
103
         */
104 3996 caballero
        //void validateRow(int previousExpansionFileIndex);
105
        //BitSet getInvalidRows();
106 4191 fjp
107
    int getSize();
108 1241 fernando
}