code: public synchronized <T extends TopLevelItem> T createProject( Class<T> type, String name ) throws IOException {
          return type.cast(createProject((TopLevelItemDescriptor)getDescriptor(type),name));
      }
docs: Creates a new job.
  
  <p>
  This version infers the descriptor from the type of the top-level item.
  
  @throws IllegalArgumentException
  if the project of the given name already exists.