// Path: org.cfeclipse.cfmledit.wizards.project/src/org/cfeclipse/cfmledit/ui/builder/ComponentBuilder.java
// public class ComponentBuilder extends IncrementalProjectBuilder {
// 
// 	class SampleDeltaVisitor implements IResourceDeltaVisitor {
// 		/*
// 		 * (non-Javadoc)
// 		 * 
// 		 * @see org.eclipse.core.resources.IResourceDeltaVisitor#visit(org.eclipse.core.resources.IResourceDelta)
// 		 */
// 		public boolean visit(IResourceDelta delta) throws CoreException {
// 			IResource resource = delta.getResource();
// 			switch (delta.getKind()) {
// 			case IResourceDelta.ADDED:
// 				// handle added resource
// 				checkXML(resource);
// 				break;
// 			case IResourceDelta.REMOVED:
// 				// handle removed resource
// 				break;
// 			case IResourceDelta.CHANGED:
// 				// handle changed resource
// 				checkXML(resource);
// 				break;
// 			}
// 			//return true to continue visiting children.
// 			return true;
// 		}
// 	}
// 
// 	class SampleResourceVisitor implements IResourceVisitor {
// 		public boolean visit(IResource resource) {
// 			checkXML(resource);
// 			//return true to continue visiting children.
// 			return true;
// 		}
// 	}
// 
// 	class XMLErrorHandler extends DefaultHandler {
// 		
// 		private IFile file;
// 
// 		public XMLErrorHandler(IFile file) {
// 			this.file = file;
// 		}
// 
// 		private void addMarker(SAXParseException e, int severity) {
// 			ComponentBuilder.this.addMarker(file, e.getMessage(), e
// 					.getLineNumber(), severity);
// 		}
// 
// 		public void error(SAXParseException exception) throws SAXException {
// 			addMarker(exception, IMarker.SEVERITY_ERROR);
// 		}
// 
// 		public void fatalError(SAXParseException exception) throws SAXException {
// 			addMarker(exception, IMarker.SEVERITY_ERROR);
// 		}
// 
// 		public void warning(SAXParseException exception) throws SAXException {
// 			addMarker(exception, IMarker.SEVERITY_WARNING);
// 		}
// 	}
// 
// 	public static final String BUILDER_ID = "org.cfeclipse.cfmledit.builders.component";
// 
// 	private static final String MARKER_TYPE = "org.cfeclipse.cfmledit.ui.wizards.project.xmlProblem";
// 
// 	private SAXParserFactory parserFactory;
// 
// 	private void addMarker(IFile file, String message, int lineNumber,
// 			int severity) {
// 		try {
// 			IMarker marker = file.createMarker(MARKER_TYPE);
// 			marker.setAttribute(IMarker.MESSAGE, message);
// 			marker.setAttribute(IMarker.SEVERITY, severity);
// 			if (lineNumber == -1) {
// 				lineNumber = 1;
// 			}
// 			marker.setAttribute(IMarker.LINE_NUMBER, lineNumber);
// 		} catch (CoreException e) {
// 		}
// 	}
// 
// 	/*
// 	 * (non-Javadoc)
// 	 * 
// 	 * @see org.eclipse.core.internal.events.InternalBuilder#build(int,
// 	 *      java.util.Map, org.eclipse.core.runtime.IProgressMonitor)
// 	 */
// 	protected IProject[] build(int kind, Map args, IProgressMonitor monitor)
// 			throws CoreException {
// 		if (kind == FULL_BUILD) {
// 			fullBuild(monitor);
// 		} else {
// 			IResourceDelta delta = getDelta(getProject());
// 			if (delta == null) {
// 				fullBuild(monitor);
// 			} else {
// 				incrementalBuild(delta, monitor);
// 			}
// 		}
// 		return null;
// 	}
// 
// 	void checkXML(IResource resource) {
// 		if (resource instanceof IFile && resource.getName().endsWith(".xml")) {
// 			IFile file = (IFile) resource;
// 			deleteMarkers(file);
// 			XMLErrorHandler reporter = new XMLErrorHandler(file);
// 			try {
// 				getParser().parse(file.getContents(), reporter);
// 			} catch (Exception e1) {
// 			}
// 		}
// 	}
// 
// 	private void deleteMarkers(IFile file) {
// 		try {
// 			file.deleteMarkers(MARKER_TYPE, false, IResource.DEPTH_ZERO);
// 		} catch (CoreException ce) {
// 		}
// 	}
// 
// 	protected void fullBuild(final IProgressMonitor monitor)
// 			throws CoreException {
// 		try {
// 			getProject().accept(new SampleResourceVisitor());
// 		} catch (CoreException e) {
// 		}
// 	}
// 
// 	private SAXParser getParser() throws ParserConfigurationException,
// 			SAXException {
// 		if (parserFactory == null) {
// 			parserFactory = SAXParserFactory.newInstance();
// 		}
// 		return parserFactory.newSAXParser();
// 	}
// 
// 	protected void incrementalBuild(IResourceDelta delta,
// 			IProgressMonitor monitor) throws CoreException {
// 		// the visitor does the work.
// 		delta.accept(new SampleDeltaVisitor());
// 	}
// }


