Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.impl / src / main / java / org / gvsig / fmap / dal / feature / impl / featurereference / FeatureReferencePersistenceFactory.java @ 45647

History | View | Annotate | Download (2.82 KB)

1
/*
2
 * To change this license header, choose License Headers in Project Properties.
3
 * To change this template file, choose Tools | Templates
4
 * and open the template in the editor.
5
 */
6
package org.gvsig.fmap.dal.feature.impl.featurereference;
7

    
8
import org.gvsig.fmap.dal.feature.FeatureReference;
9
import org.gvsig.fmap.dal.feature.FeatureStore;
10
import org.gvsig.tools.ToolsLocator;
11
import org.gvsig.tools.dynobject.DynStruct;
12
import org.gvsig.tools.persistence.AbstractSinglePersistenceFactory;
13
import org.gvsig.tools.persistence.PersistenceManager;
14
import org.gvsig.tools.persistence.Persistent;
15
import org.gvsig.tools.persistence.PersistentState;
16
import org.gvsig.tools.persistence.exception.PersistenceException;
17

    
18
/**
19
 *
20
 * @author fdiaz
21
 */
22
public class FeatureReferencePersistenceFactory extends AbstractSinglePersistenceFactory {
23

    
24
    private static final String DYNCLASS_NAME = "Reference";
25
    private static final String DYNCLASS_DESCRIPTION = "DefaultFeatureReference Persistent definition";
26

    
27
    public FeatureReferencePersistenceFactory() {
28
        super(FeatureReference.class, DYNCLASS_NAME, DYNCLASS_DESCRIPTION, null, null);
29
        DynStruct definition = this.getDefinition();
30

    
31
        definition.addDynFieldObject("oid")
32
                .setClassOfValue(Object.class)
33
                .setMandatory(false)
34
                .setPersistent(true);
35

    
36
        definition.addDynFieldBoolean("isNewFeature")
37
                .setMandatory(true)
38
                .setPersistent(true);
39

    
40
        definition.addDynFieldObject("store")
41
                .setClassOfValue(FeatureStore.class)
42
                .setMandatory(true)
43
                .setPersistent(true);
44

    
45
        definition.addDynFieldInt("myHashCode")
46
                .setMandatory(false)
47
                .setPersistent(true);
48

    
49
        definition.addDynFieldString("featureTypeId")
50
                .setMandatory(true)
51
                .setPersistent(true);
52

    
53
        definition.addDynFieldArray("pk")
54
                .setClassOfItems(Object.class)
55
                .setMandatory(false)
56
                .setPersistent(true);
57

    
58
        definition.addDynFieldArray("pkNames")
59
                .setClassOfItems(String.class)
60
                .setMandatory(false)
61
                .setPersistent(true);
62

    
63
    }
64

    
65
    @Override
66
    public Object createFromState(PersistentState state) throws PersistenceException {
67
        DefaultFeatureReference ref = new DefaultFeatureReference();
68
        ref.loadFromState(state);
69
        return ref;
70
    }
71

    
72
    @Override
73
    public void saveToState(PersistentState state, Object obj) throws PersistenceException {
74
        ((Persistent) obj).saveToState(state);
75
    }
76

    
77
    public static void selfRegister() {
78
        PersistenceManager persistenceManager
79
                = ToolsLocator.getPersistenceManager();
80
        persistenceManager.registerFactory(new FeatureReferencePersistenceFactory());
81
    }
82
}