2 * Copyright (c) 2003-2004 Christopher Lenz and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Common Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/cpl-v10.html
9 * Christopher Lenz - initial API and implementation
11 * $Id: AbstractProblemReporter.java,v 1.1 2004-09-02 18:07:13 jsurfer Exp $
14 package net.sourceforge.phpeclipse.css.core.internal.parser;
16 import net.sourceforge.phpeclipse.css.core.internal.CssCoreMessages;
17 import net.sourceforge.phpeclipse.css.core.parser.IProblem;
18 import net.sourceforge.phpeclipse.css.core.parser.IProblemCollector;
19 import net.sourceforge.phpeclipse.css.core.parser.IProblemReporter;
21 import org.eclipse.jface.text.BadLocationException;
22 import org.eclipse.jface.text.IDocument;
23 import org.eclipse.jface.text.IRegion;
25 public abstract class AbstractProblemReporter implements IProblemReporter {
27 // Instance Variables ------------------------------------------------------
29 protected IDocument document;
31 protected IProblemCollector problemCollector = new IProblemCollector() {
32 public void addProblem(IProblem problem) {
37 // IProblemReporter Implementation -----------------------------------------
40 * @see IProblemReporter#setProblemCollector(IProblemCollector)
42 public void setProblemCollector(IProblemCollector problemCollector) {
43 this.problemCollector = problemCollector;
46 // Protected Methods -------------------------------------------------------
48 protected final IProblem createError(String id, IRegion region) {
49 return createError(id, new String[0], region);
52 protected final IProblem createError(String id, String arg,
54 return createError(id, new String[] {arg}, region);
57 protected final IProblem createError(String id, String args[],
59 return createProblem(id, args, region, true);
62 protected final IProblem createWarning(String id, IRegion region) {
63 return createWarning(id, new String[0], region);
66 protected final IProblem createWarning(String id, String arg,
68 return createWarning(id, new String[] {arg}, region);
71 protected final IProblem createWarning(String id, String args[],
73 return createProblem(id, args, region, false);
76 protected final IProblem reportError(String id, IRegion region) {
77 return reportProblem(createError(id, region));
80 protected final IProblem reportError(String id, String arg,
82 return reportProblem(createError(id, arg, region));
85 protected final IProblem reportError(String id, String args[],
87 return reportProblem(createError(id, args, region));
90 protected final IProblem reportWarning(String id, IRegion region) {
91 return reportProblem(createWarning(id, region));
94 protected final IProblem reportWarning(String id, String arg,
96 return reportProblem(createWarning(id, arg, region));
99 protected final IProblem reportWarning(String id, String args[],
101 return reportProblem(createWarning(id, args, region));
104 protected final IProblem reportProblem(IProblem problem) {
105 problemCollector.addProblem(problem);
109 protected final void setDocument(IDocument document) {
110 this.document = document;
113 // Private Methods ---------------------------------------------------------
115 private IProblem createProblem(String id, String args[],
116 IRegion region, boolean error) {
117 String message = CssCoreMessages.getString(
118 "CssParser.problem." + id, args); //$NON-NLS-1$
119 int offset = region.getOffset();
122 lineNumber = document.getLineOfOffset(offset);
123 } catch (BadLocationException e) {
126 return new DefaultProblem(id, message, null, offset,
127 offset + region.getLength(), lineNumber, error);