public boolean canRender(IRenderContext context) throws IOException {
   String resolve = context.getGeoResource().resolve(String.class, new NullProgressMonitor());
   if (ALL.contains(resolve)) {
     return true;
   }
   throw new RuntimeException();
 }
  public AbstractRenderMetrics createMetrics(IRenderContext context) {
    String resolve;
    try {
      resolve = context.getGeoResource().resolve(String.class, new NullProgressMonitor());
    } catch (IOException e) {
      // TODO Handle IOException
      throw (RuntimeException) new RuntimeException().initCause(e);
    }
    if (resolve == CAN_CREATE_METRICS) {
      return new BadRenderMetrics(context, this);
    }
    if (resolve == CAN_ADD_LAYER_EXCEPTION) {
      return new BadRenderMetrics(context, this) {
        @Override
        public boolean canStyle(String styleID, Object value) {
          return false;
        }

        @Override
        public Renderer createRenderer() {
          return new MultiLayerRenderer();
        }

        @Override
        public boolean isOptimized() {
          return false;
        }

        @Override
        public IRenderContext getRenderContext() {
          return context;
        }

        @Override
        public IRenderMetricsFactory getRenderMetricsFactory() {
          return factory;
        }
      };
    }
    throw new RuntimeException();
  }
 RendererCreator getRendererCreator(IRenderContext context) {
   rendererCreator = ((RenderManager) context.getRenderManager()).getRendererCreator();
   rendererCreator.setContext((RenderContext) context);
   return rendererCreator;
 }