Revision 47841 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
AbstractDownloaderAuthenticationConfig.java | ||
---|---|---|
14 | 14 |
import org.gvsig.downloader.DownloaderManager; |
15 | 15 |
import org.gvsig.json.Json; |
16 | 16 |
import org.gvsig.json.JsonObjectBuilder; |
17 |
import org.gvsig.tools.ToolsLocator; |
|
18 |
import org.gvsig.tools.dynobject.DynStruct; |
|
19 |
import org.gvsig.tools.persistence.PersistenceManager; |
|
20 |
import org.gvsig.tools.persistence.PersistentState; |
|
21 |
import org.gvsig.tools.persistence.exception.PersistenceException; |
|
17 | 22 |
|
18 | 23 |
/** |
19 | 24 |
* |
... | ... | |
23 | 28 |
implements DownloaderAuthenticationConfig |
24 | 29 |
{ |
25 | 30 |
|
26 |
protected String providerName; |
|
27 |
protected DownloaderAuthenticationFactory factory;
|
|
31 |
protected final String providerName;
|
|
32 |
private DownloaderAuthenticationFactory factory;
|
|
28 | 33 |
protected String serviceUrl; |
29 | 34 |
|
30 |
protected AbstractDownloaderAuthenticationConfig(DownloaderAuthenticationFactory factory, String serviceUrl) { |
|
35 |
protected AbstractDownloaderAuthenticationConfig(String providerName, DownloaderAuthenticationFactory factory, String serviceUrl) { |
|
36 |
this(providerName); |
|
31 | 37 |
this.factory = factory; |
32 | 38 |
this.serviceUrl = this.getUrlWithoutQuery(serviceUrl); |
33 |
this.providerName = factory.getProviderName(); |
|
34 | 39 |
} |
35 | 40 |
|
41 |
protected AbstractDownloaderAuthenticationConfig(String providerName) { |
|
42 |
this.providerName = providerName; |
|
43 |
if(StringUtils.isBlank(this.providerName)){ |
|
44 |
throw new IllegalArgumentException("providerName can't be blank"); |
|
45 |
} |
|
46 |
this.factory = null; |
|
47 |
this.serviceUrl = null; |
|
48 |
} |
|
49 |
|
|
36 | 50 |
// public AbstractDownloaderAuthenticationConfig(String providerName, String baseUrl) { |
37 | 51 |
// this( |
38 | 52 |
// DownloaderLocator.getDownloaderManager().getAuthenticationType(providerName), |
... | ... | |
47 | 61 |
|
48 | 62 |
@Override |
49 | 63 |
public DownloaderAuthenticationFactory getFactory() { |
64 |
if( this.factory == null ) { |
|
65 |
DownloaderManager manager = DownloaderLocator.getDownloaderManager(); |
|
66 |
this.factory = manager.getDownloaderAuthenticationFactory(this.providerName); |
|
67 |
} |
|
68 |
|
|
50 | 69 |
return this.factory; |
51 | 70 |
} |
52 | 71 |
|
... | ... | |
77 | 96 |
|
78 | 97 |
@Override |
79 | 98 |
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 |
// } |
|
99 |
this.serviceUrl = json.getString(CONFIG_SERVICEURL_NAME,null); |
|
90 | 100 |
String providerName = json.getString(CONFIG_PROVIDERNAME_NAME, null); |
91 | 101 |
if( providerName != null ) { |
92 | 102 |
if( !StringUtils.equalsIgnoreCase(this.providerName, providerName) ) { |
93 | 103 |
throw new IllegalArgumentException("this json can't be restored in a config of '"+this.providerName+"' (need a '"+providerName+"')"); |
94 | 104 |
} |
95 | 105 |
} |
96 |
if( this.factory == null ) { |
|
97 |
this.factory = manager.getDownloaderAuthenticationFactory(this.providerName); |
|
98 |
} |
|
99 | 106 |
} |
100 | 107 |
|
101 | 108 |
@Override |
102 | 109 |
public JsonObjectBuilder toJsonBuilder() { |
103 | 110 |
JsonObjectBuilder builder = Json.createObjectBuilder(); |
104 | 111 |
builder.add(CONFIG_PROVIDERNAME_NAME, this.getFactory().getProviderName()); |
105 |
// builder.add("urlOnline",this.getUrlOnline());
|
|
112 |
builder.add("serviceUrl",this.serviceUrl);
|
|
106 | 113 |
|
107 | 114 |
return builder; |
108 | 115 |
} |
... | ... | |
124 | 131 |
} |
125 | 132 |
} |
126 | 133 |
|
134 |
public static void selfRegister() { |
|
135 |
PersistenceManager manager = ToolsLocator.getPersistenceManager(); |
|
136 |
if (manager.getDefinition(PERSISTENT_DEFINITION_NAME) == null) { |
|
137 |
DynStruct definition = manager.addDefinition(DownloaderAuthenticationConfig.class, |
|
138 |
PERSISTENT_DEFINITION_NAME, |
|
139 |
"DownloaderAuthenticationConfig persistence definition", null, null |
|
140 |
); |
|
141 |
definition.addDynFieldString(CONFIG_PROVIDERNAME_NAME); |
|
142 |
definition.addDynFieldString(CONFIG_SERVICEURL_NAME); |
|
143 |
} |
|
144 |
} |
|
145 |
|
|
146 |
@Override |
|
147 |
public void saveToState(PersistentState state) throws PersistenceException { |
|
148 |
state.set(CONFIG_PROVIDERNAME_NAME,this.providerName); |
|
149 |
state.set(CONFIG_SERVICEURL_NAME,this.serviceUrl); |
|
150 |
} |
|
151 |
|
|
152 |
@Override |
|
153 |
public void loadFromState(PersistentState state) throws PersistenceException { |
|
154 |
String providerName = state.getString(CONFIG_PROVIDERNAME_NAME); |
|
155 |
if( providerName != null ) { |
|
156 |
if( !StringUtils.equalsIgnoreCase(this.providerName, providerName) ) { |
|
157 |
throw new IllegalArgumentException("this state can't be restored in a config of '"+this.providerName+"' (need a '"+providerName+"')"); |
|
158 |
} |
|
159 |
} |
|
160 |
|
|
161 |
this.serviceUrl = state.getString(CONFIG_SERVICEURL_NAME); |
|
162 |
} |
|
127 | 163 |
|
164 |
|
|
165 |
|
|
128 | 166 |
} |
Also available in: Unified diff