import org.cfeclipse.cfmledit.ui.builder.ComponentBuilder;
import org.eclipse.core.resources.ICommand;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.core.resources.IProjectNature;
import org.eclipse.core.runtime.CoreException;
package org.cfeclipse.cfmledit.ui.nature;


public class Nature implements IProjectNature {

	/**
	 * ID of this project nature
	 */
	public static final String NATURE_ID = "org.cfeclipse.cfmledit.ui.nature";

	private IProject project;

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.core.resources.IProjectNature#configure()
	 */
	public void configure() throws CoreException {
		IProjectDescription desc = project.getDescription();
		ICommand[] commands = desc.getBuildSpec();

		for (int i = 0; i < commands.length; ++i) {
// Path: org.cfeclipse.cfmledit.wizards.project/src/org/cfeclipse/cfmledit/ui/builder/ComponentBuilder.java
// public class ComponentBuilder extends IncrementalProjectBuilder {
// 
// 	class SampleDeltaVisitor implements IResourceDeltaVisitor {
// 		/*
// 		 * (non-Javadoc)
// 		 * 
// 		 * @see org.eclipse.core.resources.IResourceDeltaVisitor#visit(org.eclipse.core.resources.IResourceDelta)
// 		 */
// 		public boolean visit(IResourceDelta delta) throws CoreException {
// 			IResource resource = delta.getResource();
// 			switch (delta.getKind()) {
// 			case IResourceDelta.ADDED:
// 				// handle added resource
// 				checkXML(resource);
// 				break;
// 			case IResourceDelta.REMOVED:
// 				// handle removed resource
// 				break;
// 			case IResourceDelta.CHANGED:
// 				// handle changed resource
// 				checkXML(resource);
// 				break;
// 			}
// 			//return true to continue visiting children.
// 			return true;
// 		}
// 	}
// 
// 	class SampleResourceVisitor implements IResourceVisitor {
// 		public boolean visit(IResource resource) {
// 			checkXML(resource);
// 			//return true to continue visiting children.
// 			return true;
// 		}
// 	}
// 
// 	class XMLErrorHandler extends DefaultHandler {
// 		
// 		private IFile file;
// 
// 		public XMLErrorHandler(IFile file) {
// 			this.file = file;
// 		}
// 
// 		private void addMarker(SAXParseException e, int severity) {
// 			ComponentBuilder.this.addMarker(file, e.getMessage(), e
// 					.getLineNumber(), severity);
// 		}
// 
// 		public void error(SAXParseException exception) throws SAXException {
// 			addMarker(exception, IMarker.SEVERITY_ERROR);
// 		}
// 
// 		public void fatalError(SAXParseException exception) throws SAXException {
// 			addMarker(exception, IMarker.SEVERITY_ERROR);
// 		}
// 
// 		public void warning(SAXParseException exception) throws SAXException {
// 			addMarker(exception, IMarker.SEVERITY_WARNING);
// 		}
// 	}
// 
// 	public static final String BUILDER_ID = "org.cfeclipse.cfmledit.builders.component";
// 
// 	private static final String MARKER_TYPE = "org.cfeclipse.cfmledit.ui.wizards.project.xmlProblem";
// 
// 	private SAXParserFactory parserFactory;
// 
// 	private void addMarker(IFile file, String message, int lineNumber,
// 			int severity) {
// 		try {
// 			IMarker marker = file.createMarker(MARKER_TYPE);
// 			marker.setAttribute(IMarker.MESSAGE, message);
// 			marker.setAttribute(IMarker.SEVERITY, severity);
// 			if (lineNumber == -1) {
// 				lineNumber = 1;
// 			}
// 			marker.setAttribute(IMarker.LINE_NUMBER, lineNumber);
// 		} catch (CoreException e) {
// 		}
// 	}
// 
// 	/*
// 	 * (non-Javadoc)
// 	 * 
// 	 * @see org.eclipse.core.internal.events.InternalBuilder#build(int,
// 	 *      java.util.Map, org.eclipse.core.runtime.IProgressMonitor)
// 	 */
// 	protected IProject[] build(int kind, Map args, IProgressMonitor monitor)
// 			throws CoreException {
// 		if (kind == FULL_BUILD) {
// 			fullBuild(monitor);
// 		} else {
// 			IResourceDelta delta = getDelta(getProject());
// 			if (delta == null) {
// 				fullBuild(monitor);
// 			} else {
// 				incrementalBuild(delta, monitor);
// 			}
// 		}
// 		return null;
// 	}
// 
// 	void checkXML(IResource resource) {
// 		if (resource instanceof IFile && resource.getName().endsWith(".xml")) {
// 			IFile file = (IFile) resource;
// 			deleteMarkers(file);
// 			XMLErrorHandler reporter = new XMLErrorHandler(file);
// 			try {
// 				getParser().parse(file.getContents(), reporter);
// 			} catch (Exception e1) {
// 			}
// 		}
// 	}
// 
// 	private void deleteMarkers(IFile file) {
// 		try {
// 			file.deleteMarkers(MARKER_TYPE, false, IResource.DEPTH_ZERO);
// 		} catch (CoreException ce) {
// 		}
// 	}
// 
// 	protected void fullBuild(final IProgressMonitor monitor)
// 			throws CoreException {
// 		try {
// 			getProject().accept(new SampleResourceVisitor());
// 		} catch (CoreException e) {
// 		}
// 	}
// 
// 	private SAXParser getParser() throws ParserConfigurationException,
// 			SAXException {
// 		if (parserFactory == null) {
// 			parserFactory = SAXParserFactory.newInstance();
// 		}
// 		return parserFactory.newSAXParser();
// 	}
// 
// 	protected void incrementalBuild(IResourceDelta delta,
// 			IProgressMonitor monitor) throws CoreException {
// 		// the visitor does the work.
// 		delta.accept(new SampleDeltaVisitor());
// 	}
// }


// Path: org.cfeclipse.cfmledit.wizards.project/src/org/cfeclipse/cfmledit/ui/nature/Nature.java
import org.cfeclipse.cfmledit.ui.builder.ComponentBuilder;
import org.eclipse.core.resources.ICommand;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.core.resources.IProjectNature;
import org.eclipse.core.runtime.CoreException;

package org.cfeclipse.cfmledit.ui.nature;


public class Nature implements IProjectNature {

	/**
	 * ID of this project nature
	 */
	public static final String NATURE_ID = "org.cfeclipse.cfmledit.ui.nature";

	private IProject project;

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.core.resources.IProjectNature#configure()
	 */
	public void configure() throws CoreException {
		IProjectDescription desc = project.getDescription();
		ICommand[] commands = desc.getBuildSpec();

		for (int i = 0; i < commands.length; ++i) {
			if (commands[i].getBuilderName().equals(ComponentBuilder.BUILDER_ID)) {