sun.tools.java.ClassFile Java Examples

The following examples show how to use sun.tools.java.ClassFile. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: Generator.java    From TencentKona-8 with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Create and return a new instance of self. Subclasses
 * which need to do something other than default construction
 * must override this method.
 */
protected void generateOutputFiles (CompoundType topType,
                                    BatchEnvironment env,
                                    File destDir) {

    // Grab the 'alreadyChecked' HashSet from the environment...

    HashSet alreadyChecked = env.alreadyChecked;

    // Ask subclass for a list of output types...

    OutputType[] types = getOutputTypesFor(topType,alreadyChecked);

    // Process each file...

    for (int i = 0; i < types.length; i++) {
        OutputType current = types[i];
        String className = current.getName();
        File file = getFileFor(current,destDir);
        boolean sourceFile = false;

        // Do we need to generate this file?

        if (requiresGeneration(file,current.getType())) {

            // Yes. If java source file, add to environment so will be compiled...

            if (file.getName().endsWith(".java")) {
                sourceFile = compileJavaSourceFile(current);

                            // Are we supposeded to compile this one?

                if (sourceFile) {
                    env.addGeneratedFile(file);
                }
            }

            // Now create an output stream and ask subclass to fill it up...

            try {
               IndentingWriter out = new IndentingWriter(
                                                          new OutputStreamWriter(new FileOutputStream(file)),INDENT_STEP,TAB_SIZE);

                long startTime = 0;
                if (env.verbose()) {
                    startTime = System.currentTimeMillis();
                }

                writeOutputFor(types[i],alreadyChecked,out);
                out.close();

                if (env.verbose()) {
                    long duration = System.currentTimeMillis() - startTime;
                    env.output(Main.getText("rmic.generated", file.getPath(), Long.toString(duration)));
                }
                if (sourceFile) {
                    env.parseFile(new ClassFile(file));
                }
            } catch (IOException e) {
                env.error(0, "cant.write", file.toString());
                return;
            }
        } else {

            // No, say so if we need to...

            if (env.verbose()) {
                env.output(Main.getText("rmic.previously.generated", file.getPath()));
            }
        }
    }
}
 
Example #2
Source File: Generator.java    From jdk8u60 with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Create and return a new instance of self. Subclasses
 * which need to do something other than default construction
 * must override this method.
 */
protected void generateOutputFiles (CompoundType topType,
                                    BatchEnvironment env,
                                    File destDir) {

    // Grab the 'alreadyChecked' HashSet from the environment...

    HashSet alreadyChecked = env.alreadyChecked;

    // Ask subclass for a list of output types...

    OutputType[] types = getOutputTypesFor(topType,alreadyChecked);

    // Process each file...

    for (int i = 0; i < types.length; i++) {
        OutputType current = types[i];
        String className = current.getName();
        File file = getFileFor(current,destDir);
        boolean sourceFile = false;

        // Do we need to generate this file?

        if (requiresGeneration(file,current.getType())) {

            // Yes. If java source file, add to environment so will be compiled...

            if (file.getName().endsWith(".java")) {
                sourceFile = compileJavaSourceFile(current);

                            // Are we supposeded to compile this one?

                if (sourceFile) {
                    env.addGeneratedFile(file);
                }
            }

            // Now create an output stream and ask subclass to fill it up...

            try {
               IndentingWriter out = new IndentingWriter(
                                                          new OutputStreamWriter(new FileOutputStream(file)),INDENT_STEP,TAB_SIZE);

                long startTime = 0;
                if (env.verbose()) {
                    startTime = System.currentTimeMillis();
                }

                writeOutputFor(types[i],alreadyChecked,out);
                out.close();

                if (env.verbose()) {
                    long duration = System.currentTimeMillis() - startTime;
                    env.output(Main.getText("rmic.generated", file.getPath(), Long.toString(duration)));
                }
                if (sourceFile) {
                    env.parseFile(new ClassFile(file));
                }
            } catch (IOException e) {
                env.error(0, "cant.write", file.toString());
                return;
            }
        } else {

            // No, say so if we need to...

            if (env.verbose()) {
                env.output(Main.getText("rmic.previously.generated", file.getPath()));
            }
        }
    }
}
 
