diff --git a/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/JSONArray.java b/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/JSONArray.java index 9550204..de153e1 100644 --- a/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/JSONArray.java +++ b/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/JSONArray.java @@ -48,7 +48,6 @@ import java.util.Iterator; * @author FangYidong */ public class JSONArray extends ArrayList implements JSONAware, JSONStreamAware { - private static final long serialVersionUID = 3957988303675231981L; /** * Constructs an empty JSONArray. diff --git a/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/JSONObject.java b/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/JSONObject.java index f0b7c03..7b3c621 100644 --- a/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/JSONObject.java +++ b/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/JSONObject.java @@ -49,8 +49,6 @@ import java.util.Map; */ public class JSONObject extends LinkedHashMap implements JSONAware, JSONStreamAware { - private static final long serialVersionUID = -503443796854799292L; - public JSONObject() { super(); } diff --git a/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/parser/ContentHandler.java b/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/parser/ContentHandler.java deleted file mode 100644 index a26caff..0000000 --- a/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/parser/ContentHandler.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Copyright (C) 2019 Haowei Wen and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -/* - * Copyright 2014 FangYidong - * - * 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 moe.yushi.authlibinjector.internal.org.json.simple.parser; - -import java.io.IOException; - -/** - * A simplified and stoppable SAX-like content handler for stream processing of JSON text. - * - * @see org.xml.sax.ContentHandler - * @see moe.yushi.authlibinjector.internal.org.json.simple.parser.JSONParser#parse(java.io.Reader, ContentHandler, boolean) - * - * @author FangYidong - */ -public interface ContentHandler { - /** - * Receive notification of the beginning of JSON processing. - * The parser will invoke this method only once. - * - * @throws ParseException - * - JSONParser will stop and throw the same exception to the caller when receiving this exception. - */ - void startJSON() throws ParseException, IOException; - - /** - * Receive notification of the end of JSON processing. - * - * @throws ParseException - */ - void endJSON() throws ParseException, IOException; - - /** - * Receive notification of the beginning of a JSON object. - * - * @return false if the handler wants to stop parsing after return. - * @throws ParseException - * - JSONParser will stop and throw the same exception to the caller when receiving this exception. - * @see #endJSON - */ - boolean startObject() throws ParseException, IOException; - - /** - * Receive notification of the end of a JSON object. - * - * @return false if the handler wants to stop parsing after return. - * @throws ParseException - * - * @see #startObject - */ - boolean endObject() throws ParseException, IOException; - - /** - * Receive notification of the beginning of a JSON object entry. - * - * @param key - * - Key of a JSON object entry. - * - * @return false if the handler wants to stop parsing after return. - * @throws ParseException - * - * @see #endObjectEntry - */ - boolean startObjectEntry(String key) throws ParseException, IOException; - - /** - * Receive notification of the end of the value of previous object entry. - * - * @return false if the handler wants to stop parsing after return. - * @throws ParseException - * - * @see #startObjectEntry - */ - boolean endObjectEntry() throws ParseException, IOException; - - /** - * Receive notification of the beginning of a JSON array. - * - * @return false if the handler wants to stop parsing after return. - * @throws ParseException - * - * @see #endArray - */ - boolean startArray() throws ParseException, IOException; - - /** - * Receive notification of the end of a JSON array. - * - * @return false if the handler wants to stop parsing after return. - * @throws ParseException - * - * @see #startArray - */ - boolean endArray() throws ParseException, IOException; - - /** - * Receive notification of the JSON primitive values: - * java.lang.String, - * java.lang.Number, - * java.lang.Boolean - * null - * - * @param value - * - Instance of the following: - * java.lang.String, - * java.lang.Number, - * java.lang.Boolean - * null - * - * @return false if the handler wants to stop parsing after return. - * @throws ParseException - */ - boolean primitive(Object value) throws ParseException, IOException; - -} diff --git a/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/parser/JSONParser.java b/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/parser/JSONParser.java index d9819da..5e9525d 100644 --- a/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/parser/JSONParser.java +++ b/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/parser/JSONParser.java @@ -55,11 +55,8 @@ public class JSONParser { public static final int S_IN_OBJECT = 2; public static final int S_IN_ARRAY = 3; public static final int S_PASSED_PAIR_KEY = 4; - public static final int S_IN_PAIR_VALUE = 5; - public static final int S_END = 6; public static final int S_IN_ERROR = -1; - private LinkedList handlerStatusStack; private Yylex lexer = new Yylex((Reader) null); private Yytoken token = null; private int status = S_INIT; @@ -78,7 +75,6 @@ public class JSONParser { public void reset() { token = null; status = S_INIT; - handlerStatusStack = null; } /** @@ -339,226 +335,4 @@ public class JSONParser { return new JSONArray(); return l; } - - public void parse(String s, ContentHandler contentHandler) throws ParseException { - parse(s, contentHandler, false); - } - - public void parse(String s, ContentHandler contentHandler, boolean isResume) throws ParseException { - StringReader in = new StringReader(s); - try { - parse(in, contentHandler, isResume); - } catch (IOException ie) { - /* - * Actually it will never happen. - */ - throw new ParseException(-1, ParseException.ERROR_UNEXPECTED_EXCEPTION, ie); - } - } - - public void parse(Reader in, ContentHandler contentHandler) throws IOException, ParseException { - parse(in, contentHandler, false); - } - - /** - * Stream processing of JSON text. - * - * @see ContentHandler - * - * @param in - * @param contentHandler - * @param isResume - * - Indicates if it continues previous parsing operation. - * If set to true, resume parsing the old stream, and parameter 'in' will be ignored. - * If this method is called for the first time in this instance, isResume will be ignored. - * - * @throws IOException - * @throws ParseException - */ - public void parse(Reader in, ContentHandler contentHandler, boolean isResume) throws IOException, ParseException { - if (!isResume) { - reset(in); - handlerStatusStack = new LinkedList<>(); - } else { - if (handlerStatusStack == null) { - isResume = false; - reset(in); - handlerStatusStack = new LinkedList<>(); - } - } - - LinkedList statusStack = handlerStatusStack; - - try { - do { - switch (status) { - case S_INIT: - contentHandler.startJSON(); - nextToken(); - switch (token.type) { - case Yytoken.TYPE_VALUE: - status = S_IN_FINISHED_VALUE; - statusStack.addFirst(status); - if (!contentHandler.primitive(token.value)) - return; - break; - case Yytoken.TYPE_LEFT_BRACE: - status = S_IN_OBJECT; - statusStack.addFirst(status); - if (!contentHandler.startObject()) - return; - break; - case Yytoken.TYPE_LEFT_SQUARE: - status = S_IN_ARRAY; - statusStack.addFirst(status); - if (!contentHandler.startArray()) - return; - break; - default: - status = S_IN_ERROR; - }// inner switch - break; - - case S_IN_FINISHED_VALUE: - nextToken(); - if (token.type == Yytoken.TYPE_EOF) { - contentHandler.endJSON(); - status = S_END; - return; - } else { - status = S_IN_ERROR; - throw new ParseException(getPosition(), ParseException.ERROR_UNEXPECTED_TOKEN, token); - } - - case S_IN_OBJECT: - nextToken(); - switch (token.type) { - case Yytoken.TYPE_COMMA: - break; - case Yytoken.TYPE_VALUE: - if (token.value instanceof String) { - String key = (String) token.value; - status = S_PASSED_PAIR_KEY; - statusStack.addFirst(status); - if (!contentHandler.startObjectEntry(key)) - return; - } else { - status = S_IN_ERROR; - } - break; - case Yytoken.TYPE_RIGHT_BRACE: - if (statusStack.size() > 1) { - statusStack.removeFirst(); - status = peekStatus(statusStack); - } else { - status = S_IN_FINISHED_VALUE; - } - if (!contentHandler.endObject()) - return; - break; - default: - status = S_IN_ERROR; - break; - }// inner switch - break; - - case S_PASSED_PAIR_KEY: - nextToken(); - switch (token.type) { - case Yytoken.TYPE_COLON: - break; - case Yytoken.TYPE_VALUE: - statusStack.removeFirst(); - status = peekStatus(statusStack); - if (!contentHandler.primitive(token.value)) - return; - if (!contentHandler.endObjectEntry()) - return; - break; - case Yytoken.TYPE_LEFT_SQUARE: - statusStack.removeFirst(); - statusStack.addFirst(S_IN_PAIR_VALUE); - status = S_IN_ARRAY; - statusStack.addFirst(status); - if (!contentHandler.startArray()) - return; - break; - case Yytoken.TYPE_LEFT_BRACE: - statusStack.removeFirst(); - statusStack.addFirst(S_IN_PAIR_VALUE); - status = S_IN_OBJECT; - statusStack.addFirst(status); - if (!contentHandler.startObject()) - return; - break; - default: - status = S_IN_ERROR; - } - break; - - case S_IN_PAIR_VALUE: - /* - * S_IN_PAIR_VALUE is just a marker to indicate the end of an object entry, it doesn't proccess any token, - * therefore delay consuming token until next round. - */ - statusStack.removeFirst(); - status = peekStatus(statusStack); - if (!contentHandler.endObjectEntry()) - return; - break; - - case S_IN_ARRAY: - nextToken(); - switch (token.type) { - case Yytoken.TYPE_COMMA: - break; - case Yytoken.TYPE_VALUE: - if (!contentHandler.primitive(token.value)) - return; - break; - case Yytoken.TYPE_RIGHT_SQUARE: - if (statusStack.size() > 1) { - statusStack.removeFirst(); - status = peekStatus(statusStack); - } else { - status = S_IN_FINISHED_VALUE; - } - if (!contentHandler.endArray()) - return; - break; - case Yytoken.TYPE_LEFT_BRACE: - status = S_IN_OBJECT; - statusStack.addFirst(status); - if (!contentHandler.startObject()) - return; - break; - case Yytoken.TYPE_LEFT_SQUARE: - status = S_IN_ARRAY; - statusStack.addFirst(status); - if (!contentHandler.startArray()) - return; - break; - default: - status = S_IN_ERROR; - }// inner switch - break; - - case S_END: - return; - - case S_IN_ERROR: - throw new ParseException(getPosition(), ParseException.ERROR_UNEXPECTED_TOKEN, token); - }// switch - if (status == S_IN_ERROR) { - throw new ParseException(getPosition(), ParseException.ERROR_UNEXPECTED_TOKEN, token); - } - } while (token.type != Yytoken.TYPE_EOF); - } catch (IOException | ParseException e) { - status = S_IN_ERROR; - throw e; - } - - status = S_IN_ERROR; - throw new ParseException(getPosition(), ParseException.ERROR_UNEXPECTED_TOKEN, token); - } } diff --git a/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/parser/ParseException.java b/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/parser/ParseException.java index 95fa03b..f51c4ae 100644 --- a/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/parser/ParseException.java +++ b/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/parser/ParseException.java @@ -38,7 +38,6 @@ package moe.yushi.authlibinjector.internal.org.json.simple.parser; * */ public class ParseException extends Exception { - private static final long serialVersionUID = -7880698968187728547L; public static final int ERROR_UNEXPECTED_CHAR = 0; public static final int ERROR_UNEXPECTED_TOKEN = 1; diff --git a/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/parser/Yylex.java b/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/parser/Yylex.java index fdf28b5..067e181 100644 --- a/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/parser/Yylex.java +++ b/src/main/java/moe/yushi/authlibinjector/internal/org/json/simple/parser/Yylex.java @@ -214,7 +214,6 @@ class Yylex { /* error codes */ private static final int ZZ_UNKNOWN_ERROR = 0; private static final int ZZ_NO_MATCH = 1; - private static final int ZZ_PUSHBACK_2BIG = 2; /* error messages for the codes above */ private static final String ZZ_ERROR_MSG[] = { @@ -383,17 +382,6 @@ class Yylex { return true; } - /** - * Closes the input stream. - */ - public final void yyclose() throws IOException { - zzAtEOF = true; /* indicate end of file */ - zzEndRead = zzStartRead; /* invalidate buffer */ - - if (zzReader != null) - zzReader.close(); - } - /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -414,13 +402,6 @@ class Yylex { zzLexicalState = YYINITIAL; } - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - /** * Enters a new lexical state * @@ -454,13 +435,6 @@ class Yylex { return zzBuffer[zzStartRead + pos]; } - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos - zzStartRead; - } - /** * Reports an error that occured while scanning. * @@ -487,22 +461,6 @@ class Yylex { throw new IllegalStateException(message); } - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number - * the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if (number > yylength()) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - /** * Resumes scanning until the next regular expression is matched, * the end of input is encountered or an I/O-Error occurs.