Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2013 JBoss, by Red Hat, Inc
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *    http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package org.jboss.errai.common.metadata;
 
 
 import java.net.URL;
 import java.util.List;

Implementation of org.jboss.errai.reflections.vfs.Vfs.Dir to support JBoss VFS for proper classpath scanning on JBoss AS.

Author(s):
Mike Brock <cbrock@redhat.com>
Jonathan Fuerth <jfuerth@redhat.com>
 
 public class JBossVfsDir implements Vfs.Dir {
   private VirtualFile virtualFile;
 
   public JBossVfsDir(URL url) {
     try {
       Object content = url.getContent();
       if (content instanceof VirtualFile) {
          = (VirtualFilecontent;
       }
       else {
         throw new IllegalArgumentException(
             "URL content is not a JBoss VFS VirtualFile. Type is: " +
                 (content == null ? "null" : content.getClass().getName()));
       }
     }
     catch (IOException e) {
       throw new RuntimeException("could not instantiate VFS directory"e);
     }
   }
 
   @Override
   public String getPath() {
     return .getPathName();
   }
 
   @Override
   public Iterable<Vfs.FilegetFiles() {
     return new Iterable<Vfs.File>() {
       @Override
       public Iterator<Vfs.Fileiterator() {
         final List<VirtualFiletoVisit = new ArrayList<VirtualFile>(.getChildren());
 
         return new AbstractIterator<Vfs.File>() {
 
           @Override
           protected Vfs.File computeNext() {
             while (!toVisit.isEmpty()) {
               final VirtualFile nextFile = toVisit.remove(toVisit.size() - 1);
               if (nextFile.isDirectory()) {
                 toVisit.addAll(nextFile.getChildren());
                 continue;
               }
               return new Vfs.File() {
                 @Override
                 public String getName() {
                   return nextFile.getName();
                 }
 
                 @Override
                 public String getRelativePath() {
                   return nextFile.getPathName();
                 }
 
                 @Override
                 public String getFullPath() {
                   return nextFile.getPathName();
                 }
 
                 @Override
                 public InputStream openInputStream() throws IOException {
                   return nextFile.openStream();
                 }
               };
             }
            return endOfData();
          }
        };
      }
    };
  }
  public void close() {
  }
New to GrepCode? Check out our FAQ X