package org.fandev.module.pod; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.util.Pair; import com.intellij.openapi.vfs.VirtualFile; import org.fandev.sdk.FanSdkType; import org.fandev.utils.VirtualFileUtil; import java.io.File; import java.util.LinkedList; import java.util.List; import java.util.Set; import java.util.HashSet; /** * @author Dror Bereznitsky * @date Jan 26, 2009 11:46:14 PM */ public class PodModel { private String name; private String description; private String version; private String buildScriptName; private VirtualFile buildScriptFile; private final List<String> dependencies; private final List<Pair<String,String>> srcDirs; private final List<Pair<String,String>> resDirs; private boolean docApi; private boolean docSrc; private final List<Pair<String,String>> indexes; private final List<Pair<String,String>> metas; private String outDir; public static final String BUILD_FAN = "build.fan"; //public static final String POD_FAN = "pod.fan"; public PodModel() { name = ""; description = ""; version = "1.0.0"; setBuildScriptName( BUILD_FAN); dependencies = new LinkedList<String>(); srcDirs = new LinkedList<Pair<String,String>>(); resDirs = new LinkedList<Pair<String,String>>(); indexes = new LinkedList<Pair<String,String>>(); metas = new LinkedList<Pair<String,String>>(); docSrc=false; docApi=true; outDir="out/"; //dependencies.add("sys 1.0"); //srcDirs.add(new Pair<String,String>("fan/", "fan/")); } public String getName() { return name; } public void setName(final String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(final String description) { this.description = description; } public String getVersion() { return version; } public void setVersion(final String version) { this.version = version; } public String getBuildScriptName() { return buildScriptName; } public void setBuildScriptName(final String buildScriptName) { this.buildScriptName = buildScriptName; } public VirtualFile getBuildScriptFile() { return buildScriptFile; } public void setBuildScriptFile(final VirtualFile buildScriptFile) { this.buildScriptFile = buildScriptFile; } public List<String> getDependencies() { if (dependencies.isEmpty()) { dependencies.add("sys 1.0"); } return dependencies; } public List<String> getDeclaredDependencies() { return dependencies; } public void setDependencies(final List<String> dependencies) { this.dependencies.clear(); this.dependencies.addAll(dependencies); } public void addDependency(final String dependency) { this.dependencies.add(dependency); } public void removeDependency(final String dependency) { this.dependencies.remove(dependency); } public List<Pair<String,String>> getSrcDirs() { if (srcDirs.isEmpty()) { srcDirs.add(new Pair<String,String>("fan/", "fan/")); } return srcDirs; } public void setSrcDirs(final List<Pair<String,String>> srcDirs) { this.srcDirs.clear(); this.srcDirs.addAll(srcDirs); } public void addSrcDir(final Pair<String,String> srcDir) { this.srcDirs.add(srcDir); } public void removeSrcDir(final Pair<String,String> srcDir) { this.srcDirs.remove(srcDir); } public List<Pair<String,String>> getResDirs() { return resDirs; } public void setResDirs(final List<Pair<String,String>> resDirs) { this.resDirs.clear(); this.resDirs.addAll(resDirs); } public void addResDir(final Pair<String,String> resDir) { this.resDirs.add(resDir); } public void removeResDir(final Pair<String,String> resDir) { this.resDirs.remove(resDir); } public List<Pair<String,String>> getIndexes() { return indexes; } public void setIndexes(final List<Pair<String,String>> indexes) { this.indexes.clear(); this.indexes.addAll(indexes); } public void addIndex(final Pair<String,String> index) { this.indexes.add(index); } public void removeIndex(final Pair<String,String> index) { this.indexes.remove(index); } public List<Pair<String,String>> getMetas() { return metas; } public void setMetas(final List<Pair<String,String>> metas) { this.metas.clear(); this.metas.addAll(metas); } public void addMeta(final Pair<String,String> meta) { this.metas.add(meta); } public void removeMeta(final Pair<String,String> meta) { this.metas.remove(meta); } public void setOutDir(final String value) { outDir = value; } public String getOutDir() { return outDir; } public boolean getDocApi() { return docApi; } public void setDocApi(final boolean value) { docApi=value; } public boolean getDocSrc() { return docSrc; } public void setDocSrc(final boolean value) { docSrc=value; } }