Example #3
Source File: Generator.java    From openjdk-jdk8u with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Create and return a new instance of self. Subclasses
 * which need to do something other than default construction
 * must override this method.
 */
protected void generateOutputFiles (CompoundType topType,
                                    BatchEnvironment env,
                                    File destDir) {

    // Grab the 'alreadyChecked' HashSet from the environment...

    HashSet alreadyChecked = env.alreadyChecked;

    // Ask subclass for a list of output types...

    OutputType[] types = getOutputTypesFor(topType,alreadyChecked);

    // Process each file...

    for (int i = 0; i < types.length; i++) {
        OutputType current = types[i];
        String className = current.getName();
        File file = getFileFor(current,destDir);
        boolean sourceFile = false;

        // Do we need to generate this file?

        if (requiresGeneration(file,current.getType())) {

            // Yes. If java source file, add to environment so will be compiled...

            if (file.getName().endsWith(".java")) {
                sourceFile = compileJavaSourceFile(current);

                            // Are we supposeded to compile this one?

                if (sourceFile) {
                    env.addGeneratedFile(file);
                }
            }

            // Now create an output stream and ask subclass to fill it up...

            try {
               IndentingWriter out = new IndentingWriter(
                                                          new OutputStreamWriter(new FileOutputStream(file)),INDENT_STEP,TAB_SIZE);

                long startTime = 0;
                if (env.verbose()) {
                    startTime = System.currentTimeMillis();
                }

                writeOutputFor(types[i],alreadyChecked,out);
                out.close();

                if (env.verbose()) {
                    long duration = System.currentTimeMillis() - startTime;
                    env.output(Main.getText("rmic.generated", file.getPath(), Long.toString(duration)));
                }
                if (sourceFile) {
                    env.parseFile(new ClassFile(file));
                }
            } catch (IOException e) {
                env.error(0, "cant.write", file.toString());
                return;
            }
        } else {

            // No, say so if we need to...

            if (env.verbose()) {
                env.output(Main.getText("rmic.previously.generated", file.getPath()));
            }
        }
    }
}
 
Example #4
Source File: Generator.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Create and return a new instance of self. Subclasses
 * which need to do something other than default construction
 * must override this method.
 */
protected void generateOutputFiles (CompoundType topType,
                                    BatchEnvironment env,
                                    File destDir) {

    // Grab the 'alreadyChecked' HashSet from the environment...

    HashSet alreadyChecked = env.alreadyChecked;

    // Ask subclass for a list of output types...

    OutputType[] types = getOutputTypesFor(topType,alreadyChecked);

    // Process each file...

    for (int i = 0; i < types.length; i++) {
        OutputType current = types[i];
        String className = current.getName();
        File file = getFileFor(current,destDir);
        boolean sourceFile = false;

        // Do we need to generate this file?

        if (requiresGeneration(file,current.getType())) {

            // Yes. If java source file, add to environment so will be compiled...

            if (file.getName().endsWith(".java")) {
                sourceFile = compileJavaSourceFile(current);

                            // Are we supposeded to compile this one?

                if (sourceFile) {
                    env.addGeneratedFile(file);
                }
            }

            // Now create an output stream and ask subclass to fill it up...

            try {
               IndentingWriter out = new IndentingWriter(
                                                          new OutputStreamWriter(new FileOutputStream(file)),INDENT_STEP,TAB_SIZE);

                long startTime = 0;
                if (env.verbose()) {
                    startTime = System.currentTimeMillis();
                }

                writeOutputFor(types[i],alreadyChecked,out);
                out.close();

                if (env.verbose()) {
                    long duration = System.currentTimeMillis() - startTime;
                    env.output(Main.getText("rmic.generated", file.getPath(), Long.toString(duration)));
                }
                if (sourceFile) {
                    env.parseFile(new ClassFile(file));
                }
            } catch (IOException e) {
                env.error(0, "cant.write", file.toString());
                return;
            }
        } else {

            // No, say so if we need to...

            if (env.verbose()) {
                env.output(Main.getText("rmic.previously.generated", file.getPath()));
            }
        }
    }
}
 
