@Requires("roundEnv != null")
  @Ensures("result != null")
  protected Set<TypeElement> getContractedRootElements(
      RoundEnvironment roundEnv) {
    Set<? extends Element> allElements = roundEnv.getRootElements();
    Set<TypeElement> contractedRootElements =
        new HashSet<TypeElement>(allElements.size());

    ContractFinder cf = new ContractFinder(utils);
    for (Element e : allElements) {
      if (e.accept(cf, null)) {
        contractedRootElements.add(getRootElement(e));
      }
    }

    return contractedRootElements;
  }
@ Requires ( "roundEnv != null" ) @ Ensures ( "result != null" ) protected Set < TypeElement > getContractedRootElements ( RoundEnvironment roundEnv ) { Set < ? extends Element > allElements = roundEnv . getRootElements ( ) ; Set < TypeElement > contractedRootElements = new HashSet < TypeElement > ( allElements . size ( ) ) ; ContractFinder cf = new ContractFinder ( utils ) ; for ( Element e : allElements ) { if ( e . accept ( cf , null ) ) { contractedRootElements . add ( getRootElement ( e ) ) ; } } return contractedRootElements ; }
Returns the set of root elements that contain contracts.
Contracts can have been directly declared as annotations or inherited
through the hierarchy.

@param annotations the set of annotations to look for
@param roundEnv the environment to get elements from