private boolean nextTokenIs(String expectedNextToken) { if (!esonTokenizer.hasNext()) { return false; } String nextToken = esonTokenizer.peekNextToken(); return StringUtils.equals(nextToken, expectedNextToken); }
private String expectId(String idName) throws IllegalStateException { if (!esonTokenizer.hasNext()) { String errorMessage = (idName != null ? idName : "Id") + " expected, but end of ESON reached"; LOGGER.error(errorMessage); throw new IllegalStateException(errorMessage); } return esonTokenizer.nextToken(); }
private void expectEndOfData() throws IllegalStateException { if (esonTokenizer.hasNext()) { String errorMessage = "End of ESON expected, but not reached. Next token is \"" + esonTokenizer.nextToken() + "\""; LOGGER.error(errorMessage); throw new IllegalStateException(errorMessage); } }
/** Basically this method is the implementation of => of the Value rule */ private boolean nextIsNewObject() { if (!esonTokenizer.hasNext()) { return false; } String firstNextToken = esonTokenizer.peekNextToken(); String secondNextToken = esonTokenizer.peekSecondNextToken(); if (firstNextToken == null || secondNextToken == null) { return false; } return !isESONToken(firstNextToken) && secondNextToken.equals("{"); }
private String expectStringValue(String expectedStringName) throws IllegalStateException { if (!esonTokenizer.hasNext()) { String errorMessage = (expectedStringName != null ? expectedStringName : "Id") + " (string) expected, but end of ESON reached"; LOGGER.error(errorMessage); throw new IllegalStateException(errorMessage); } // ESON grammar says a string is either a wrapped between single quote or double quote String quote = expectOneOfToken("\"", "'"); String stringValue = esonTokenizer.nextToken(); expectToken(quote); return stringValue; }
private void expectToken(String token) throws IllegalStateException { String nextToken = esonTokenizer.nextToken(); if (!StringUtils.equals(nextToken, token)) { String errorMessage = "The token \"" + token + "\" was expected, but the next token was \"" + nextToken + "\""; LOGGER.error(errorMessage); throw new IllegalStateException(errorMessage); } }
private String expectOneOfToken(String... tokens) throws IllegalStateException { String nextToken = esonTokenizer.nextToken(); for (String token : tokens) { if (StringUtils.equals(nextToken, token)) { return token; } } String errorMessage = "None of these token were found: " + StringUtils.join(tokens, ", ") + ". The next token is \"" + nextToken + "\""; LOGGER.error(errorMessage); throw new IllegalStateException(errorMessage); }