Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 1&1 Internet AG, http://www.1and1.org
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU Lesser General Public License as published by
   * the Free Software Foundation; either version 2 of the License,
   * or (at your option) any later version.
   *
   * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  * See the GNU Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 package net.sf.beezle.sushi.fs.zip;
 
 
 import java.io.File;
 import java.util.List;
 
 public class ZipRoot implements Root<ZipNode> {
     private final ZipFilesystem filesystem;
     private final ZipFile zip;
 
     public ZipRoot(ZipFilesystem filesystemZipFile zip) {
         this. = filesystem;
         this. = zip;
     }
 
     @Override
     public boolean equals(Object obj) {
         ZipRoot root;
 
         if (obj instanceof ZipRoot) {
             root = (ZipRootobj;
             return  == root.filesystem && .equals(root.zip);
         }
         return false;
     }
 
     @Override
     public int hashCode() {
         return .hashCode();
     }
 
     public ZipFile getZip() {
         return ;
     }
 
     public ZipFilesystem getFilesystem() {
         return ;
     }
 
     public long getLastModified() {
         return new File(.getName()).lastModified();
     }
 
     public String getId() {
         return new File(.getName()).toURI() + "!/";
     }
 
     public ZipNode node(String pathString encodedQuery) {
         if (encodedQuery != null) {
             throw new IllegalArgumentException(encodedQuery);
         }
         return new ZipNode(thispath);
     }
 
     // TODO: cache?
     public List<Stringlist(String path) {
         ZipEntry entry;
         Enumeration<? extends ZipEntrye;
         String name;
         String separator;
         String prefix;
         int length;
         List<Stringresult;
         int idx;
 
         e = .entries();
         separator = .;
         prefix = path.length() == 0 ? "" : path + separator;
         length = prefix.length();
         result = new ArrayList<String>();
         while (e.hasMoreElements()) {
             entry = e.nextElement();
            name = entry.getName();
            if (name.length() > length && name.startsWith(prefix)) {
                idx = name.indexOf(separatorlength);
                name = (idx == -1 ? name : name.substring(0, idx));
                if (!result.contains(name) && name.length() > 0 /* happens for "/" entries ... */) {
                    result.add(name);
                }
            }
        }
        return result;
    }
    public Manifest readManifest() throws IOException {
        InputStream src;
        Manifest result;
        src = node(.null).createInputStream();
        result = new Manifest(src);
        src.close();
        return result;
    }
New to GrepCode? Check out our FAQ X