/* Copyright (C) 2009 Mobile Sorcery AB
This program is free software; you can redistribute it and/or modify it
under the terms of the Eclipse Public License v1.0.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the Eclipse Public License v1.0 for
more details.
You should have received a copy of the Eclipse Public License v1.0 along
with this program. It is also available at http://www.eclipse.org/legal/epl-v10.html
*/
/**
*
*/
package com.mobilesorcery.sdk.internal.builder;
import java.util.ArrayList;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceVisitor;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import com.mobilesorcery.sdk.core.MoSyncProject;
import com.mobilesorcery.sdk.internal.dependencies.DependencyManager;
public class MoSyncIconBuilderVisitor extends IncrementalBuilderVisitor {
class IconFileVisitor implements IResourceVisitor {
ArrayList<IResource> iconFiles = new ArrayList<IResource>();
public boolean visit(IResource resource) throws CoreException {
if (doesAffectBuild(resource)) {
iconFiles.add(resource);
}
return true;
}
}
public boolean doesAffectBuild(IResource resource) {
if (resource.getType() == IResource.FILE) {
return resource.getName().endsWith(MoSyncProject.ICON_FILE_EXTENSION) && super.doesAffectBuild(resource);
}
return false;
}
public void incrementalCompile(IProgressMonitor monitor, DependencyManager<IResource> dependencyManager) throws CoreException {
}
protected String getName() {
return "Icon Compiler";
}
public IResource[] getIconFiles() throws CoreException {
IconFileVisitor visitor = new IconFileVisitor();
project.accept(visitor);
return visitor.iconFiles.toArray(new IResource[0]);
}
}