code: public synchronized TableCellRenderer getRenderer(Class<?> type) {
          TableCellRenderer renderer = null;
          Object value = typeToRenderer.get(type);
          if (value instanceof TableCellRenderer) {
              renderer = (TableCellRenderer) value;
          } else if (value instanceof Class<?>) {
              try {
                  renderer = (TableCellRenderer) ((Class<? extends TableCellRenderer>) value).newInstance();
              } catch (InstantiationException ex) {
                  Logger.getLogger(PropertyRendererRegistry.class.getName()).log(Level.SEVERE, null, ex);
              } catch (IllegalAccessException ex) {
                  Logger.getLogger(PropertyRendererRegistry.class.getName()).log(Level.SEVERE, null, ex);
              }
          }
          return renderer;
      }
docs: Gets a renderer for the given property type. The lookup is as follow:
  <ul>
  <li>if a renderer was registered with
  {@link #registerRenderer(Class, TableCellRenderer)}, it is returned,
  else</li>
  <li>if a renderer class was registered with
  {@link #registerRenderer(Class, Class)}, it is returned, else
  <li>
  <li>it returns null.</li>
  </ul>
  
  @param type
  @return a renderer editor suitable for the Property type or null if none
  found