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