Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (c) 2006, 2009 IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html Contributors: IBM Corporation - initial API and implementation /
 
 package org.eclipse.ant.internal.ui.console;
 
 import java.util.List;
 import java.util.Map;
 
 
 public class JavacMarkerCreator {
 
 	private final TextConsole fConsole;
 	private IProcess fProcess;
 	private static List fgFilesToBeCleanednew ArrayList();
 	private Map fFileToMarkerInfonew HashMap();
 	private final boolean fUseCustomMessage;
 
 	private class MarkerInfo {
 		
 		public int fLineNumber;
 		public int fOffset;
 		public Integer fType;
 
 		public void setLineNumber(int lineNumber) {
 			lineNumber;
 		}
 		public void setOffset(int offset) {
 			 = offset;
 		}
 		public void setType(Integer type) {
 			type;
 			
 		}
 	}
 	public JavacMarkerCreator(TextConsole consoleboolean useCustomMessage) {
 		 = console;
 		 = useCustomMessage;
 		if ( instanceof ProcessConsole) {
 		}
 	}
 
 	protected ISchedulingRule getMarkerRule(IResource resource) {
 	    ISchedulingRule rule = null;
 	    if (resource != null) {
 	        IResourceRuleFactory ruleFactory = ResourcesPlugin.getWorkspace().getRuleFactory();
 	        rule = ruleFactory.markerRule(resource);
 	    }
 	    return rule;
 	}
 
 	protected void run(ISchedulingRule ruleIWorkspaceRunnable wr) {
 		try {
 			ResourcesPlugin.getWorkspace().run(wrrule, 0, null);
 		} catch (CoreException e) {
 			AntUIPlugin.log(e.getStatus());
 		}			
 	}
 
 	protected void addFileToBeCleaned(IFile file) {
 	}
 	
 	protected void addMarker(IFile fileint lineNumberint offsetInteger type) {
 		MarkerInfo infonew MarkerInfo();
 		info.setLineNumber(lineNumber);
 		info.setOffset(offset);
 		info.setType(type);
 		List infos= (List.get(file);
 		if (infos == null) {
 			infosnew ArrayList();
			.put(fileinfos);
		}
		infos.add(info);
	}
	private void createMarkers(final IFile filefinal List infos) {
			public void run(IProgressMonitor monitorthrows CoreException {
				try {
					for (Iterator iter = infos.iterator(); iter.hasNext();) {
						MarkerInfo info = (MarkerInfoiter.next();
						Map attributesnew HashMap(3);
						attributes.put(.new Integer(info.fLineNumber));
						String messagegetMessage(info);
						attributes.put(.message);
						attributes.put(.info.fType);
						marker.setAttributes(attributes);
					}
catch (CoreException e) {
					AntUIPlugin.log(e.getStatus());
				}	
			}
		};
		run(getMarkerRule(file), wr);
	}
	protected String getMessage(MarkerInfo info) {
			try {
				IRegion match=adapter.find(info.fOffset"[javac] ----------"truefalsefalsefalse); //$NON-NLS-1$
				if (match != null) {
					matchadapter.find(match.getOffset(), "[javac]"falsefalsefalsefalse); //$NON-NLS-1$
					if (match != null) {
						int startmatch.getOffset() + match.getLength() + 1;
						IRegion lineInfodoc.getLineInformationOfOffset(start);
						messagedoc.get(startlineInfo.getOffset() - start + lineInfo.getLength());
					}
				}
catch (BadLocationException e) {
				AntUIPlugin.log(e);
			}
		}
		return message;
	}
	protected void finished(IProcess process) {
		if (process.equals()) {
				while (itr.hasNext()) {
					IFile file = (IFileitr.next();
					try {
catch (CoreException e) {
						AntUIPlugin.log(e.getStatus());
					}					
				}
			}
				//generate markers for all the warnings and errors
				while (files.hasNext()) {
					IFile file = (IFilefiles.next();
					List infos= (List.get(file);
					createMarkers(fileinfos);	
				}	
			}
		}
	}
New to GrepCode? Check out our FAQ X