class Concatenator {

  protected String visit(final Source source) {
    if (visitedResources.contains(source)) {
      return null;
    }
    try {
      return source.getBody().get();
    } catch (final BuildException e) {
      throw e;
    } catch (final FileNotFoundException | NoSuchFileException ex) {
      throw new BuildException("<green>"
          + getCanonicalForm(source.getPath().toFile().getAbsolutePath()) + "</green> not found");
    } catch (final Throwable e) {
      throw new BuildException(e);
    }
  }

  public  Concatenator(final ResourceManager resourceManager);

}