/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package br.uff.ic.oceano.core.tools.revision; import br.uff.ic.oceano.core.model.Revision; import br.uff.ic.oceano.core.model.transiente.Language; import br.uff.ic.oceano.ostra.model.VersionedItem; import java.util.*; /** * * @author DanCastellani */ public class RevisionUtil implements RevisionTool { private static RevisionUtil self = new RevisionUtil(); private RevisionTool javaTool = null; private RevisionTool cppTool = null; private RevisionUtil() { javaTool = new JavaRevisionTool(); cppTool = new CPPRevisionTool(); } public static RevisionUtil get() { return self; } public boolean hasSourceFileInChangedFiles(final Revision revision) throws Exception { final Set<VersionedItem> sourceFieles = getRevisionTool(revision).getSourceFilesFromChangedFiles(revision); return sourceFieles !=null && !sourceFieles.isEmpty(); } public Set<VersionedItem> getSourceFilesFromChangedFiles(Revision revision) throws Exception { return getRevisionTool(revision).getSourceFilesFromChangedFiles(revision); } public Set<VersionedItem> getPackagesFromChangedFiles(Revision revision) throws Exception { return getRevisionTool(revision).getPackagesFromChangedFiles(revision); } public Set<String> getSourceFiles(Revision revision) throws Exception { return getRevisionTool(revision).getSourceFiles(revision); } public Set<String> getPackages(Revision revision) throws Exception { return getRevisionTool(revision).getPackages(revision); } public Set<String> getCompilationFolders(Revision revision) throws Exception { return getRevisionTool(revision).getCompilationFolders(revision); } public void validate(Revision revision) throws Exception { getRevisionTool(revision).validate(revision); } public Set<String> getSourceClassPaths(Revision revision) throws Exception { return getRevisionTool(revision).getSourceClassPaths(revision); } private RevisionTool getRevisionTool(final Revision revision) throws Exception { if (revision == null) { throw new Exception("Revision is null"); } else if (revision.getProject() == null) { throw new Exception("Revision project is null"); } Language lang = revision.getProject().getLanguage(); if (lang.equals(Language.CPP)) { return cppTool; } else if (lang.equals(Language.JAVA)) { return javaTool; } else { throw new Exception("Unsupported language: " + lang); } } }