code: @Override
      public <X extends Archive<X>> X getAsType(Class<X> type, ArchivePath path) {
          Validate.notNull(type, "Type must be specified");
          Validate.notNull(path, "ArchivePath must be specified");
  
          Node content = get(path);
          if (content == null) {
              return null;
          }
          Asset asset = content.getAsset();
          if (asset == null) {
              return null;
          }
  
          if (asset instanceof ArchiveAsset) {
              ArchiveAsset archiveAsset = (ArchiveAsset) asset;
              return archiveAsset.getArchive().as(type);
          }
  
          ArchiveFormat archiveFormat = this.configuration.getExtensionLoader()
              .getArchiveFormatFromExtensionMapping(type);
          return getAsType(type, path, archiveFormat);
      }
docs: {@inheritDoc}
  
  @see org.jboss.shrinkwrap.api.Archive#getAsType(java.lang.Class, org.jboss.shrinkwrap.api.ArchivePath)