code: public static AttributeAccessor<?> create(ArchiveEntry entry) {
          if (entry instanceof TarArchiveEntry) {
              return new TarAttributeAccessor((TarArchiveEntry) entry);
          } else if (entry instanceof ZipArchiveEntry) {
              return new ZipAttributeAccessor((ZipArchiveEntry) entry);
          } else if (entry instanceof CpioArchiveEntry) {
              return new CpioAttributeAccessor((CpioArchiveEntry) entry);
          } else if (entry instanceof ArjArchiveEntry) {
              return new ArjAttributeAccessor((ArjArchiveEntry) entry);
          } else if (entry instanceof ArArchiveEntry) {
              return new ArAttributeAccessor((ArArchiveEntry) entry);
          }
  
          return new FallbackAttributeAccessor(entry);
      }
docs: Detects the type of the given ArchiveEntry and returns an appropriate AttributeAccessor for it.
  
  @param entry the adaptee
  @return a new attribute accessor instance