Example #5
Source File: Generator.java    From openjdk-jdk9 with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Create and return a new instance of self. Subclasses
 * which need to do something other than default construction
 * must override this method.
 */
protected void generateOutputFiles (CompoundType topType,
                                    BatchEnvironment env,
                                    File destDir) {

    // Grab the 'alreadyChecked' HashSet from the environment...

    HashSet alreadyChecked = env.alreadyChecked;

    // Ask subclass for a list of output types...

    OutputType[] types = getOutputTypesFor(topType,alreadyChecked);

    // Process each file...

    for (int i = 0; i < types.length; i++) {
        OutputType current = types[i];
        String className = current.getName();
        File file = getFileFor(current,destDir);
        boolean sourceFile = false;

        // Do we need to generate this file?

        if (requiresGeneration(file,current.getType())) {

            // Yes. If java source file, add to environment so will be compiled...

            if (file.getName().endsWith(".java")) {
                sourceFile = compileJavaSourceFile(current);

                            // Are we supposeded to compile this one?

                if (sourceFile) {
                    env.addGeneratedFile(file);
                }
            }

            // Now create an output stream and ask subclass to fill it up...

            try {
               IndentingWriter out = new IndentingWriter(
                                                          new OutputStreamWriter(new FileOutputStream(file)),INDENT_STEP,TAB_SIZE);

                long startTime = 0;
                if (env.verbose()) {
                    startTime = System.currentTimeMillis();
                }

                writeOutputFor(types[i],alreadyChecked,out);
                out.close();

                if (env.verbose()) {
                    long duration = System.currentTimeMillis() - startTime;
                    env.output(Main.getText("rmic.generated", file.getPath(), Long.toString(duration)));
                }
                if (sourceFile) {
                    env.parseFile(ClassFile.newClassFile(file));
                }
            } catch (IOException e) {
                env.error(0, "cant.write", file.toString());
                return;
            }
        } else {

            // No, say so if we need to...

            if (env.verbose()) {
                env.output(Main.getText("rmic.previously.generated", file.getPath()));
            }
        }
    }
}
 
Example #6
Source File: Generator.java    From hottub with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Create and return a new instance of self. Subclasses
 * which need to do something other than default construction
 * must override this method.
 */
protected void generateOutputFiles (CompoundType topType,
                                    BatchEnvironment env,
                                    File destDir) {

    // Grab the 'alreadyChecked' HashSet from the environment...

    HashSet alreadyChecked = env.alreadyChecked;

    // Ask subclass for a list of output types...

    OutputType[] types = getOutputTypesFor(topType,alreadyChecked);

    // Process each file...

    for (int i = 0; i < types.length; i++) {
        OutputType current = types[i];
        String className = current.getName();
        File file = getFileFor(current,destDir);
        boolean sourceFile = false;

        // Do we need to generate this file?

        if (requiresGeneration(file,current.getType())) {

            // Yes. If java source file, add to environment so will be compiled...

            if (file.getName().endsWith(".java")) {
                sourceFile = compileJavaSourceFile(current);

                            // Are we supposeded to compile this one?

                if (sourceFile) {
                    env.addGeneratedFile(file);
                }
            }

            // Now create an output stream and ask subclass to fill it up...

            try {
               IndentingWriter out = new IndentingWriter(
                                                          new OutputStreamWriter(new FileOutputStream(file)),INDENT_STEP,TAB_SIZE);

                long startTime = 0;
                if (env.verbose()) {
                    startTime = System.currentTimeMillis();
                }

                writeOutputFor(types[i],alreadyChecked,out);
                out.close();

                if (env.verbose()) {
                    long duration = System.currentTimeMillis() - startTime;
                    env.output(Main.getText("rmic.generated", file.getPath(), Long.toString(duration)));
                }
                if (sourceFile) {
                    env.parseFile(new ClassFile(file));
                }
            } catch (IOException e) {
                env.error(0, "cant.write", file.toString());
                return;
            }
        } else {

            // No, say so if we need to...

            if (env.verbose()) {
                env.output(Main.getText("rmic.previously.generated", file.getPath()));
            }
        }
    }
}
 
