package com.antfortune.freeline.idea.models;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.antfortune.freeline.idea.utils.FreelineUtil;
import com.antfortune.freeline.idea.utils.LogUtil;
import java.io.File;
import java.util.Collection;
import java.util.Timer;
import java.util.TimerTask;
/**
* Created by pengwei on 2016/10/31.
*/
public class FreelineStatus {
Collection<VirtualFile> gradleBuildFiles;
boolean existClasspath = false;
private VirtualFile classpathFile;
boolean existPlugin = false;
private VirtualFile pluginFile;
// mac下只有freeline文件夹 + freeline.py , win下有freeline.py + freeline/ + freeline_core/
boolean existFreelineCore = false;
public FreelineStatus setClasspathFile(VirtualFile classpathFile) {
this.classpathFile = classpathFile;
if (classpathFile != null) {
existClasspath = true;
}
return this;
}
public FreelineStatus setPluginFile(VirtualFile pluginFile) {
this.pluginFile = pluginFile;
if (pluginFile != null) {
existPlugin = true;
}
return this;
}
public FreelineStatus setExistFreelineCore(boolean existFreelineCore) {
this.existFreelineCore = existFreelineCore;
return this;
}
public boolean isExistClasspath() {
return existClasspath;
}
public VirtualFile getClasspathFile() {
return classpathFile;
}
public boolean isExistPlugin() {
return existPlugin;
}
public VirtualFile getPluginFile() {
return pluginFile;
}
public boolean isExistFreelineCore() {
return existFreelineCore;
}
/**
* 是否初始化Freeline
* 满足一下三个条件
* 1. 存在classpath 'com.antfortune.freeline:gradle:*'
* 2. 存在apply plugin: 'com.antfortune.freeline'
* 3. 存在freeline文件夹、freeline.py
*
* @return
*/
public boolean hasInitFreeline() {
LogUtil.d("existClasspath=%s,existPlugin=%s,existFreelineCore=%s", existClasspath, existPlugin, existFreelineCore);
return existClasspath && existPlugin && existFreelineCore;
}
public Collection<VirtualFile> getGradleBuildFiles() {
return gradleBuildFiles;
}
public FreelineStatus setGradleBuildFiles(Collection<VirtualFile> gradleBuildFiles) {
this.gradleBuildFiles = gradleBuildFiles;
return this;
}
}