diff --git a/src/main/java/models/objectOrientedTransfer/DataTransferContext.java b/src/main/java/models/objectOrientedTransfer/DataTransferContext.java index d7403a3..45a855d 100644 --- a/src/main/java/models/objectOrientedTransfer/DataTransferContext.java +++ b/src/main/java/models/objectOrientedTransfer/DataTransferContext.java @@ -3,6 +3,7 @@ import parser.JsonValue; import parser.StringValue; import parser.Value; +import parser.exceptions.ExpectedJsonValue; import java.util.ArrayList; import java.util.HashMap; @@ -113,7 +114,6 @@ } else if (style.equals("PULL")) { transferStyle = PushPullValue.PULL; } - System.out.println(style); } else if (key.equals("multiplicity")) { StringValue multi = (StringValue) ((JsonValue) value).getValue(keyValue); String multiplicity = multi.getStringValue(); @@ -126,7 +126,6 @@ } else if (multiplicity.equals("1:*")) { multiplicityValue = MultiplicityValue.OneToMany; } - System.out.println(multiplicity); } else if (key.equals("data")) { Value dataTransferValue = ((JsonValue) value).getValue(keyValue); if (dataTransferValue instanceof JsonValue) { @@ -141,7 +140,7 @@ } } } else { - throw new RuntimeException("jsonのtransferのdataが足りていません"); + throw new ExpectedJsonValue("jsonのtransferのdataが足りていません"); } } } @@ -166,7 +165,6 @@ cur++; } - //この下エラー吐いてます for (int i = 0; i < list.size() - 1; i++) { String src = list.get(i); String dst = list.get(i + 1); diff --git a/src/main/java/parser/Parser.java b/src/main/java/parser/Parser.java index e1ec458..0c20d1a 100644 --- a/src/main/java/parser/Parser.java +++ b/src/main/java/parser/Parser.java @@ -1,6 +1,9 @@ package parser; import models.objectOrientedTransfer.*; +import parser.exceptions.ExpectedArrayValue; +import parser.exceptions.ExpectedJsonValue; +import parser.exceptions.ExpectedStringValue; import java.io.BufferedReader; import java.io.IOException; @@ -53,7 +56,7 @@ return parseValue(tokenStream); } - public Value parseValue(TokenStream tokenStream) { + public Value parseValue(TokenStream tokenStream) throws ExpectedJsonValue, ExpectedArrayValue, ExpectedStringValue { if (tokenStream.checkNext().equals(LEFT_CURLY_BRACKET)) { tokenStream.next(); JsonValue jsonValue = parseJsonValue(tokenStream); @@ -61,7 +64,7 @@ tokenStream.next(); return jsonValue; } else { - throw new RuntimeException(String.valueOf(tokenStream.getLine())); + throw new ExpectedJsonValue(String.valueOf(tokenStream.getLine())); } } else if (tokenStream.checkNext().equals(LEFT_SQUARE_BRACKET)) { tokenStream.next(); @@ -70,7 +73,7 @@ tokenStream.next(); return arrayValue; } else { - throw new RuntimeException(String.valueOf(tokenStream.getLine())); + throw new ExpectedArrayValue(String.valueOf(tokenStream.getLine())); } } else if (tokenStream.checkNext().equals(DOUBLE_QUOT)) { tokenStream.next(); @@ -79,7 +82,7 @@ tokenStream.next(); return stringValue; } else { - throw new RuntimeException(String.valueOf(tokenStream.getLine())); + throw new ExpectedStringValue(String.valueOf(tokenStream.getLine())); } } else if (Character.isDigit(tokenStream.checkNext().charAt(0))) { return parseIntegerValue(tokenStream); @@ -87,7 +90,7 @@ throw new RuntimeException(String.valueOf(tokenStream.getLine())); } - public JsonValue parseJsonValue(TokenStream tokenStream) { + public JsonValue parseJsonValue(TokenStream tokenStream) throws ExpectedStringValue { JsonValue jsonValue = new JsonValue(); //要素が0 if (tokenStream.checkNext().equals(RIGHT_CURLY_BRACKET)) { @@ -97,7 +100,7 @@ //key Value keyValue = parseValue(tokenStream); if (!(keyValue instanceof StringValue)) { - throw new RuntimeException(String.valueOf(tokenStream.getLine())); + throw new ExpectedStringValue(String.valueOf(tokenStream.getLine())); } expect(tokenStream, COLON); tokenStream.next();//COLON @@ -122,7 +125,6 @@ Value value = parseValue(tokenStream); arrayValue.addValue(value); if (!tokenStream.checkNext().equals(COMMA)) { - break; } tokenStream.next();//COMMA