@Override public String getName() { return kind.toString(); }
@Override public String getName() { return kind.toString(); }
/** * Extract format option from either <code>uriInfo</code> (if not <code>NULL</code>) * or query from <code>request</code> (if not <code>NULL</code>). * If both options are <code>NULL</code>, <code>NULL</code> is returned. * * @param request request which is checked * @param uriInfo uriInfo which is checked * @return the evaluated format option or <code>NULL</code>. */ private FormatOption getFormatOption(final ODataRequest request, final UriInfo uriInfo) { if(uriInfo == null) { String query = request.getRawQueryPath(); if(query == null) { return null; } final String formatOption = SystemQueryOptionKind.FORMAT.toString(); int index = query.indexOf(formatOption); int endIndex = query.indexOf('&', index); if(endIndex == -1) { endIndex = query.length(); } String format = ""; if (index + formatOption.length() < endIndex) { format = query.substring(index + formatOption.length(), endIndex); } return new FormatOptionImpl().setFormat(format); } return uriInfo.getFormatOption(); }
/** * Extract format option from either <code>uriInfo</code> (if not <code>NULL</code>) * or query from <code>request</code> (if not <code>NULL</code>). * If both options are <code>NULL</code>, <code>NULL</code> is returned. * * @param request request which is checked * @param uriInfo uriInfo which is checked * @return the evaluated format option or <code>NULL</code>. */ private FormatOption getFormatOption(final ODataRequest request, final UriInfo uriInfo) { if(uriInfo == null) { String query = request.getRawQueryPath(); if(query == null) { return null; } final String formatOption = SystemQueryOptionKind.FORMAT.toString(); int index = query.indexOf(formatOption); int endIndex = query.indexOf('&', index); if(endIndex == -1) { endIndex = query.length(); } String format = ""; if (index + formatOption.length() < endIndex) { format = query.substring(index + formatOption.length(), endIndex); } return new FormatOptionImpl().setFormat(format); } return uriInfo.getFormatOption(); }
private void validateReadQueryOptions(final UriType uriType, final List<SystemQueryOption> options) throws UriValidationException { for (final SystemQueryOption option : options) { final SystemQueryOptionKind kind = option.getKind(); if (OPTION_INDEX.containsKey(kind)) { final int columnIndex = OPTION_INDEX.get(kind); if (!decisionMatrix[uriType.getIndex()][columnIndex]) { throw new UriValidationException("System query option not allowed: " + option.getName(), UriValidationException.MessageKeys.SYSTEM_QUERY_OPTION_NOT_ALLOWED, option.getName()); } } else { throw new UriValidationException("Unsupported option: " + kind, UriValidationException.MessageKeys.UNSUPPORTED_QUERY_OPTION, kind.toString()); } } }
private URI buildNextLink(final JPAODataPage page) throws ODataJPAProcessorException { if (page != null && page.getSkiptoken() != null) { try { if (page.getSkiptoken() instanceof String) return new URI(Util.determineTargetEntitySet(uriInfo.getUriResourceParts()).getName() + "?" + SystemQueryOptionKind.SKIPTOKEN.toString() + "='" + page.getSkiptoken() + "'"); else return new URI(Util.determineTargetEntitySet(uriInfo.getUriResourceParts()).getName() + "?" + SystemQueryOptionKind.SKIPTOKEN.toString() + "=" + page.getSkiptoken().toString()); } catch (URISyntaxException e) { throw new ODataJPAProcessorException(ODATA_MAXPAGESIZE_NOT_A_NUMBER, HttpStatusCode.INTERNAL_SERVER_ERROR, e); } } return null; }
private void validateReadQueryOptions(final UriType uriType, final List<SystemQueryOption> options) throws UriValidationException { for (final SystemQueryOption option : options) { final SystemQueryOptionKind kind = option.getKind(); if (OPTION_INDEX.containsKey(kind)) { final int columnIndex = OPTION_INDEX.get(kind); if (!decisionMatrix[uriType.getIndex()][columnIndex]) { throw new UriValidationException("System query option not allowed: " + option.getName(), UriValidationException.MessageKeys.SYSTEM_QUERY_OPTION_NOT_ALLOWED, option.getName()); } } else { throw new UriValidationException("Unsupported option: " + kind, UriValidationException.MessageKeys.UNSUPPORTED_QUERY_OPTION, kind.toString()); } } }
private LevelsExpandOption parseLevels(UriTokenizer tokenizer) throws UriParserException { final LevelsOptionImpl option = new LevelsOptionImpl(); if (tokenizer.next(TokenKind.MAX)) { option.setText(tokenizer.getText()); option.setMax(); } else { ParserHelper.requireNext(tokenizer, TokenKind.IntegerValue); option.setText(tokenizer.getText()); option.setValue( ParserHelper.parseNonNegativeInteger(SystemQueryOptionKind.LEVELS.toString(), tokenizer.getText(), false)); } return option; } }
private LevelsExpandOption parseLevels(UriTokenizer tokenizer) throws UriParserException { final LevelsOptionImpl option = new LevelsOptionImpl(); if (tokenizer.next(TokenKind.MAX)) { option.setText(tokenizer.getText()); option.setMax(); } else { ParserHelper.requireNext(tokenizer, TokenKind.IntegerValue); option.setText(tokenizer.getText()); option.setValue( ParserHelper.parseNonNegativeInteger(SystemQueryOptionKind.LEVELS.toString(), tokenizer.getText(), false)); } return option; } }
ParserHelper.requireNext(tokenizer, TokenKind.EQ); ParserHelper.requireNext(tokenizer, TokenKind.IntegerValue); final int value = ParserHelper.parseNonNegativeInteger(SystemQueryOptionKind.SKIP.toString(), tokenizer.getText(), true); SkipOptionImpl skipOption = new SkipOptionImpl(); ParserHelper.requireNext(tokenizer, TokenKind.EQ); ParserHelper.requireNext(tokenizer, TokenKind.IntegerValue); final int value = ParserHelper.parseNonNegativeInteger(SystemQueryOptionKind.TOP.toString(), tokenizer.getText(), true); TopOptionImpl topOption = new TopOptionImpl();
ParserHelper.requireNext(tokenizer, TokenKind.EQ); ParserHelper.requireNext(tokenizer, TokenKind.IntegerValue); final int value = ParserHelper.parseNonNegativeInteger(SystemQueryOptionKind.SKIP.toString(), tokenizer.getText(), true); SkipOptionImpl skipOption = new SkipOptionImpl(); ParserHelper.requireNext(tokenizer, TokenKind.EQ); ParserHelper.requireNext(tokenizer, TokenKind.IntegerValue); final int value = ParserHelper.parseNonNegativeInteger(SystemQueryOptionKind.TOP.toString(), tokenizer.getText(), true); TopOptionImpl topOption = new TopOptionImpl();