Revision 9591 org.gvsig.online/trunk/org.gvsig.online/org.gvsig.online.lib/org.gvsig.online.lib.api/src/main/java/org/gvsig/online/lib/spi/AbstractOnlineUserIdentificationRequesterConfig.java

View differences:

AbstractOnlineUserIdentificationRequesterConfig.java
6 6
package org.gvsig.online.lib.spi;
7 7

  
8 8
import javax.json.JsonObject;
9
import org.apache.commons.lang3.StringUtils;
9 10
import org.gvsig.json.Json;
10 11
import org.gvsig.json.JsonObjectBuilder;
11 12
import org.gvsig.online.lib.api.OnlineLocator;
......
25 26
    
26 27
    protected OnlineUserIdentificationRequesterFactory factory;
27 28
    protected String urlOnline;
29
    private String factoryName;
28 30
    
29 31
    public AbstractOnlineUserIdentificationRequesterConfig(OnlineUserIdentificationRequesterFactory factory,String urlOnline) {
30 32
        this.factory = factory;
31 33
        this.urlOnline = urlOnline;
34
        this.factoryName = factory.getName();
32 35
    }
33 36

  
34 37
    public AbstractOnlineUserIdentificationRequesterConfig(String factoryName, String urlOnline) {
......
40 43
    
41 44
    @Override
42 45
    public String getName() {
43
        return this.factory.getName();
46
        return this.factoryName;
44 47
    }
45 48

  
46 49
    @Override
......
66 69
    @Override
67 70
    public void fromJson(JsonObject json) {
68 71
        OnlineManager manager = OnlineLocator.getOnlineManager();
69

  
72
        
73
        if( json.containsKey("type") ) {
74
            String url = json.getString(CONFIG_URLONLINE_NAME,null);
75
            if( url!=null ) {
76
                this.urlOnline = url;
77
            }
78
        } else {
79
            this.urlOnline = json.getString(CONFIG_URLONLINE_NAME,null);
80
        }
70 81
        String factoryName = json.getString(CONFIG_FACTORYNAME_NAME, null);
71
        this.factory = manager.getUserIdentificationRequester(factoryName);
72
        this.urlOnline = json.getString(CONFIG_URLONLINE_NAME,null);
82
        if( factoryName != null ) {
83
            if( !StringUtils.equalsIgnoreCase(this.factoryName, factoryName) ) {
84
                throw new IllegalArgumentException("this json can't be restored in a config of '"+this.factoryName+"' (need a '"+factoryName+"')");
85
            }
86
        }
87
        if( this.factory == null ) {
88
            this.factory = manager.getUserIdentificationRequester(this.factoryName);
89
        } 
90
        
91
            
73 92
    }
74 93

  
75 94
    @Override

Also available in: Unified diff