/**
* <copyright>
* </copyright>
*
*
*/
package ssl.resource.ssl.mopp;
public class SslTokenResolverFactory implements ssl.resource.ssl.ISslTokenResolverFactory {
private java.util.Map<String, ssl.resource.ssl.ISslTokenResolver> tokenName2TokenResolver;
private java.util.Map<String, ssl.resource.ssl.ISslTokenResolver> featureName2CollectInTokenResolver;
private static ssl.resource.ssl.ISslTokenResolver defaultResolver = new ssl.resource.ssl.analysis.SslDefaultTokenResolver();
public SslTokenResolverFactory() {
tokenName2TokenResolver = new java.util.LinkedHashMap<String, ssl.resource.ssl.ISslTokenResolver>();
featureName2CollectInTokenResolver = new java.util.LinkedHashMap<String, ssl.resource.ssl.ISslTokenResolver>();
registerTokenResolver("TEXT", new ssl.resource.ssl.analysis.SslTEXTTokenResolver());
}
public ssl.resource.ssl.ISslTokenResolver createTokenResolver(String tokenName) {
return internalCreateResolver(tokenName2TokenResolver, tokenName);
}
public ssl.resource.ssl.ISslTokenResolver createCollectInTokenResolver(String featureName) {
return internalCreateResolver(featureName2CollectInTokenResolver, featureName);
}
protected boolean registerTokenResolver(String tokenName, ssl.resource.ssl.ISslTokenResolver resolver){
return internalRegisterTokenResolver(tokenName2TokenResolver, tokenName, resolver);
}
protected boolean registerCollectInTokenResolver(String featureName, ssl.resource.ssl.ISslTokenResolver resolver){
return internalRegisterTokenResolver(featureName2CollectInTokenResolver, featureName, resolver);
}
protected ssl.resource.ssl.ISslTokenResolver deRegisterTokenResolver(String tokenName){
return tokenName2TokenResolver.remove(tokenName);
}
private ssl.resource.ssl.ISslTokenResolver internalCreateResolver(java.util.Map<String, ssl.resource.ssl.ISslTokenResolver> resolverMap, String key) {
if (resolverMap.containsKey(key)){
return resolverMap.get(key);
} else {
return defaultResolver;
}
}
private boolean internalRegisterTokenResolver(java.util.Map<String, ssl.resource.ssl.ISslTokenResolver> resolverMap, String key, ssl.resource.ssl.ISslTokenResolver resolver) {
if (!resolverMap.containsKey(key)) {
resolverMap.put(key,resolver);
return true;
}
return false;
}
}