001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017
018 package org.apache.commons.jci.compilers;
019
020 import org.apache.commons.jci.problems.CompilationProblem;
021 import org.eclipse.jdt.core.compiler.IProblem;
022
023 /**
024 * Wrapping an Eclipse compiler problem
025 *
026 * @author tcurdt
027 */
028 public final class EclipseCompilationProblem implements CompilationProblem {
029
030 private final IProblem problem;
031
032 public EclipseCompilationProblem(final IProblem pProblem) {
033 problem = pProblem;
034 }
035
036 public boolean isError() {
037 return problem.isError();
038 }
039
040 public String getFileName() {
041 return new String(problem.getOriginatingFileName());
042 }
043
044 public int getStartLine() {
045 return problem.getSourceLineNumber();
046 }
047
048 public int getStartColumn() {
049 return problem.getSourceStart();
050 }
051
052 public int getEndLine() {
053 return getStartLine();
054 }
055
056 public int getEndColumn() {
057 return problem.getSourceEnd();
058 }
059
060 public String getMessage() {
061 return problem.getMessage();
062 }
063
064 @Override
065 public String toString() {
066 final StringBuilder sb = new StringBuilder();
067 sb.append(getFileName()).append(" (");
068 sb.append(getStartLine());
069 sb.append(":");
070 sb.append(getStartColumn());
071 sb.append(") : ");
072 sb.append(getMessage());
073 return sb.toString();
074 }
075
076 public int getId() {
077 return problem.getID();
078 }
079
080 }