Example #7
Source File: Generator.java    From openjdk-8-source with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Create and return a new instance of self. Subclasses
 * which need to do something other than default construction
 * must override this method.
 */
protected void generateOutputFiles (CompoundType topType,
                                    BatchEnvironment env,
                                    File destDir) {

    // Grab the 'alreadyChecked' HashSet from the environment...

    HashSet alreadyChecked = env.alreadyChecked;

    // Ask subclass for a list of output types...

    OutputType[] types = getOutputTypesFor(topType,alreadyChecked);

    // Process each file...

    for (int i = 0; i < types.length; i++) {
        OutputType current = types[i];
        String className = current.getName();
        File file = getFileFor(current,destDir);
        boolean sourceFile = false;

        // Do we need to generate this file?

        if (requiresGeneration(file,current.getType())) {

            // Yes. If java source file, add to environment so will be compiled...

            if (file.getName().endsWith(".java")) {
                sourceFile = compileJavaSourceFile(current);

                            // Are we supposeded to compile this one?

                if (sourceFile) {
                    env.addGeneratedFile(file);
                }
            }

            // Now create an output stream and ask subclass to fill it up...

            try {
               IndentingWriter out = new IndentingWriter(
                                                          new OutputStreamWriter(new FileOutputStream(file)),INDENT_STEP,TAB_SIZE);

                long startTime = 0;
                if (env.verbose()) {
                    startTime = System.currentTimeMillis();
                }

                writeOutputFor(types[i],alreadyChecked,out);
                out.close();

                if (env.verbose()) {
                    long duration = System.currentTimeMillis() - startTime;
                    env.output(Main.getText("rmic.generated", file.getPath(), Long.toString(duration)));
                }
                if (sourceFile) {
                    env.parseFile(new ClassFile(file));
                }
            } catch (IOException e) {
                env.error(0, "cant.write", file.toString());
                return;
            }
        } else {

            // No, say so if we need to...

            if (env.verbose()) {
                env.output(Main.getText("rmic.previously.generated", file.getPath()));
            }
        }
    }
}
 
Example #8
Source File: Generator.java    From openjdk-8 with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Create and return a new instance of self. Subclasses
 * which need to do something other than default construction
 * must override this method.
 */
protected void generateOutputFiles (CompoundType topType,
                                    BatchEnvironment env,
                                    File destDir) {

    // Grab the 'alreadyChecked' HashSet from the environment...

    HashSet alreadyChecked = env.alreadyChecked;

    // Ask subclass for a list of output types...

    OutputType[] types = getOutputTypesFor(topType,alreadyChecked);

    // Process each file...

    for (int i = 0; i < types.length; i++) {
        OutputType current = types[i];
        String className = current.getName();
        File file = getFileFor(current,destDir);
        boolean sourceFile = false;

        // Do we need to generate this file?

        if (requiresGeneration(file,current.getType())) {

            // Yes. If java source file, add to environment so will be compiled...

            if (file.getName().endsWith(".java")) {
                sourceFile = compileJavaSourceFile(current);

                            // Are we supposeded to compile this one?

                if (sourceFile) {
                    env.addGeneratedFile(file);
                }
            }

            // Now create an output stream and ask subclass to fill it up...

            try {
               IndentingWriter out = new IndentingWriter(
                                                          new OutputStreamWriter(new FileOutputStream(file)),INDENT_STEP,TAB_SIZE);

                long startTime = 0;
                if (env.verbose()) {
                    startTime = System.currentTimeMillis();
                }

                writeOutputFor(types[i],alreadyChecked,out);
                out.close();

                if (env.verbose()) {
                    long duration = System.currentTimeMillis() - startTime;
                    env.output(Main.getText("rmic.generated", file.getPath(), Long.toString(duration)));
                }
                if (sourceFile) {
                    env.parseFile(new ClassFile(file));
                }
            } catch (IOException e) {
                env.error(0, "cant.write", file.toString());
                return;
            }
        } else {

            // No, say so if we need to...

            if (env.verbose()) {
                env.output(Main.getText("rmic.previously.generated", file.getPath()));
            }
        }
    }
}
 
