Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.api / src / main / java / org / gvsig / fmap / dal / feature / FeatureStoreTransform.java @ 43215

History | View | Annotate | Download (4.06 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 3
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.fmap.dal.feature;
25

    
26
import java.util.List;
27

    
28
import org.gvsig.fmap.dal.exception.DataException;
29
import org.gvsig.tools.dynobject.DynObject;
30
import org.gvsig.tools.dynobject.exception.DynFieldNotFoundException;
31
import org.gvsig.tools.lang.Cloneable;
32
import org.gvsig.tools.persistence.Persistent;
33

    
34
/**
35
 * A FeatureStoreTransform provides a mechanism for mapping a source FeatureType
36
 * to a target FeatureType, allowing to build different views (as in database
37
 * view) over different feature types even from different stores.
38
 *
39
 */
40
public interface FeatureStoreTransform
41
    extends Persistent, Cloneable {
42

    
43
    /**
44
     * Returns the default {@link FeatureType}.
45
     *
46
     * @return default {@link FeatureType}
47
     *
48
     * @throws DataException
49
     */
50
    public FeatureType getDefaultFeatureType() throws DataException;
51

    
52
    /**
53
     * Returns this FeatureStoreTransform's FeatureType(s)
54
     *
55
     * @return
56
     * @throws DataException
57
     */
58
    public List<FeatureType> getFeatureTypes() throws DataException;
59

    
60
    /**
61
     * Returns the original store {@link FeatureType} that replaces
62
     * targetFeatureType of this FeatureStoreTransform's
63
     *
64
     * @return source {@link FeatureType}
65
     */
66
    public FeatureType getSourceFeatureTypeFrom(FeatureType targetFeatureType);
67

    
68
    /**
69
     * Applies this transform between two features, copying the source data to
70
     * the target feature.
71
     *
72
     * @param source feature whose data will be used as source
73
     *
74
     * @param target feature in which the source data will be copied
75
     *
76
     * @throws DataException
77
     */
78
    public void applyTransform(Feature source, EditableFeature target)
79
        throws DataException;
80

    
81
    /**
82
     * Sets the FeatureStore to which this transform is applied.
83
     *
84
     * @param featureStore FeatureStore to which this transform is applied.
85
     */
86
    public void setFeatureStore(FeatureStore featureStore);
87

    
88
    /**
89
     * Returns the FeatureStore to which this transform belongs.
90
     *
91
     * @return FeatureStore to which this transform belongs.
92
     */
93
    public FeatureStore getFeatureStore();
94

    
95
    /**
96
     * Retruns true if this make changes of any attributes values or false if
97
     * only {@link FeatureType} definitions is changed.
98
     *
99
     * @return
100
     * @see {@link FeatureStoreTransforms#isTransformsOriginalValues()}
101
     *
102
     */
103
    public boolean isTransformsOriginalValues();
104

    
105
    public String getName();
106

    
107
    public String getDescription();
108

    
109
    /**
110
     * Sets the original metadata for this transform
111
     *
112
     * @param metadata
113
     */
114
    public void setSourceMetadata(DynObject metadata);
115

    
116
    public void setDynValue(String name, Object value) throws DynFieldNotFoundException;
117

    
118
    public boolean hasDynValue(String name);
119

    
120
    public Object getDynValue(String name) throws DynFieldNotFoundException;
121

    
122
    /**
123
     * This method must perform the necessary actions to set up the transformation.
124
     * 
125
     * It is called automatically when adding the transformation to the store 
126
     * and when the store is retrieved from the persistence.
127
     * 
128
     * @throws Exception 
129
     */
130
    public void  setUp() throws Exception ;
131
}