/******************************************************************************* * Copyright 2013 SAP AG * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ package com.sap.core.odata.core.uri.expression; import com.sap.core.odata.api.edm.EdmException; import com.sap.core.odata.api.exception.MessageReference; import com.sap.core.odata.api.exception.ODataMessageException; import com.sap.core.odata.api.uri.expression.CommonExpression; /** * Internal error in the expression parser. * @author SAP AG */ public class ExpressionParserInternalError extends ODataMessageException { static final long serialVersionUID = 77L; public static final MessageReference ERROR_PARSING_METHOD = createMessageReference(ExpressionParserInternalError.class, "ERROR_PARSING_METHOD"); public static final MessageReference ERROR_PARSING_PARENTHESIS = createMessageReference(ExpressionParserInternalError.class, "ERROR_PARSING_PARENTHESIS"); public static final MessageReference ERROR_ACCESSING_EDM = createMessageReference(ExpressionParserInternalError.class, "ERROR_ACCESSING_EDM"); public static final MessageReference INVALID_TYPE_COUNT = createMessageReference(ExpressionParserInternalError.class, "INVALID_TYPE_COUNT");; public static final MessageReference INVALID_TOKEN_AT = createMessageReference(ExpressionParserInternalError.class, "INVALID_TOKEN_AT"); public static final MessageReference INVALID_TOKENKIND_AT = createMessageReference(ExpressionParserInternalError.class, "INVALID_TOKENKIND_AT"); CommonExpression parenthesisExpression = null; public ExpressionParserInternalError(final MessageReference messageReference) { super(messageReference); } public ExpressionParserInternalError(final MessageReference messageReference, final Throwable cause) { super(messageReference, cause); } public ExpressionParserInternalError(final MessageReference messageReference, final TokenizerExpectError cause) { super(messageReference, cause); } public ExpressionParserInternalError(final MessageReference messageReference, final EdmException cause) { super(messageReference, cause); } public ExpressionParserInternalError setExpression(final CommonExpression parenthesisExpression) { this.parenthesisExpression = parenthesisExpression; return this; } public static ExpressionParserInternalError createERROR_PARSING_METHOD(final TokenizerExpectError cause) { return new ExpressionParserInternalError(ERROR_PARSING_METHOD, cause); } public static ExpressionParserInternalError createERROR_PARSING_PARENTHESIS(final TokenizerExpectError cause) { return new ExpressionParserInternalError(ERROR_PARSING_PARENTHESIS, cause); } public static ExpressionParserInternalError createERROR_PARSING_PARENTHESIS(final CommonExpression parenthesisExpression, final TokenizerExpectError cause) { return new ExpressionParserInternalError(ERROR_PARSING_PARENTHESIS, cause).setExpression(parenthesisExpression); } public static ExpressionParserInternalError createERROR_ACCESSING_EDM(final EdmException cause) { return new ExpressionParserInternalError(ERROR_ACCESSING_EDM, cause); } public static ExpressionParserInternalError createCOMMON() { return new ExpressionParserInternalError(COMMON); } public static ExpressionParserInternalError createCOMMON(final Throwable e) { return new ExpressionParserInternalError(COMMON, e); } public static ExpressionParserInternalError createINVALID_TYPE_COUNT() { return new ExpressionParserInternalError(INVALID_TYPE_COUNT); } public static ExpressionParserInternalError createERROR_ACCESSING_EDM() { return new ExpressionParserInternalError(ERROR_ACCESSING_EDM); } public static ExpressionParserInternalError createINVALID_TOKEN_AT(final String expectedToken, final Token actualToken) { MessageReference msgRef = ExpressionParserInternalError.INVALID_TOKEN_AT.create(); msgRef.addContent(expectedToken); msgRef.addContent(actualToken.getUriLiteral()); msgRef.addContent(actualToken.getPosition()); return new ExpressionParserInternalError(msgRef); } public static ExpressionParserInternalError createINVALID_TOKENKIND_AT(final TokenKind expectedTokenKind, final Token actualToken) { MessageReference msgRef = ExpressionParserInternalError.INVALID_TOKEN_AT.create(); msgRef.addContent(expectedTokenKind.toString()); msgRef.addContent(actualToken.getKind().toString()); msgRef.addContent(actualToken.getUriLiteral()); msgRef.addContent(actualToken.getPosition()); return new ExpressionParserInternalError(msgRef); } public static ExpressionParserInternalError createNO_TOKEN_AVAILABLE(final String expectedToken) { MessageReference msgRef = ExpressionParserInternalError.INVALID_TOKEN_AT.create(); msgRef.addContent(expectedToken); return new ExpressionParserInternalError(msgRef); } }