Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.downloader / org.gvsig.downloader.lib / org.gvsig.downloader.lib.api / src / main / java / org / gvsig / downloader / spi / AbstractDownloaderAuthenticationConfig.java @ 47828

History | View | Annotate | Download (3.31 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.downloader.spi;
7

    
8
import javax.json.JsonObject;
9
import org.apache.commons.lang3.StringUtils;
10
import org.gvsig.downloader.DownloaderAuthenticationConfig;
11
import org.gvsig.downloader.DownloaderAuthenticationFactory;
12
import org.gvsig.downloader.DownloaderAuthenticationRequester;
13
import org.gvsig.downloader.DownloaderLocator;
14
import org.gvsig.downloader.DownloaderManager;
15
import org.gvsig.json.Json;
16
import org.gvsig.json.JsonObjectBuilder;
17

    
18
/**
19
 *
20
 * @author jjdelcerro
21
 */
22
public abstract class AbstractDownloaderAuthenticationConfig 
23
        implements DownloaderAuthenticationConfig
24
    {
25

    
26
    protected String providerName;
27
    protected DownloaderAuthenticationFactory factory;
28
    protected String serviceUrl;
29

    
30
    protected AbstractDownloaderAuthenticationConfig(DownloaderAuthenticationFactory factory, String serviceUrl) {
31
        this.factory = factory;
32
        this.serviceUrl = serviceUrl;
33
        this.providerName = factory.getProviderName();
34
    }
35

    
36
//    public AbstractDownloaderAuthenticationConfig(String providerName, String baseUrl) {
37
//        this(
38
//                DownloaderLocator.getDownloaderManager().getAuthenticationType(providerName),
39
//                baseUrl
40
//        );
41
//    }
42
//    
43
    @Override
44
    public String getProviderName() {
45
        return this.providerName;
46
    }
47

    
48
    @Override
49
    public DownloaderAuthenticationFactory getFactory() {
50
        return this.factory;
51
    }
52

    
53
    @Override
54
    public String getServiceUrl() {
55
        return this.serviceUrl;
56
    }
57

    
58
    @Override
59
    public boolean isConfigurable() {
60
        return false;
61
    }
62

    
63
    @Override
64
    public boolean requestAuthenticationConfig() {
65
        return true;
66
    }
67
    
68
    @Override
69
    public Object clone() throws CloneNotSupportedException {
70
        return (DownloaderAuthenticationConfig) super.clone(); 
71
    }
72

    
73
    @Override
74
    public String getKey() {
75
        return null;
76
    }
77

    
78
    @Override
79
    public void fromJson(JsonObject json) {
80
        DownloaderManager manager = DownloaderLocator.getDownloaderManager();
81
        
82
//        if( json.containsKey("type") ) {
83
//            String url = json.getString(CONFIG_URLONLINE_NAME,null);
84
//            if( url!=null ) {
85
//                this.urlOnline = url;
86
//            }
87
//        } else {
88
            this.serviceUrl = json.getString(CONFIG_SERVICEURL_NAME,null);
89
//        }
90
        String providerName = json.getString(CONFIG_PROVIDERNAME_NAME, null);
91
        if( providerName != null ) {
92
            if( !StringUtils.equalsIgnoreCase(this.providerName, providerName) ) {
93
                throw new IllegalArgumentException("this json can't be restored in a config of '"+this.providerName+"' (need a '"+providerName+"')");
94
            }
95
        }
96
        if( this.factory == null ) {
97
            this.factory = manager.getDownloaderAuthenticationFactory(this.providerName);
98
        } 
99
    }
100

    
101
    @Override
102
    public JsonObjectBuilder toJsonBuilder() {
103
        JsonObjectBuilder builder = Json.createObjectBuilder();
104
        builder.add(CONFIG_PROVIDERNAME_NAME, this.getFactory().getProviderName());
105
//        builder.add("urlOnline",this.getUrlOnline());
106
        
107
        return builder;        
108
    }
109

    
110
}