public synchronized <T extends Tool>ToolModel<T> loadToolModel(String toolName){
  @SuppressWarnings("unchecked") ToolModel<T> loadedModel=(ToolModel<T>)toolModels.get(toolName);
  if (loadedModel == null) {
    loadedModel=loadToolModelMemoised(toolName);
    toolModels.put(toolName,loadedModel);
  }
  return loadedModel;
}

public synchronized < T extends Tool > ToolModel < T > loadToolModel ( String toolName ) { @ SuppressWarnings ( "unchecked" ) ToolModel < T > loadedModel = ( ToolModel < T > ) toolModels . get ( toolName ) ; if ( loadedModel == null ) { loadedModel = loadToolModelMemoised ( toolName ) ; toolModels . put ( toolName , loadedModel ) ; } return loadedModel ; }
returns a toolmodel given the name of the tool , or null if no such tool is know to this tool loader .