Example #9
Source File: Generator.java    From TencentKona-8 with GNU General Public License v2.0 2 votes vote down vote up
/**
 * Return true if the specified file needs generation.
 */
public boolean requiresGeneration (File target, Type theType) {

    boolean result = alwaysGenerate;

    if (!result) {

        // Get a ClassFile instance for base source or class
        // file.  We use ClassFile so that if the base is in
        // a zip file, we can still get at it's mod time...

        ClassFile baseFile;
        ClassPath path = env.getClassPath();
        String className = theType.getQualifiedName().replace('.',File.separatorChar);

        // First try the source file...

        baseFile = path.getFile(className + ".source");

        if (baseFile == null) {

            // Then try class file...

            baseFile = path.getFile(className + ".class");
        }

        // Do we have a baseFile?

        if (baseFile != null) {

            // Yes, grab baseFile's mod time...

            long baseFileMod = baseFile.lastModified();

            // Get a File instance for the target. If it is a source
            // file, create a class file instead since the source file
            // will frequently be deleted...

            String targetName = IDLNames.replace(target.getName(),".java",".class");
            String parentPath = target.getParent();
            File targetFile = new File(parentPath,targetName);

            // Does the target file exist?

            if (targetFile.exists()) {

                // Yes, so grab it's mod time...

                long targetFileMod = targetFile.lastModified();

                // Set result...

                result = targetFileMod < baseFileMod;

            } else {

                // No, so we must generate...

                result = true;
            }
        } else {

            // No, so we must generate...

            result = true;
        }
    }

    return result;
}
 
Example #10
Source File: Generator.java    From jdk8u60 with GNU General Public License v2.0 2 votes vote down vote up
/**
 * Return true if the specified file needs generation.
 */
public boolean requiresGeneration (File target, Type theType) {

    boolean result = alwaysGenerate;

    if (!result) {

        // Get a ClassFile instance for base source or class
        // file.  We use ClassFile so that if the base is in
        // a zip file, we can still get at it's mod time...

        ClassFile baseFile;
        ClassPath path = env.getClassPath();
        String className = theType.getQualifiedName().replace('.',File.separatorChar);

        // First try the source file...

        baseFile = path.getFile(className + ".source");

        if (baseFile == null) {

            // Then try class file...

            baseFile = path.getFile(className + ".class");
        }

        // Do we have a baseFile?

        if (baseFile != null) {

            // Yes, grab baseFile's mod time...

            long baseFileMod = baseFile.lastModified();

            // Get a File instance for the target. If it is a source
            // file, create a class file instead since the source file
            // will frequently be deleted...

            String targetName = IDLNames.replace(target.getName(),".java",".class");
            String parentPath = target.getParent();
            File targetFile = new File(parentPath,targetName);

            // Does the target file exist?

            if (targetFile.exists()) {

                // Yes, so grab it's mod time...

                long targetFileMod = targetFile.lastModified();

                // Set result...

                result = targetFileMod < baseFileMod;

            } else {

                // No, so we must generate...

                result = true;
            }
        } else {

            // No, so we must generate...

            result = true;
        }
    }

    return result;
}
 
Example #11
Source File: Generator.java    From openjdk-jdk8u with GNU General Public License v2.0 2 votes vote down vote up
/**
 * Return true if the specified file needs generation.
 */
public boolean requiresGeneration (File target, Type theType) {

    boolean result = alwaysGenerate;

    if (!result) {

        // Get a ClassFile instance for base source or class
        // file.  We use ClassFile so that if the base is in
        // a zip file, we can still get at it's mod time...

        ClassFile baseFile;
        ClassPath path = env.getClassPath();
        String className = theType.getQualifiedName().replace('.',File.separatorChar);

        // First try the source file...

        baseFile = path.getFile(className + ".source");

        if (baseFile == null) {

            // Then try class file...

            baseFile = path.getFile(className + ".class");
        }

        // Do we have a baseFile?

        if (baseFile != null) {

            // Yes, grab baseFile's mod time...

            long baseFileMod = baseFile.lastModified();

            // Get a File instance for the target. If it is a source
            // file, create a class file instead since the source file
            // will frequently be deleted...

            String targetName = IDLNames.replace(target.getName(),".java",".class");
            String parentPath = target.getParent();
            File targetFile = new File(parentPath,targetName);

            // Does the target file exist?

            if (targetFile.exists()) {

                // Yes, so grab it's mod time...

                long targetFileMod = targetFile.lastModified();

                // Set result...

                result = targetFileMod < baseFileMod;

            } else {

                // No, so we must generate...

                result = true;
            }
        } else {

            // No, so we must generate...

            result = true;
        }
    }

    return result;
}
 
