// Copyright (c) 2003-2005 by Leif Frenzel - see http://leiffrenzel.de package net.sf.eclipsefp.haskell.core.builder; import net.sf.eclipsefp.haskell.core.util.ResourceUtil; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.IProgressMonitor; /** <p>The superclass for visitors used in building Haskell projects</p> * * @author Leif Frenzel */ abstract class Visitor { private final IProgressMonitor monitor; private boolean needBuild=false; private boolean needSynchronize=false; Visitor( final IProgressMonitor monitor ) { this.monitor = monitor; } IProgressMonitor getMonitor() { return monitor; } public boolean isNeedBuild() { return needBuild; } public void setNeedBuild( final boolean needBuild ) { this.needBuild = needBuild; } // boolean isHaskellFile( final IFile file ) { // return FileUtil.hasHaskellExtension( file ); // } // // boolean isCabalFile( final IFile file ) { // return FileUtil.hasCabalExtension( file ); // } boolean isInSourceFolder( final IFile file ) { if( file == null || !file.isAccessible() ) { throw new IllegalArgumentException(); } return ResourceUtil.isInSourceFolder( file ); } public boolean isNeedSynchronize() { return needSynchronize; } public void setNeedSynchronize( final boolean needSynchronize ) { this.needSynchronize = needSynchronize; } }