/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.lang.parser;
import java.util.HashMap;
public class ExternalSymbolMapForMap extends ExternalSymbolMapBase {
private HashMap<String, ISymbol> _externalSymbols;
public ExternalSymbolMapForMap( HashMap<String, ISymbol> externalSymbols) {
this(externalSymbols, false);
}
public ExternalSymbolMapForMap( HashMap<String, ISymbol> externalSymbols, boolean assumeSymbolsRequireExternalSymbolMapArgument) {
super(assumeSymbolsRequireExternalSymbolMapArgument);
_externalSymbols = externalSymbols;
}
public ISymbol getSymbol(String name) {
ISymbol symbol = _externalSymbols.get( name );
if( symbol == null ) {
symbol = getAltSymbol( name );
}
return symbol;
}
private ISymbol getAltSymbol( String name ) {
String altName = handleCrappyPcfCapitalization( name );
if( altName != null ) {
return _externalSymbols.get( altName );
}
return null;
}
public boolean isExternalSymbol(String name) {
if( !_externalSymbols.containsKey( name ) ) {
return getAltSymbol( name ) != null;
}
return true;
}
public HashMap<String, ISymbol> getMap() {
return _externalSymbols;
}
}