code: public EquivalenceHeader parseEquivalence(String resourceLocation,
              File equivalenceFile) throws IOException,
              BELDataMissingPropertyException,
              BELDataConversionException {
          if (equivalenceFile == null) {
              throw new InvalidArgument("namespaceFile", equivalenceFile);
          }
  
          if (!equivalenceFile.exists()) {
              throw new InvalidArgument("namespaceFile does not exist");
          }
  
          if (!equivalenceFile.canRead()) {
              throw new InvalidArgument("namespaceFile cannot be read");
          }
  
          Map<String, Properties> blockProperties = parse(equivalenceFile);
  
          EquivalenceBlock equivalenceBlock =
                  EquivalenceBlock.create(resourceLocation,
                          blockProperties.get(EquivalenceBlock.BLOCK_NAME));
  
          NamespaceReferenceBlock namespaceReferenceBlock =
                  NamespaceReferenceBlock
                          .create(resourceLocation,
                                  blockProperties
                                          .get(NamespaceReferenceBlock.BLOCK_NAME));
  
          AuthorBlock authorblock = AuthorBlock.create(resourceLocation,
                  blockProperties.get(AuthorBlock.BLOCK_NAME));
  
          CitationBlock citationBlock = CitationBlock.create(resourceLocation,
                  blockProperties.get(CitationBlock.BLOCK_NAME));
  
          ProcessingBlock processingBlock = ProcessingBlock.create(
                  resourceLocation,
                  blockProperties.get(ProcessingBlock.BLOCK_NAME));
  
          return new EquivalenceHeader(equivalenceBlock, namespaceReferenceBlock,
                  authorblock, citationBlock, processingBlock);
      }
docs: Parses the equivalence {@link File} into a {@link EquivalenceHeader} object.
  
  @param equivalenceFile {@link File}, the equivalence file, which cannot be
  null, must exist, and must be readable
  @return {@link NamespaceHeader}, the parsed equivalence header
  @throws IOException Thrown if an IO error occurred reading the
  <tt>equivalenceFile</tt>
  @throws BELDataHeaderParseException Thrown if a parsing error occurred
  when processing the <tt>equivalenceFile</tt>
  @throws BELDataConversionException
  @throws BELDataMissingPropertyException
  @throws InvalidArgument Thrown if the <tt>equivalenceFile</tt> is null,
  does not exist, or cannot be read