From 7b9acc4aae09f8c25bc21b0c165cb1d2f3f2fb10 Mon Sep 17 00:00:00 2001 From: Alena Laskavaia Date: Thu, 22 Jul 2010 02:28:12 +0000 Subject: [PATCH] location should support placing markers on any resource not only file --- .../.settings/.api_filters | 17 +++++++++++ .../core/model/AbstractProblemLocation.java | 27 +++++++++++++++-- .../core/model/CodanProblemLocation.java | 29 ++++++++++++++++++- 3 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 codan/org.eclipse.cdt.codan.core/.settings/.api_filters diff --git a/codan/org.eclipse.cdt.codan.core/.settings/.api_filters b/codan/org.eclipse.cdt.codan.core/.settings/.api_filters new file mode 100644 index 00000000000..e6461f9c1df --- /dev/null +++ b/codan/org.eclipse.cdt.codan.core/.settings/.api_filters @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/AbstractProblemLocation.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/AbstractProblemLocation.java index c2bcd2a9b2f..7ce453f8dc0 100644 --- a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/AbstractProblemLocation.java +++ b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/AbstractProblemLocation.java @@ -11,6 +11,7 @@ package org.eclipse.cdt.codan.core.model; import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IResource; /** * Abstract Implementation of IProblemLocation @@ -23,13 +24,20 @@ import org.eclipse.core.resources.IFile; *

*/ public abstract class AbstractProblemLocation implements IProblemLocation { - protected IFile file; + protected IResource file; protected int line; protected int posStart; protected int posEnd; protected Object extra; protected AbstractProblemLocation(IFile file, int line) { + this((IResource) file, line); + } + + /** + * @since 1.1 + */ + protected AbstractProblemLocation(IResource file, int line) { this.file = file; this.line = line; this.posStart = -1; @@ -37,6 +45,13 @@ public abstract class AbstractProblemLocation implements IProblemLocation { } protected AbstractProblemLocation(IFile file, int startChar, int endChar) { + this((IResource) file, startChar, endChar); + } + + /** + * @since 1.1 + */ + protected AbstractProblemLocation(IResource file, int startChar, int endChar) { this.file = file; this.line = -1; this.posStart = startChar; @@ -66,7 +81,15 @@ public abstract class AbstractProblemLocation implements IProblemLocation { * * @see org.eclipse.cdt.codan.core.model.IProblemLocation#getFile() */ - public IFile getFile() { + public IResource getFile() { + return file; + } + + /** + * @return resource for which marker is created + * @since 1.1 + */ + public IResource getResource() { return file; } diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/model/CodanProblemLocation.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/model/CodanProblemLocation.java index ca6bd02fa49..6dcbca5449d 100644 --- a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/model/CodanProblemLocation.java +++ b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/model/CodanProblemLocation.java @@ -12,22 +12,49 @@ package org.eclipse.cdt.codan.internal.core.model; import org.eclipse.cdt.codan.core.model.AbstractProblemLocation; import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IResource; /** * Codan Problem Location, so far same as abstract class * */ public class CodanProblemLocation extends AbstractProblemLocation { + /** + * @param file - resource + * @param startChar - start chart, absolute file offset starts with 0 + * @param endChar - end char, absolute file offset, exclusive + * @param line - line number + */ + public CodanProblemLocation(IResource file, int startChar, int endChar, + int line) { + super(file, startChar, endChar); + this.line = line; + } + + /** + * @deprecated use {@link #CodanProblemLocation(IResource, int, int, int)} + * otherwise no line number will be shown + * @param file + * @param startChar + * @param endChar + */ + @Deprecated public CodanProblemLocation(IFile file, int startChar, int endChar) { super(file, startChar, endChar); } + /** + * @param file - resource + * @param startChar - start chart, absolute file offset starts with 0 + * @param endChar - end char, absolute file offset, exclusive + * @param line - line number + */ public CodanProblemLocation(IFile file, int startChar, int endChar, int line) { super(file, startChar, endChar); this.line = line; } - protected CodanProblemLocation(IFile file, int line) { + protected CodanProblemLocation(IResource file, int line) { super(file, line); } }