001    package org.extendj.ast;
002    
003    import java.util.HashSet;
004    import java.io.File;
005    import java.util.Set;
006    import java.util.Collections;
007    import java.util.Collection;
008    import java.util.ArrayList;
009    import beaver.*;
010    import java.util.*;
011    import java.io.ByteArrayOutputStream;
012    import java.io.PrintStream;
013    import java.lang.reflect.InvocationTargetException;
014    import java.lang.reflect.Method;
015    import org.jastadd.util.*;
016    import java.util.zip.*;
017    import java.io.*;
018    import org.jastadd.util.PrettyPrintable;
019    import org.jastadd.util.PrettyPrinter;
020    import java.io.FileNotFoundException;
021    import java.io.BufferedInputStream;
022    import java.io.DataInputStream;
023    /**
024     * @ast class
025     * @aspect PathPart
026     * @declaredat /home/jesper/git/extendj/java4/frontend/PathPart.jadd:159
027     */
028    public class FileClassSource extends ClassSource {
029      
030        private final String filePath;
031    
032      
033    
034        public FileClassSource(PathPart sourcePath, String path) {
035          super(sourcePath);
036          this.filePath = path;
037        }
038    
039      
040    
041        @Override
042        public long lastModified() {
043          // last modification time computed only if needed
044          File file = new File(filePath);
045          return file.lastModified();
046        }
047    
048      
049    
050        @Override
051        public InputStream openInputStream() throws IOException {
052          File file = new File(filePath);
053          return new FileInputStream(file);
054        }
055    
056      
057    
058        @Override
059        public String pathName() {
060          return filePath;
061        }
062    
063    
064    }