Example #12
Source File: Generator.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 2 votes vote down vote up
/**
 * Return true if the specified file needs generation.
 */
public boolean requiresGeneration (File target, Type theType) {

    boolean result = alwaysGenerate;

    if (!result) {

        // Get a ClassFile instance for base source or class
        // file.  We use ClassFile so that if the base is in
        // a zip file, we can still get at it's mod time...

        ClassFile baseFile;
        ClassPath path = env.getClassPath();
        String className = theType.getQualifiedName().replace('.',File.separatorChar);

        // First try the source file...

        baseFile = path.getFile(className + ".source");

        if (baseFile == null) {

            // Then try class file...

            baseFile = path.getFile(className + ".class");
        }

        // Do we have a baseFile?

        if (baseFile != null) {

            // Yes, grab baseFile's mod time...

            long baseFileMod = baseFile.lastModified();

            // Get a File instance for the target. If it is a source
            // file, create a class file instead since the source file
            // will frequently be deleted...

            String targetName = IDLNames.replace(target.getName(),".java",".class");
            String parentPath = target.getParent();
            File targetFile = new File(parentPath,targetName);

            // Does the target file exist?

            if (targetFile.exists()) {

                // Yes, so grab it's mod time...

                long targetFileMod = targetFile.lastModified();

                // Set result...

                result = targetFileMod < baseFileMod;

            } else {

                // No, so we must generate...

                result = true;
            }
        } else {

            // No, so we must generate...

            result = true;
        }
    }

    return result;
}
 
Example #13
Source File: Generator.java    From openjdk-jdk9 with GNU General Public License v2.0 2 votes vote down vote up
/**
 * Return true if the specified file needs generation.
 */
public boolean requiresGeneration (File target, Type theType) {

    boolean result = alwaysGenerate;

    if (!result) {

        // Get a ClassFile instance for base source or class
        // file.  We use ClassFile so that if the base is in
        // a zip file, we can still get at it's mod time...

        ClassFile baseFile;
        ClassPath path = env.getClassPath();
        String className = theType.getQualifiedName().replace('.',File.separatorChar);

        // First try the source file...

        baseFile = path.getFile(className + ".source");

        if (baseFile == null) {

            // Then try class file...

            baseFile = path.getFile(className + ".class");
        }

        // Do we have a baseFile?

        if (baseFile != null) {

            // Yes, grab baseFile's mod time...

            long baseFileMod = baseFile.lastModified();

            // Get a File instance for the target. If it is a source
            // file, create a class file instead since the source file
            // will frequently be deleted...

            String targetName = IDLNames.replace(target.getName(),".java",".class");
            String parentPath = target.getParent();
            File targetFile = new File(parentPath,targetName);

            // Does the target file exist?

            if (targetFile.exists()) {

                // Yes, so grab it's mod time...

                long targetFileMod = targetFile.lastModified();

                // Set result...

                result = targetFileMod < baseFileMod;

            } else {

                // No, so we must generate...

                result = true;
            }
        } else {

            // No, so we must generate...

            result = true;
        }
    }

    return result;
}
 
Example #14
Source File: Generator.java    From hottub with GNU General Public License v2.0 2 votes vote down vote up
/**
 * Return true if the specified file needs generation.
 */
