/** * <copyright> * </copyright> * * */ package org.reuseware.air.language.abstractsyntax.resource.as.mopp; public class AsTokenResolverFactory implements org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolverFactory { private java.util.Map<java.lang.String, org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver> tokenName2TokenResolver; private java.util.Map<java.lang.String, org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver> featureName2CollectInTokenResolver; private static org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver defaultResolver = new org.reuseware.air.language.abstractsyntax.resource.as.analysis.AsDefaultTokenResolver(); public AsTokenResolverFactory() { tokenName2TokenResolver = new java.util.LinkedHashMap<java.lang.String, org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver>(); featureName2CollectInTokenResolver = new java.util.LinkedHashMap<java.lang.String, org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver>(); registerTokenResolver("TEXT", new org.reuseware.air.language.abstractsyntax.resource.as.analysis.AsTEXTTokenResolver()); registerTokenResolver("QNAME", new org.reuseware.air.language.abstractsyntax.resource.as.analysis.AsQNAMETokenResolver()); registerTokenResolver("QUOTED_60_62", new org.reuseware.air.language.abstractsyntax.resource.as.analysis.AsQUOTED_60_62TokenResolver()); } public org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver createTokenResolver(java.lang.String tokenName) { return internalCreateResolver(tokenName2TokenResolver, tokenName); } public org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver createCollectInTokenResolver(java.lang.String featureName) { return internalCreateResolver(featureName2CollectInTokenResolver, featureName); } protected boolean registerTokenResolver(java.lang.String tokenName, org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver){ return internalRegisterTokenResolver(tokenName2TokenResolver, tokenName, resolver); } protected boolean registerCollectInTokenResolver(java.lang.String featureName, org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver){ return internalRegisterTokenResolver(featureName2CollectInTokenResolver, featureName, resolver); } protected org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver deRegisterTokenResolver(java.lang.String tokenName){ return tokenName2TokenResolver.remove(tokenName); } private org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver internalCreateResolver(java.util.Map<java.lang.String, org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver> resolverMap, String key) { if (resolverMap.containsKey(key)){ return resolverMap.get(key); } else { return defaultResolver; } } private boolean internalRegisterTokenResolver(java.util.Map<java.lang.String, org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver> resolverMap, java.lang.String key, org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver) { if (!resolverMap.containsKey(key)) { resolverMap.put(key,resolver); return true; } return false; } }