public static Map<String,IChartDrawer> createChartDrawers(){
synchronized (allSupportedChartDrawers) {
    final boolean fillAllSupportedDrawers=(allSupportedChartDrawers.size() == 0);
    final Map<String,IChartDrawer> name2DrawerInstance=new HashMap<>();
    for (    Object object : PluginClassLoader.getInstances(paths,IChartDrawer.class)) {
      if (object instanceof IChartDrawer) {
        final IChartDrawer drawer=(IChartDrawer)object;
        if (!(drawer instanceof MultiChartDrawer) && drawer.isEnabled()) {
          name2DrawerInstance.put(drawer.getChartDrawerName(),drawer);
          if (fillAllSupportedDrawers && !(object instanceof Plot2DDrawer))           allSupportedChartDrawers.add(drawer.getChartDrawerName());
        }
      }
    }
    return name2DrawerInstance;
  }
}

public static Map < String , IChartDrawer > createChartDrawers ( ) { synchronized ( allSupportedChartDrawers ) { final boolean fillAllSupportedDrawers = ( allSupportedChartDrawers . size ( ) == 0 ) ; final Map < String , IChartDrawer > name2DrawerInstance = new HashMap < > ( ) ; for ( Object object : PluginClassLoader . getInstances ( paths , IChartDrawer . class ) ) { if ( object instanceof IChartDrawer ) { final IChartDrawer drawer = ( IChartDrawer ) object ; if ( ! ( drawer instanceof MultiChartDrawer ) && drawer . isEnabled ( ) ) { name2DrawerInstance . put ( drawer . getChartDrawerName ( ) , drawer ) ; if ( fillAllSupportedDrawers && ! ( object instanceof Plot2DDrawer ) ) allSupportedChartDrawers . add ( drawer . getChartDrawerName ( ) ) ; } } } return name2DrawerInstance ; } }
creates a copy of all chart drawers
