/******************************************************************************* * Copyright (c) 2000, 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.che.ide.ext.java.jdt.internal.compiler; import org.eclipse.che.ide.ext.java.jdt.core.compiler.CategorizedProblem; /* * Factory used from inside the compiler to build the actual problems * which are handed back in the compilation result. * * This allows sharing the internal problem representation with the environment. * * Note: The factory is responsible for computing and storing a localized error message. */ public interface IProblemFactory { CategorizedProblem createProblem(char[] originatingFileName, int problemId, String[] problemArguments, String[] messageArguments, // shorter versions of the problemArguments int severity, int startPosition, int endPosition, int lineNumber, int columnNumber); /** * Answer a new IProblem created according to the parameters values. * * @param originatingFileName * the name of the file from which the problem is originated * @param problemId * the problem id * @param problemArguments * the fully qualified arguments recorded inside the problem * @param elaborationId * the message elaboration id (0 for problems that have no message elaboration) * @param messageArguments * the arguments needed to set the error message (shorter names than problemArguments ones) * @param severity * the severity of the problem * @param startPosition * the start position of the problem * @param endPosition * the end position of the problem * @param lineNumber * the line on which the problem occurred * @return a new IProblem created according to the parameters values. */ CategorizedProblem createProblem(char[] originatingFileName, int problemId, String[] problemArguments, int elaborationId, String[] messageArguments, // shorter versions of the problemArguments int severity, int startPosition, int endPosition, int lineNumber, int columnNumber); String getLocalizedMessage(int problemId, String[] messageArguments); /** * Inject the supplied message arguments into a localized template elaborated from the supplied problem id and an optional * elaboration id and return the resulting message. The arguments number should match the highest placeholder index in the * template. When an elaboration id is used, the template matching that elaboration id replaces '{0}' into the template * matching the problem id before the message arguments are injected. * * @param problemId * the problem id taken from {@link org.eclipse.che.ide.ext.java.jdt.core.compiler.IProblem} constants * @param elaborationId * 0 if the considered problem has no elaboration, a valid elaboration id else * @param messageArguments * the arguments to inject into the template * @return a localized message elaborated from the supplied problem id, elaboration id and message parameters */ String getLocalizedMessage(int problemId, int elaborationId, String[] messageArguments); }