public boolean requiresGeneration (File target, Type theType) {

    boolean result = alwaysGenerate;

    if (!result) {

        // Get a ClassFile instance for base source or class
        // file.  We use ClassFile so that if the base is in
        // a zip file, we can still get at it's mod time...

        ClassFile baseFile;
        ClassPath path = env.getClassPath();
        String className = theType.getQualifiedName().replace('.',File.separatorChar);

        // First try the source file...

        baseFile = path.getFile(className + ".source");

        if (baseFile == null) {

            // Then try class file...

            baseFile = path.getFile(className + ".class");
        }

        // Do we have a baseFile?

        if (baseFile != null) {

            // Yes, grab baseFile's mod time...

            long baseFileMod = baseFile.lastModified();

            // Get a File instance for the target. If it is a source
            // file, create a class file instead since the source file
            // will frequently be deleted...

            String targetName = IDLNames.replace(target.getName(),".java",".class");
            String parentPath = target.getParent();
            File targetFile = new File(parentPath,targetName);

            // Does the target file exist?

            if (targetFile.exists()) {

                // Yes, so grab it's mod time...

                long targetFileMod = targetFile.lastModified();

                // Set result...

                result = targetFileMod < baseFileMod;

            } else {

                // No, so we must generate...

                result = true;
            }
        } else {

            // No, so we must generate...

            result = true;
        }
    }

    return result;
}
 
Example #15
Source File: Generator.java    From openjdk-8-source with GNU General Public License v2.0 2 votes vote down vote up
/**
 * Return true if the specified file needs generation.
 */
public boolean requiresGeneration (File target, Type theType) {

    boolean result = alwaysGenerate;

    if (!result) {

        // Get a ClassFile instance for base source or class
        // file.  We use ClassFile so that if the base is in
        // a zip file, we can still get at it's mod time...

        ClassFile baseFile;
        ClassPath path = env.getClassPath();
        String className = theType.getQualifiedName().replace('.',File.separatorChar);

        // First try the source file...

        baseFile = path.getFile(className + ".source");

        if (baseFile == null) {

            // Then try class file...

            baseFile = path.getFile(className + ".class");
        }

        // Do we have a baseFile?

        if (baseFile != null) {

            // Yes, grab baseFile's mod time...

            long baseFileMod = baseFile.lastModified();

            // Get a File instance for the target. If it is a source
            // file, create a class file instead since the source file
            // will frequently be deleted...

            String targetName = IDLNames.replace(target.getName(),".java",".class");
            String parentPath = target.getParent();
            File targetFile = new File(parentPath,targetName);

            // Does the target file exist?

            if (targetFile.exists()) {

                // Yes, so grab it's mod time...

                long targetFileMod = targetFile.lastModified();

                // Set result...

                result = targetFileMod < baseFileMod;

            } else {

                // No, so we must generate...

                result = true;
            }
        } else {

            // No, so we must generate...

            result = true;
        }
    }

    return result;
}
 
Example #16
Source File: Generator.java    From openjdk-8 with GNU General Public License v2.0 2 votes vote down vote up
/**
 * Return true if the specified file needs generation.
 */
public boolean requiresGeneration (File target, Type theType) {

    boolean result = alwaysGenerate;

    if (!result) {

        // Get a ClassFile instance for base source or class
        // file.  We use ClassFile so that if the base is in
        // a zip file, we can still get at it's mod time...

        ClassFile baseFile;
        ClassPath path = env.getClassPath();
        String className = theType.getQualifiedName().replace('.',File.separatorChar);

        // First try the source file...

        baseFile = path.getFile(className + ".source");

        if (baseFile == null) {

            // Then try class file...

            baseFile = path.getFile(className + ".class");
        }

        // Do we have a baseFile?

        if (baseFile != null) {

            // Yes, grab baseFile's mod time...

            long baseFileMod = baseFile.lastModified();

            // Get a File instance for the target. If it is a source
            // file, create a class file instead since the source file
            // will frequently be deleted...

            String targetName = IDLNames.replace(target.getName(),".java",".class");
            String parentPath = target.getParent();
            File targetFile = new File(parentPath,targetName);

            // Does the target file exist?

            if (targetFile.exists()) {

                // Yes, so grab it's mod time...

                long targetFileMod = targetFile.lastModified();

                // Set result...

                result = targetFileMod < baseFileMod;

            } else {

                // No, so we must generate...

                result = true;
            }
        } else {

            // No, so we must generate...

            result = true;
        }
    }

    return result;
}