code: public static Set<Component> componentsFor(final Descriptor desc)
      {
          try
          {
              try
              {
                  return readTOC(desc);
              }
              catch (FileNotFoundException e)
              {
                  Set<Component> components = discoverComponentsFor(desc);
                  if (components.isEmpty())
                      return components; // sstable doesn't exist yet
  
                  if (!components.contains(Component.TOC))
                      components.add(Component.TOC);
                  appendTOC(desc, components);
                  return components;
              }
          }
          catch (IOException e)
          {
              throw new IOError(e);
          }
      }
docs: Discovers existing components for the descriptor. Slow: only intended for use outside the critical path.