[OLINGO-834] clean-up exceptions Signed-off-by: Christian Amend <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/6837fd76 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/6837fd76 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/6837fd76 Branch: refs/heads/OLINGO-832_StreamSerializerPoC Commit: 6837fd765152a23dc208546d32188e6cc34c3858 Parents: b881e9c Author: Klaus Straubinger <[email protected]> Authored: Wed Jan 13 16:15:44 2016 +0100 Committer: Christian Amend <[email protected]> Committed: Mon Jan 18 13:30:11 2016 +0100 ---------------------------------------------------------------------- .../core/uri/parser/ExpressionParser.java | 20 +++++++++---------- .../uri/parser/UriParserSemanticException.java | 21 +------------------- .../uri/validator/UriValidationException.java | 2 -- .../server-core-exceptions-i18n.properties | 15 -------------- 4 files changed, 11 insertions(+), 47 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/6837fd76/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/ExpressionParser.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/ExpressionParser.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/ExpressionParser.java index 6fa415f..ef7d6da 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/ExpressionParser.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/ExpressionParser.java @@ -560,9 +560,10 @@ public class ExpressionParser { } break; - default: - throw new UriParserSemanticException("Unkown method '" + methodKind.name() + "'", - UriParserSemanticException.MessageKeys.NOT_IMPLEMENTED, methodKind.name()); // TODO: better message + // Can have one or two parameters. These methods are handled elsewhere. + case CAST: + case ISOF: + break; } ParserHelper.requireNext(tokenizer, TokenKind.CLOSE); return parameters; @@ -1108,11 +1109,10 @@ public class ExpressionParser { private void checkType(final Expression expression, final EdmPrimitiveTypeKind... kinds) throws UriParserException { final EdmType type = getType(expression); if (!isType(type, kinds)) { - throw new UriParserSemanticException("Incompatible type.", - UriParserSemanticException.MessageKeys.UNKNOWN_TYPE, // TODO: better message - type == null ? - "" : - type.getFullQualifiedName().getFullQualifiedNameAsString()); + throw new UriParserSemanticException("Incompatible types.", + UriParserSemanticException.MessageKeys.TYPES_NOT_COMPATIBLE, + type == null ? "" : type.getFullQualifiedName().getFullQualifiedNameAsString(), + Arrays.deepToString(kinds)); } } @@ -1166,8 +1166,8 @@ public class ExpressionParser { return new EnumerationImpl(enumType, Arrays.asList(enumType.fromUriLiteral(primitiveValueLiteral).split(","))); } catch (final EdmPrimitiveTypeException e) { - // TODO: Better error message. - throw new UriParserSemanticException("Wrong enumeration value.", e, + // This part should not be reached, so a general error message key can be re-used. + throw new UriParserSemanticException("Wrong enumeration value '" + primitiveValueLiteral + "'.", e, UriParserSemanticException.MessageKeys.UNKNOWN_PART, primitiveValueLiteral); } } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/6837fd76/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParserSemanticException.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParserSemanticException.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParserSemanticException.java index 8f5aa67..423c875 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParserSemanticException.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriParserSemanticException.java @@ -27,8 +27,6 @@ public class UriParserSemanticException extends UriParserException { /** parameters: function-import name, function parameters */ FUNCTION_NOT_FOUND, /** parameter: resource part */ - RESOURCE_PART_ONLY_FOR_TYPED_PARTS, - /** parameter: resource part */ RESOURCE_PART_MUST_BE_PRECEDED_BY_STRUCTURAL_TYPE, /** parameter: property name */ PROPERTY_AFTER_COLLECTION, @@ -36,54 +34,37 @@ public class UriParserSemanticException extends UriParserException { PROPERTY_NOT_IN_TYPE, /** parameters: type name, property name */ EXPRESSION_PROPERTY_NOT_IN_TYPE, - /** parameter: property name */ - UNKNOWN_PROPERTY_TYPE, /** parameter: type filter */ INCOMPATIBLE_TYPE_FILTER, /** parameters: previous type filter, last type filter */ TYPE_FILTER_NOT_CHAINABLE, /** parameter: type filter */ PREVIOUS_PART_NOT_TYPED, - /** parameter: type */ - FUNCTION_PARAMETERS_EXPECTED, /** parameter: resource part */ UNKNOWN_PART, /** parameter: type */ UNKNOWN_TYPE, /** parameter: expression */ ONLY_FOR_TYPED_PARTS, - /** parameter: entity type name */ - UNKNOWN_ENTITY_TYPE, /** parameter: expression */ ONLY_FOR_COLLECTIONS, /** parameter: expression */ ONLY_FOR_ENTITY_TYPES, /** parameter: expression */ ONLY_FOR_STRUCTURAL_TYPES, - /** parameter: expression */ - ONLY_FOR_TYPED_PROPERTIES, /** parameter: value */ INVALID_KEY_VALUE, - PARAMETERS_LIST_ONLY_FOR_TYPED_PARTS, /** parameters: expected number, actual number */ WRONG_NUMBER_OF_KEY_PROPERTIES, - NOT_ENOUGH_REFERENTIAL_CONSTRAINTS, KEY_NOT_ALLOWED, - RESOURCE_PATH_NOT_TYPED, - ONLY_SIMPLE_AND_COMPLEX_PROPERTIES_IN_SELECT, - COMPLEX_PROPERTY_OF_ENTITY_TYPE_EXPECTED, - NOT_FOR_ENTITY_TYPE, - PREVIOUS_PART_TYPED, /** parameter: resource_name */ RESOURCE_NOT_FOUND, /** parameter: not implemented part */ NOT_IMPLEMENTED, - /** parameter: namespace **/ + /** parameter: namespace */ NAMESPACE_NOT_ALLOWED_AT_FIRST_ELEMENT, /** parameter: complex parameter value */ COMPLEX_PARAMETER_IN_RESOURCE_PATH, - /** parameter: function import name */ - FUNCTION_IMPORT_NOT_ALLOWED, /** parameters: left type, right type */ TYPES_NOT_COMPATIBLE; http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/6837fd76/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/validator/UriValidationException.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/validator/UriValidationException.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/validator/UriValidationException.java index 2d8f842..1656150 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/validator/UriValidationException.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/validator/UriValidationException.java @@ -49,8 +49,6 @@ public class UriValidationException extends ODataLibraryException { DOUBLE_KEY_PROPERTY, /** parameter: untyped segment name */ LAST_SEGMENT_NOT_TYPED, - /** parameter: untyped segment name */ - SECOND_LAST_SEGMENT_NOT_TYPED, /** parameter: unallowed kind before $value */ UNALLOWED_KIND_BEFORE_VALUE, /** parameter: unallowed kind before $count */ http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/6837fd76/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties ---------------------------------------------------------------------- diff --git a/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties b/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties index e178fed..6bbad3b 100644 --- a/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties +++ b/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties @@ -50,41 +50,27 @@ SearchTokenizerException.NOT_FINISHED_QUERY=Search query end in an invalid state SearchTokenizerException.INVALID_TOKEN_STATE=Token '%1$s' is in an invalid state. SearchTokenizerException.ALREADY_FINISHED=Token '%1$s' is already in finished state. - UriParserSemanticException.FUNCTION_NOT_FOUND=The function import '%1$s' has no function with parameters '%2$s'. -UriParserSemanticException.RESOURCE_PART_ONLY_FOR_TYPED_PARTS='%1$s' is only allowed for typed parts. UriParserSemanticException.RESOURCE_PART_MUST_BE_PRECEDED_BY_STRUCTURAL_TYPE=The resource part '%1$s' must be preceded by a structural type. UriParserSemanticException.PROPERTY_AFTER_COLLECTION=The property '%1$s' must not follow a collection. UriParserSemanticException.PROPERTY_NOT_IN_TYPE=The type '%1$s' has no property '%2$s'. UriParserSemanticException.EXPRESSION_PROPERTY_NOT_IN_TYPE=The property '%2$s', used in a query expression, is not defined in type '%1$s'. -UriParserSemanticException.UNKNOWN_PROPERTY_TYPE=The type of the property '%1$s' is unknown. UriParserSemanticException.INCOMPATIBLE_TYPE_FILTER=The type filter '%1$s' is incompatible. UriParserSemanticException.TYPE_FILTER_NOT_CHAINABLE=The type filter '%2$s' can not be chained with '%1$s'. UriParserSemanticException.PREVIOUS_PART_NOT_TYPED=The previous part of the type filter '%1$s' is not typed. -UriParserSemanticException.FUNCTION_PARAMETERS_EXPECTED=Function parameters expected for type '%1$s'. UriParserSemanticException.UNKNOWN_PART=The part '%1$s' is not defined. UriParserSemanticException.ONLY_FOR_TYPED_PARTS='%1$s' is only allowed for typed parts. -UriParserSemanticException.UNKNOWN_ENTITY_TYPE=The entity type '%1$s' is not defined. UriParserSemanticException.UNKNOWN_TYPE=The type of the type cast '%1$s' is not defined. UriParserSemanticException.ONLY_FOR_COLLECTIONS='%1$s' is only allowed for collections. UriParserSemanticException.ONLY_FOR_ENTITY_TYPES='%1$s' is only allowed for entity types. UriParserSemanticException.ONLY_FOR_STRUCTURAL_TYPES='%1$s' is only allowed for structural types. -UriParserSemanticException.ONLY_FOR_TYPED_PROPERTIES='%1$s' is only allowed for typed properties. UriParserSemanticException.INVALID_KEY_VALUE=The key value '%1$s' is invalid. -UriParserSemanticException.PARAMETERS_LIST_ONLY_FOR_TYPED_PARTS=A list of parameters is only allowed for typed parts. UriParserSemanticException.WRONG_NUMBER_OF_KEY_PROPERTIES=There are %2$s key properties instead of the expected %1$s. -UriParserSemanticException.NOT_ENOUGH_REFERENTIAL_CONSTRAINTS=There are not enough referential constraints. UriParserSemanticException.KEY_NOT_ALLOWED=A key is not allowed. -UriParserSemanticException.RESOURCE_PATH_NOT_TYPED=The resource path is not typed. -UriParserSemanticException.ONLY_SIMPLE_AND_COMPLEX_PROPERTIES_IN_SELECT=Only simple and complex properties are allowed in selection. -UriParserSemanticException.COMPLEX_PROPERTY_OF_ENTITY_TYPE_EXPECTED=A complex property of an entity type is expected. -UriParserSemanticException.NOT_FOR_ENTITY_TYPE=Not allowed for entity type. -UriParserSemanticException.PREVIOUS_PART_TYPED=The previous part is typed. UriParserSemanticException.RESOURCE_NOT_FOUND=Cannot find EntitySet, Singleton, ActionImport or FunctionImport with name '%1$s'. UriParserSemanticException.NOT_IMPLEMENTED='%1$s' is not implemented! UriParserSemanticException.NAMESPACE_NOT_ALLOWED_AT_FIRST_ELEMENT=Namespace is not allowed for Entity Sets, Singletons, Action Imports and Function Imports; found '%1$s'. UriParserSemanticException.COMPLEX_PARAMETER_IN_RESOURCE_PATH=Complex parameters must not appear in resource path segments; found: '%1$s'. -UriParserSemanticException.FUNCTION_IMPORT_NOT_ALLOWED=Function Imports are not allowed in $filter or $orderby. Found: '%1$s'. UriParserSemanticException.TYPES_NOT_COMPATIBLE=The types '%1$s' and '%2$s' are not compatible. UriValidationException.UNSUPPORTED_QUERY_OPTION=The query option '%1$s' is not supported. @@ -99,7 +85,6 @@ UriValidationException.SYSTEM_QUERY_OPTION_NOT_ALLOWED_FOR_HTTP_METHOD=The syste UriValidationException.INVALID_KEY_PROPERTY=The key property '%1$s' is invalid. UriValidationException.DOUBLE_KEY_PROPERTY=The key property '%1$s' has been specified twice. UriValidationException.LAST_SEGMENT_NOT_TYPED=The last segment '%1$s' is not typed. -UriValidationException.SECOND_LAST_SEGMENT_NOT_TYPED=The second last segment '%1$s' is not typed. UriValidationException.UNALLOWED_KIND_BEFORE_VALUE=The kind '%1$s' is not allowed before '$value'. UriValidationException.UNALLOWED_KIND_BEFORE_COUNT=The kind '%1$s' is not allowed before '$count'. UriValidationException.UNALLOWED_RESOURCE_PATH=The resource part '%1$s' is not allowed.
