// Path: sbt-compiler-api/src/main/java/com/google/code/sbt/compiler/api/Analysis.java
// public interface Analysis
// {
//     /**
//      * Returns all source files.
//      *
//      * @return all source files
//      */
//     Set<File> getSourceFiles();
// 
//     /**
//      * Returns source file's compilation time.
//      *
//      * @param sourceFile source file
//      *
//      * @return source file's compilation time
//      */
//     long getCompilationTime( File sourceFile );
// 
//     /**
//      * Returns source file's compilation products (class files).
//      *
//      * @param sourceFile source file
//      *
//      * @return source file's compilation products (class files).
//      */
//     Set<File> getProducts( File sourceFile );
// 
//     /**
//      * Updates class file time stamp written in incremental compilation analysis
//      * to the value returned by {@link File#lastModified()}.
//      * 
//      * Not all compilers store file time stamps in the analysis,
//      * but for the ones that do it, it's important that this information
//      * is always up to date.
//      * 
//      * Class file is changed if it is processed after compilation.
//      * If it's new time stamp will not be stored in the analysis cache file
//      * the next time compilation runs, SBT compiler will unnecessarily recompile the file.
//      * 
//      * @param classFile class file
//      */
//     void updateClassFileTimestamp( File classFile );
// 
//     /**
//      * Stores incremental compilation analysis in the file.
//      * 
//      * @param analysisCacheFile the file to store analysis in
//      */
//     void writeToFile( File analysisCacheFile );
// 
//     /**
//      * Returns SBT native incremental compilation object.
//      *  
//      * @return SBT native incremental compilation
//      */
//     Object unwrap();
// 
// }
// 
// Path: sbt-compiler-api/src/main/java/com/google/code/sbt/compiler/api/AnalysisProcessor.java
// public interface AnalysisProcessor
// {
//     /**
//      * Returns information if this compiler stores class file time stamps
//      * in the incremental compilation analysis.
//      * 
//      *  @return information if class file time stamps are stored in the analysis
//      */
//     boolean areClassFileTimestampsSupported();
// 
//     /**
//      * Reads incremental compilation analysis from cache file.
//      * 
//      * @param analysisCacheFile the file to read analysis from
//      * 
//      * @return incremental compilation analysis object
//      */
//     Analysis readFromFile( File analysisCacheFile );
// 
// }


import java.io.File;
import com.typesafe.zinc.Compiler;
import com.google.code.sbt.compiler.api.Analysis;
import com.google.code.sbt.compiler.api.AnalysisProcessor;
import org.codehaus.plexus.component.annotations.Component;
/*
 * Copyright 2013-2017 Grzegorz Slowikowski (gslowikowski at gmail dot com)
 *
 * 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 com.google.code.sbt.compiler.sbt012;





/**
 * SBT 0.12.x compatible analysis processor
 * 
 * @author <a href="mailto:gslowikowski@gmail.com">Grzegorz Slowikowski</a>
 */
@Component( role = AnalysisProcessor.class, hint = "sbt012", description = "SBT 0.12.x analysis processor" )
public class SBT012AnalysisProcessor
    implements AnalysisProcessor
{
    /**
     * {@inheritDoc}
     */
    @Override
    public boolean areClassFileTimestampsSupported()
    {
        return false;
    }

    /**
     * {@inheritDoc}
     */
    @Override
// Path: sbt-compiler-api/src/main/java/com/google/code/sbt/compiler/api/Analysis.java
// public interface Analysis
// {
//     /**
//      * Returns all source files.
//      *
//      * @return all source files
//      */
//     Set<File> getSourceFiles();
// 
//     /**
//      * Returns source file's compilation time.
//      *
//      * @param sourceFile source file
//      *
//      * @return source file's compilation time
//      */
//     long getCompilationTime( File sourceFile );
// 
//     /**
//      * Returns source file's compilation products (class files).
//      *
//      * @param sourceFile source file
//      *
//      * @return source file's compilation products (class files).
//      */
//     Set<File> getProducts( File sourceFile );
// 
//     /**
//      * Updates class file time stamp written in incremental compilation analysis
//      * to the value returned by {@link File#lastModified()}.
//      * 
//      * Not all compilers store file time stamps in the analysis,
//      * but for the ones that do it, it's important that this information
//      * is always up to date.
//      * 
//      * Class file is changed if it is processed after compilation.
//      * If it's new time stamp will not be stored in the analysis cache file
//      * the next time compilation runs, SBT compiler will unnecessarily recompile the file.
//      * 
//      * @param classFile class file
//      */
//     void updateClassFileTimestamp( File classFile );
// 
//     /**
//      * Stores incremental compilation analysis in the file.
//      * 
//      * @param analysisCacheFile the file to store analysis in
//      */
//     void writeToFile( File analysisCacheFile );
// 
//     /**
//      * Returns SBT native incremental compilation object.
//      *  
//      * @return SBT native incremental compilation
//      */
//     Object unwrap();
// 
// }
// 
// Path: sbt-compiler-api/src/main/java/com/google/code/sbt/compiler/api/AnalysisProcessor.java
// public interface AnalysisProcessor
// {
//     /**
//      * Returns information if this compiler stores class file time stamps
//      * in the incremental compilation analysis.
//      * 
//      *  @return information if class file time stamps are stored in the analysis
//      */
//     boolean areClassFileTimestampsSupported();
// 
//     /**
//      * Reads incremental compilation analysis from cache file.
//      * 
//      * @param analysisCacheFile the file to read analysis from
//      * 
//      * @return incremental compilation analysis object
//      */
//     Analysis readFromFile( File analysisCacheFile );
// 
// }


// Path: sbt-compilers/sbt-compiler-sbt012/src/main/java/com/google/code/sbt/compiler/sbt012/SBT012AnalysisProcessor.java
import java.io.File;
import com.typesafe.zinc.Compiler;
import com.google.code.sbt.compiler.api.Analysis;
import com.google.code.sbt.compiler.api.AnalysisProcessor;
import org.codehaus.plexus.component.annotations.Component;

/*
 * Copyright 2013-2017 Grzegorz Slowikowski (gslowikowski at gmail dot com)
 *
 * 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 com.google.code.sbt.compiler.sbt012;





/**
 * SBT 0.12.x compatible analysis processor
 * 
 * @author <a href="mailto:gslowikowski@gmail.com">Grzegorz Slowikowski</a>
 */
@Component( role = AnalysisProcessor.class, hint = "sbt012", description = "SBT 0.12.x analysis processor" )
public class SBT012AnalysisProcessor
    implements AnalysisProcessor
{
    /**
     * {@inheritDoc}
     */
    @Override
    public boolean areClassFileTimestampsSupported()
    {
        return false;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Analysis readFromFile( File analysisCacheFile )