001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041:
042: package org.netbeans.modules.gsf.api;
043:
044: import org.openide.filesystems.FileObject;
045:
046: /**
047: * This represents an error registered for the current java source,
048: * possibly with associated fix proposals.
049: *
050: * @todo Add a getArgs() method etc. such that error messages can be parameterized; see javax.tools.DiagnosticMessage
051: *
052: * @author Tor Norbye
053: */
054: public interface Error {
055: /**
056: * Provide a short user-visible (and therefore localized) description of this error
057: */
058: String getDisplayName();
059:
060: /**
061: * Provide a full sentence description of this item, suitable for display in a tooltip
062: * for example
063: */
064: String getDescription();
065:
066: /**
067: * Return a unique id/key for this error, such as "compiler.err.abstract.cant.be.instantiated".
068: * This key is used for error hints providers.
069: */
070: String getKey();
071:
072: ///**
073: // * Get the fixes associated with this error
074: // */
075: //Collection<Fix> getFixes();
076: //
077: ///**
078: // * Register a fix proposal for this error
079: // */
080: //void addFix(Fix fix);
081:
082: /**
083: * Get the file object associated with this error, if any
084: */
085: FileObject getFile();
086:
087: /**
088: * Get the position of the error in the parsing input source (in other words,
089: * this is the AST-based offset and may need translation to obtain the document
090: * offset in documents with an embedding model.)
091: */
092: int getStartPosition();
093:
094: /**
095: * Get the end offset of the error in the parsing input source (in other words,
096: * this is the AST-based offset and may need translation to obtain the document
097: * offset in documents with an embedding model.).
098: *
099: * @return The end position, or -1 if unknown.
100: */
101: int getEndPosition();
102:
103: /**
104: * Get the severity of this error
105: */
106: Severity getSeverity();
107:
108: /**
109: * Return optional parameters for this message. The parameters may
110: * provide the specific unknown symbol name for an unknown symbol error,
111: * etc.
112: */
113: Object[] getParameters();
114:
115: /**
116: * Set optional parameters for this message.
117: *
118: * @see #getParameters
119: *
120: * @param parameters The array of parameters
121: */
122: void setParameters(Object[] parameters);
123: }
|