code: @Override
      public <A extends BasicFileAttributes> A readAttributes(final Path path, final Class<A> type,
          final LinkOption... options) throws IOException {
          if (path == null) {
              throw new IllegalArgumentException("path must be specified");
          }
          if (type == null) {
              throw new IllegalArgumentException("type must be specified");
          }
          if (!type.isAssignableFrom(ShrinkWrapFileAttributes.class)) {
              throw new UnsupportedOperationException("Only supports " + ShrinkWrapFileAttributes.class.getSimpleName()
                  + " type");
          }
          if (!(path instanceof ShrinkWrapPath)) {
              throw new IllegalArgumentException("Only " + ShrinkWrapPath.class.getSimpleName() + " is supported");
          }
          final ShrinkWrapPath swPath = (ShrinkWrapPath) path;
          if (!((ShrinkWrapFileSystem) swPath.getFileSystem()).getArchive().contains(path.toString())) {
              throw new NoSuchFileException(path.toString());
          }
          final A attributes = type.cast(new ShrinkWrapFileAttributes((ShrinkWrapPath) path, getArchive(path)));
          return attributes;
      }
docs: {@inheritDoc}
  
  @see java.nio.file.spi.FileSystemProvider#readAttributes(java.nio.file.Path, java.lang.Class,
  java.nio.file.LinkOption[])