diff --git a/cddiff/src/main/java/de/monticore/cddiff/CDDiffUtil.java b/cddiff/src/main/java/de/monticore/cddiff/CDDiffUtil.java index b0bbd81b1..5c8f8da65 100644 --- a/cddiff/src/main/java/de/monticore/cddiff/CDDiffUtil.java +++ b/cddiff/src/main/java/de/monticore/cddiff/CDDiffUtil.java @@ -22,7 +22,6 @@ import de.monticore.types.check.SymTypeExpression; import de.monticore.types.mcbasictypes._ast.ASTMCObjectType; import de.se_rwth.commons.logging.Log; -import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.Path; import java.nio.file.Paths; @@ -114,7 +113,7 @@ public static void saveDiffCDs2File(ASTCDCompilationUnit ast1, ASTCDCompilationU * Parse the model, add default role-names and replace all qualified names with (internal) full * names. */ - public static ASTCDCompilationUnit loadCD(String modelPath) throws IOException { + public static ASTCDCompilationUnit loadCD(String modelPath) { Optional cd = CD4CodeMill.parser().parseCDCompilationUnit(modelPath); if (cd.isPresent()) { new CDFullNameTrafo().transform(cd.get()); @@ -127,33 +126,22 @@ public static ASTCDCompilationUnit loadCD(String modelPath) throws IOException { } public static ASTODArtifact loadODModel(String modelPath) { - try { - OD4ReportParser parser = new OD4ReportParser(); - Optional optOD = parser.parse(modelPath); - if (parser.hasErrors()) { - Log.error("Model parsed with errors. Model path: " + modelPath); - } - else if (optOD.isPresent()) { - return optOD.get(); - } + OD4ReportParser parser = new OD4ReportParser(); + Optional optOD = parser.parse(modelPath); + if (parser.hasErrors()) { + Log.error("Model parsed with errors. Model path: " + modelPath); } - catch (IOException e) { - Log.error("Could not parse OD model."); - e.printStackTrace(); + else if (optOD.isPresent()) { + return optOD.get(); } return null; } public static ASTCDCompilationUnit reparseCD(ASTCDCompilationUnit cd) { String content = CD4CodeMill.prettyPrint(cd, true); - try { - Optional opt = CD4CodeMill.parser().parse_String(content); - if (opt.isPresent()) { - cd = opt.get(); - } - } - catch (IOException e) { - Log.warn("Could not reparse CD: " + cd.getCDDefinition().getName()); + Optional opt = CD4CodeMill.parser().parse_String(content); + if (opt.isPresent()) { + cd = opt.get(); } return cd; } diff --git a/cddiff/src/main/java/de/monticore/odvalidity/ModelLoader.java b/cddiff/src/main/java/de/monticore/odvalidity/ModelLoader.java index e3d574409..ba6396b96 100644 --- a/cddiff/src/main/java/de/monticore/odvalidity/ModelLoader.java +++ b/cddiff/src/main/java/de/monticore/odvalidity/ModelLoader.java @@ -9,7 +9,6 @@ import de.se_rwth.commons.logging.Log; import java.io.File; import java.io.FileNotFoundException; -import java.io.IOException; import java.util.Optional; public class ModelLoader { @@ -17,17 +16,10 @@ public class ModelLoader { protected Optional loadCDModel(File cdModel) throws FileNotFoundException { if (cdModel.exists() && cdModel.isFile()) { - Optional cdAST = Optional.empty(); - try { - CD4AnalysisParser parser = new CD4AnalysisParser(); - cdAST = parser.parse(cdModel.getPath()); - if (parser.hasErrors()) { - Log.error("Model parsed with errors. Model path: " + cdModel.getPath()); - } - } - catch (IOException e) { - Log.error("Could not parse CD model."); - e.printStackTrace(); + CD4AnalysisParser parser = new CD4AnalysisParser(); + Optional cdAST = parser.parse(cdModel.getPath()); + if (parser.hasErrors()) { + Log.error("Model parsed with errors. Model path: " + cdModel.getPath()); } cdAST.ifPresent(CDDiffUtil::refreshSymbolTable); @@ -43,17 +35,10 @@ protected Optional loadCDModel(File cdModel) throws FileNo protected Optional loadODModel(File odModel) throws FileNotFoundException { if (odModel.exists() && odModel.isFile()) { - Optional odAST = Optional.empty(); - try { - OD4ReportParser parser = new OD4ReportParser(); - odAST = parser.parse(odModel.getPath()); - if (parser.hasErrors()) { - Log.error("Model parsed with errors. Model path: " + odModel.getPath()); - } - } - catch (IOException e) { - Log.error("Could not parse CD model."); - e.printStackTrace(); + OD4ReportParser parser = new OD4ReportParser(); + Optional odAST = parser.parse(odModel.getPath()); + if (parser.hasErrors()) { + Log.error("Model parsed with errors. Model path: " + odModel.getPath()); } return odAST; diff --git a/cddiff/src/test/java/de/monticore/cdconcretization/AbstractCDConcretizationTest.java b/cddiff/src/test/java/de/monticore/cdconcretization/AbstractCDConcretizationTest.java index e90902b71..ab0e67c04 100644 --- a/cddiff/src/test/java/de/monticore/cdconcretization/AbstractCDConcretizationTest.java +++ b/cddiff/src/test/java/de/monticore/cdconcretization/AbstractCDConcretizationTest.java @@ -17,7 +17,6 @@ import de.monticore.symbols.oosymbols._symboltable.MethodSymbol; import de.monticore.symboltable.ISymbol; import de.se_rwth.commons.logging.Log; -import java.io.IOException; import java.util.LinkedHashSet; import java.util.Set; @@ -145,14 +144,8 @@ protected void parseModels(String concrete, String ref) { } public static ASTCDCompilationUnit parseCD(String filePath) { - ASTCDCompilationUnit cd; - try { - cd = CD4CodeMill.parser().parseCDCompilationUnit(TEST_RES_DIR + filePath).orElseThrow( - () -> new RuntimeException("Could not parse CD: " + filePath)); - } - catch (IOException e) { - throw new RuntimeException("Failed to load CD: " + filePath, e); - } + ASTCDCompilationUnit cd = CD4CodeMill.parser().parseCDCompilationUnit(TEST_RES_DIR + filePath) + .orElseThrow(() -> new RuntimeException("Could not parse CD: " + filePath)); CD4CodeMill.scopesGenitorDelegator().createFromAST(cd); cd.accept(new CD4CodeSymbolTableCompleter(cd).getTraverser()); assertNoFindings("Findings while loading CD"); diff --git a/cddiff/src/test/java/de/monticore/cdconformance/ConfAbstractTest.java b/cddiff/src/test/java/de/monticore/cdconformance/ConfAbstractTest.java index 2f8ef58e3..7498ae66e 100644 --- a/cddiff/src/test/java/de/monticore/cdconformance/ConfAbstractTest.java +++ b/cddiff/src/test/java/de/monticore/cdconformance/ConfAbstractTest.java @@ -8,7 +8,6 @@ import de.se_rwth.commons.logging.LogStub; import org.junit.jupiter.api.BeforeEach; -import java.io.IOException; import java.util.Optional; import static org.junit.jupiter.api.Assertions.fail; @@ -33,24 +32,19 @@ public void setup() { } public void parseModels(String concrete, String ref) { - try { - Optional conCD = CD4CodeMill.parser().parseCDCompilationUnit(dir - + concrete); - Optional refCD = CD4CodeMill.parser().parseCDCompilationUnit(dir + ref); - if (conCD.isPresent() && refCD.isPresent()) { - CD4CodeMill.scopesGenitorDelegator().createFromAST(conCD.get()); - CD4CodeMill.scopesGenitorDelegator().createFromAST(refCD.get()); - conCD.get().accept(new CD4CodeSymbolTableCompleter(conCD.get()).getTraverser()); - refCD.get().accept(new CD4CodeSymbolTableCompleter(refCD.get()).getTraverser()); - this.refCD = refCD.get(); - this.conCD = conCD.get(); - } - else { - fail("Could not parse CDs."); - } + Optional conCD = CD4CodeMill.parser().parseCDCompilationUnit(dir + + concrete); + Optional refCD = CD4CodeMill.parser().parseCDCompilationUnit(dir + ref); + if (conCD.isPresent() && refCD.isPresent()) { + CD4CodeMill.scopesGenitorDelegator().createFromAST(conCD.get()); + CD4CodeMill.scopesGenitorDelegator().createFromAST(refCD.get()); + conCD.get().accept(new CD4CodeSymbolTableCompleter(conCD.get()).getTraverser()); + refCD.get().accept(new CD4CodeSymbolTableCompleter(refCD.get()).getTraverser()); + this.refCD = refCD.get(); + this.conCD = conCD.get(); } - catch (IOException e) { - fail(e); + else { + fail("Could not parse CDs."); } } diff --git a/cddiff/src/test/java/de/monticore/cddiff/syndiff/AssocDiffTest.java b/cddiff/src/test/java/de/monticore/cddiff/syndiff/AssocDiffTest.java index be2611f9f..ed74f1d91 100644 --- a/cddiff/src/test/java/de/monticore/cddiff/syndiff/AssocDiffTest.java +++ b/cddiff/src/test/java/de/monticore/cddiff/syndiff/AssocDiffTest.java @@ -9,7 +9,6 @@ import de.monticore.cddiff.CDDiffTestBasis; import de.monticore.cddiff.syn2semdiff.Syn2SemDiff; import de.monticore.odbasis._ast.ASTODArtifact; -import java.io.IOException; import java.util.List; import java.util.Optional; import org.junit.jupiter.api.Test; @@ -83,25 +82,19 @@ public void testAssoc5() { } public void parseModels(String concrete, String ref) { - try { - Optional src = CD4CodeMill.parser().parseCDCompilationUnit(dir - + concrete); - Optional tgt = CD4CodeMill.parser().parseCDCompilationUnit(dir + ref); - if (src.isPresent() && tgt.isPresent()) { - CD4CodeMill.scopesGenitorDelegator().createFromAST(src.get()); - CD4CodeMill.scopesGenitorDelegator().createFromAST(tgt.get()); - src.get().accept(new CD4CodeSymbolTableCompleter(src.get()).getTraverser()); - tgt.get().accept(new CD4CodeSymbolTableCompleter(tgt.get()).getTraverser()); - this.tgt = tgt.get(); - this.src = src.get(); - } - else { - fail("Could not parse CDs."); - } - + Optional src = CD4CodeMill.parser().parseCDCompilationUnit(dir + + concrete); + Optional tgt = CD4CodeMill.parser().parseCDCompilationUnit(dir + ref); + if (src.isPresent() && tgt.isPresent()) { + CD4CodeMill.scopesGenitorDelegator().createFromAST(src.get()); + CD4CodeMill.scopesGenitorDelegator().createFromAST(tgt.get()); + src.get().accept(new CD4CodeSymbolTableCompleter(src.get()).getTraverser()); + tgt.get().accept(new CD4CodeSymbolTableCompleter(tgt.get()).getTraverser()); + this.tgt = tgt.get(); + this.src = src.get(); } - catch (IOException e) { - fail(e.getMessage()); + else { + fail("Could not parse CDs."); } } diff --git a/cddiff/src/test/java/de/monticore/cddiff/syndiff/MemberDiffTest.java b/cddiff/src/test/java/de/monticore/cddiff/syndiff/MemberDiffTest.java index 4940d612c..d2d074898 100644 --- a/cddiff/src/test/java/de/monticore/cddiff/syndiff/MemberDiffTest.java +++ b/cddiff/src/test/java/de/monticore/cddiff/syndiff/MemberDiffTest.java @@ -9,7 +9,6 @@ import de.monticore.cdbasis._ast.ASTCDClass; import de.monticore.cdbasis._ast.ASTCDCompilationUnit; import de.monticore.cddiff.CDDiffTestBasis; -import java.io.IOException; import java.util.Optional; import org.junit.jupiter.api.Test; @@ -39,25 +38,19 @@ public void testMember1() { } public void parseModels(String concrete, String ref) { - try { - Optional src = CD4CodeMill.parser().parseCDCompilationUnit(dir - + concrete); - Optional tgt = CD4CodeMill.parser().parseCDCompilationUnit(dir + ref); - if (src.isPresent() && tgt.isPresent()) { - CD4CodeMill.scopesGenitorDelegator().createFromAST(src.get()); - CD4CodeMill.scopesGenitorDelegator().createFromAST(tgt.get()); - src.get().accept(new CD4CodeSymbolTableCompleter(src.get()).getTraverser()); - tgt.get().accept(new CD4CodeSymbolTableCompleter(tgt.get()).getTraverser()); - this.tgt = tgt.get(); - this.src = src.get(); - } - else { - fail("Could not parse CDs."); - } - + Optional src = CD4CodeMill.parser().parseCDCompilationUnit(dir + + concrete); + Optional tgt = CD4CodeMill.parser().parseCDCompilationUnit(dir + ref); + if (src.isPresent() && tgt.isPresent()) { + CD4CodeMill.scopesGenitorDelegator().createFromAST(src.get()); + CD4CodeMill.scopesGenitorDelegator().createFromAST(tgt.get()); + src.get().accept(new CD4CodeSymbolTableCompleter(src.get()).getTraverser()); + tgt.get().accept(new CD4CodeSymbolTableCompleter(tgt.get()).getTraverser()); + this.tgt = tgt.get(); + this.src = src.get(); } - catch (IOException e) { - fail(e.getMessage()); + else { + fail("Could not parse CDs."); } } diff --git a/cddiff/src/test/java/de/monticore/cddiff/syndiff/SyntaxDiffTest.java b/cddiff/src/test/java/de/monticore/cddiff/syndiff/SyntaxDiffTest.java index f5bd785d4..8dd446136 100644 --- a/cddiff/src/test/java/de/monticore/cddiff/syndiff/SyntaxDiffTest.java +++ b/cddiff/src/test/java/de/monticore/cddiff/syndiff/SyntaxDiffTest.java @@ -13,7 +13,6 @@ import de.monticore.cddiff.syn2semdiff.Syn2SemDiff; import de.monticore.odbasis._ast.ASTODArtifact; import de.monticore.odvalidity.OD2CDMatcher; -import java.io.IOException; import java.util.List; import java.util.Optional; import java.util.Set; @@ -286,23 +285,17 @@ public void testMaCoCo2() { } public void parseModels(String concrete, String ref) { - try { - Optional src = CD4CodeMill.parser().parseCDCompilationUnit(dir - + concrete); - Optional tgt = CD4CodeMill.parser().parseCDCompilationUnit(dir + ref); - if (src.isPresent() && tgt.isPresent()) { - CDDiffUtil.refreshSymbolTable(src.get()); - CDDiffUtil.refreshSymbolTable(tgt.get()); - this.tgt = tgt.get(); - this.src = src.get(); - } - else { - fail("Could not parse CDs."); - } - + Optional src = CD4CodeMill.parser().parseCDCompilationUnit(dir + + concrete); + Optional tgt = CD4CodeMill.parser().parseCDCompilationUnit(dir + ref); + if (src.isPresent() && tgt.isPresent()) { + CDDiffUtil.refreshSymbolTable(src.get()); + CDDiffUtil.refreshSymbolTable(tgt.get()); + this.tgt = tgt.get(); + this.src = src.get(); } - catch (IOException e) { - fail(e.getMessage()); + else { + fail("Could not parse CDs."); } } diff --git a/cddiff/src/test/java/de/monticore/cddiff/syndiff/TypeDIffTest.java b/cddiff/src/test/java/de/monticore/cddiff/syndiff/TypeDIffTest.java index 4d2135ab9..2409eaf0c 100644 --- a/cddiff/src/test/java/de/monticore/cddiff/syndiff/TypeDIffTest.java +++ b/cddiff/src/test/java/de/monticore/cddiff/syndiff/TypeDIffTest.java @@ -17,7 +17,6 @@ import de.monticore.odvalidity.OD2CDMatcher; import de.monticore.prettyprint.IndentPrinter; import de.se_rwth.commons.logging.Log; -import java.io.IOException; import java.util.List; import java.util.Optional; import org.junit.jupiter.api.Assertions; @@ -193,25 +192,19 @@ public void testType4() { } public void parseModels(String concrete, String ref) { - try { - Optional src = CD4CodeMill.parser().parseCDCompilationUnit(dir - + concrete); - Optional tgt = CD4CodeMill.parser().parseCDCompilationUnit(dir + ref); - if (src.isPresent() && tgt.isPresent()) { - CD4CodeMill.scopesGenitorDelegator().createFromAST(src.get()); - CD4CodeMill.scopesGenitorDelegator().createFromAST(tgt.get()); - src.get().accept(new CD4CodeSymbolTableCompleter(src.get()).getTraverser()); - tgt.get().accept(new CD4CodeSymbolTableCompleter(tgt.get()).getTraverser()); - this.tgt = tgt.get(); - this.src = src.get(); - } - else { - fail("Could not parse CDs."); - } - + Optional src = CD4CodeMill.parser().parseCDCompilationUnit(dir + + concrete); + Optional tgt = CD4CodeMill.parser().parseCDCompilationUnit(dir + ref); + if (src.isPresent() && tgt.isPresent()) { + CD4CodeMill.scopesGenitorDelegator().createFromAST(src.get()); + CD4CodeMill.scopesGenitorDelegator().createFromAST(tgt.get()); + src.get().accept(new CD4CodeSymbolTableCompleter(src.get()).getTraverser()); + tgt.get().accept(new CD4CodeSymbolTableCompleter(tgt.get()).getTraverser()); + this.tgt = tgt.get(); + this.src = src.get(); } - catch (IOException e) { - fail(e.getMessage()); + else { + fail("Could not parse CDs."); } } diff --git a/cddiff/src/test/java/de/monticore/cdmatcher/CD2CDMatcherTest.java b/cddiff/src/test/java/de/monticore/cdmatcher/CD2CDMatcherTest.java index e7ddcca6f..5a2d7ec1f 100644 --- a/cddiff/src/test/java/de/monticore/cdmatcher/CD2CDMatcherTest.java +++ b/cddiff/src/test/java/de/monticore/cdmatcher/CD2CDMatcherTest.java @@ -8,7 +8,6 @@ import de.monticore.cd4code._symboltable.CD4CodeSymbolTableCompleter; import de.monticore.cdbasis._ast.ASTCDCompilationUnit; import de.se_rwth.commons.logging.LogStub; -import java.io.IOException; import java.util.Optional; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -67,25 +66,19 @@ public void testMatchSrcClassTgtRoleName() { } public void parseModels(String concrete, String ref) { - try { - Optional src = CD4CodeMill.parser().parseCDCompilationUnit(dir - + concrete); - Optional tgt = CD4CodeMill.parser().parseCDCompilationUnit(dir + ref); - if (src.isPresent() && tgt.isPresent()) { - CD4CodeMill.scopesGenitorDelegator().createFromAST(src.get()); - CD4CodeMill.scopesGenitorDelegator().createFromAST(tgt.get()); - src.get().accept(new CD4CodeSymbolTableCompleter(src.get()).getTraverser()); - tgt.get().accept(new CD4CodeSymbolTableCompleter(tgt.get()).getTraverser()); - this.tgt = tgt.get(); - this.src = src.get(); - } - else { - fail("Could not parse CDs."); - } - + Optional src = CD4CodeMill.parser().parseCDCompilationUnit(dir + + concrete); + Optional tgt = CD4CodeMill.parser().parseCDCompilationUnit(dir + ref); + if (src.isPresent() && tgt.isPresent()) { + CD4CodeMill.scopesGenitorDelegator().createFromAST(src.get()); + CD4CodeMill.scopesGenitorDelegator().createFromAST(tgt.get()); + src.get().accept(new CD4CodeSymbolTableCompleter(src.get()).getTraverser()); + tgt.get().accept(new CD4CodeSymbolTableCompleter(tgt.get()).getTraverser()); + this.tgt = tgt.get(); + this.src = src.get(); } - catch (IOException e) { - fail(e.getMessage()); + else { + fail("Could not parse CDs."); } } diff --git a/cdlang/src/main/java/de/monticore/cd/facade/CDMethodFacade.java b/cdlang/src/main/java/de/monticore/cd/facade/CDMethodFacade.java index 8fccf1f5c..79170ad8a 100644 --- a/cdlang/src/main/java/de/monticore/cd/facade/CDMethodFacade.java +++ b/cdlang/src/main/java/de/monticore/cd/facade/CDMethodFacade.java @@ -16,7 +16,6 @@ import de.monticore.types.mcbasictypes._ast.ASTMCReturnType; import de.monticore.types.mcbasictypes._ast.ASTMCType; import de.monticore.umlmodifier._ast.ASTModifier; -import java.io.IOException; import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -165,13 +164,8 @@ public ASTCDMethod createDefaultMethod(final ASTModifier modifier, final ASTMCTy * of the other methods fit your context ! */ public ASTCDMethod createMethodByDefinition(final String signature) { - Optional method; - try { - method = CD4CodeMill.parser().parse_StringCDMethod(signature); - } - catch (IOException e) { - throw new CDFactoryException(CDFactoryErrorCode.COULD_NOT_CREATE_METHOD, signature, e); - } + Optional method = CD4CodeMill.parser() + .parse_StringCDMethod(signature); if (!method.isPresent()) { throw new CDFactoryException(CDFactoryErrorCode.COULD_NOT_CREATE_METHOD, signature); diff --git a/cdlang/src/main/java/de/monticore/cd/methodtemplates/CD4CTemplateHelper.java b/cdlang/src/main/java/de/monticore/cd/methodtemplates/CD4CTemplateHelper.java index 94c744c93..860392cc9 100644 --- a/cdlang/src/main/java/de/monticore/cd/methodtemplates/CD4CTemplateHelper.java +++ b/cdlang/src/main/java/de/monticore/cd/methodtemplates/CD4CTemplateHelper.java @@ -5,8 +5,6 @@ import de.monticore.cd4codebasis._ast.ASTCDMethodSignature; import de.monticore.cdbasis._ast.ASTCDAttribute; import de.monticore.types.mcbasictypes._ast.ASTMCImportStatement; -import de.se_rwth.commons.logging.Log; -import java.io.IOException; import java.io.StringReader; import java.util.Optional; @@ -34,14 +32,10 @@ public void method(String methodSignature) { methodSignature += ";"; } - try { - this.astcdMethod = CD4CodeMill.parser().parseCDMethod(new StringReader(methodSignature)).map( - m -> m); // needed because we need Optional and not - // Optional - } - catch (IOException e) { - Log.error("0x12000: can't parse method signature '" + methodSignature + "': ", e); - } + this.astcdMethod = CD4CodeMill.parser() + .parseCDMethod(new StringReader(methodSignature)).map( + m -> m); // needed because we need Optional and not + // Optional } /** @@ -54,14 +48,9 @@ public void constructor(String constructorSignature) { if (!constructorSignature.endsWith(";")) { constructorSignature += ";"; } - try { - this.astcdMethod = CD4CodeMill.parser().parseCDConstructor(new StringReader( - constructorSignature)).map(m -> m); // needed because we need Optional and not - // Optional - } - catch (IOException e) { - Log.error("0x12001: can't parse constructor signature '" + constructorSignature + "': ", e); - } + this.astcdMethod = CD4CodeMill.parser().parseCDConstructor(new StringReader( + constructorSignature)).map(m -> m); // needed because we need Optional and not + // Optional } /** @@ -75,14 +64,9 @@ public void attribute(String attributeSignature) { attributeSignature += ";"; } - try { - this.astcdAttribute = CD4CodeMill.parser().parseCDAttribute(new StringReader( - attributeSignature)).map(m -> m); // needed because we need Optional and not - // Optional - } - catch (IOException e) { - Log.error("0x12002: can't parse attribute '" + attributeSignature + "': ", e); - } + this.astcdAttribute = CD4CodeMill.parser().parseCDAttribute(new StringReader( + attributeSignature)).map(m -> m); // needed because we need Optional and not + // Optional } /** @@ -100,14 +84,9 @@ public void importStr(String importSignature) { importSignature += ";"; } - try { - this.astcdImport = CD4CodeMill.parser().parseMCImportStatement(new StringReader( - importSignature)).map(m -> m); // needed because we need Optional and not - // Optional - } - catch (IOException e) { - Log.error("0x12002: can't parse '" + importSignature + "': ", e); - } + this.astcdImport = CD4CodeMill.parser().parseMCImportStatement(new StringReader( + importSignature)).map(m -> m); // needed because we need Optional and not + // Optional } } diff --git a/cdlang/src/main/java/de/monticore/cd4analysis/_parser/CD4AnalysisParser.java b/cdlang/src/main/java/de/monticore/cd4analysis/_parser/CD4AnalysisParser.java index 3c8968907..f8deb4735 100644 --- a/cdlang/src/main/java/de/monticore/cd4analysis/_parser/CD4AnalysisParser.java +++ b/cdlang/src/main/java/de/monticore/cd4analysis/_parser/CD4AnalysisParser.java @@ -5,7 +5,6 @@ import de.monticore.cdbasis._ast.ASTCDCompilationUnit; import de.se_rwth.commons.Names; import de.se_rwth.commons.logging.Log; -import java.io.IOException; import java.nio.file.Paths; import java.util.Optional; @@ -48,7 +47,7 @@ public static void checkFileAndPackageName(String fileName, ASTCDCompilationUnit } @Override - public Optional parse(String fileName) throws IOException { + public Optional parse(String fileName) { final Optional parse = super.parse(fileName); if (_checkFileAndPackageName) { parse.ifPresent(p -> checkFileAndPackageName(fileName, p)); diff --git a/cdlang/src/main/java/de/monticore/cd4code/_parser/CD4CodeParser.java b/cdlang/src/main/java/de/monticore/cd4code/_parser/CD4CodeParser.java index dff0b86c1..39b78ab03 100644 --- a/cdlang/src/main/java/de/monticore/cd4code/_parser/CD4CodeParser.java +++ b/cdlang/src/main/java/de/monticore/cd4code/_parser/CD4CodeParser.java @@ -3,7 +3,6 @@ import de.monticore.cd4analysis._parser.CD4AnalysisParser; import de.monticore.cdbasis._ast.ASTCDCompilationUnit; -import java.io.IOException; import java.util.Optional; public class CD4CodeParser extends CD4CodeParserTOP { @@ -11,7 +10,7 @@ public class CD4CodeParser extends CD4CodeParserTOP { boolean _checkFileAndPackageName = true; @Override - public Optional parse(String fileName) throws IOException { + public Optional parse(String fileName) { final Optional parse = super.parse(fileName); if (_checkFileAndPackageName) { parse.ifPresent(p -> CD4AnalysisParser.checkFileAndPackageName(fileName, p)); diff --git a/cdlang/src/test/java/de/monticore/symtabdefinition/SymTabDefinitionTestBasis.java b/cdlang/src/test/java/de/monticore/symtabdefinition/SymTabDefinitionTestBasis.java index 8216b2768..285a4db71 100644 --- a/cdlang/src/test/java/de/monticore/symtabdefinition/SymTabDefinitionTestBasis.java +++ b/cdlang/src/test/java/de/monticore/symtabdefinition/SymTabDefinitionTestBasis.java @@ -17,19 +17,17 @@ import de.monticore.symtabdefinition._visitor.SymTabDefinitionTraverser; import de.se_rwth.commons.logging.Log; import de.se_rwth.commons.logging.LogStub; -import java.io.IOException; import java.nio.file.Paths; import java.util.Optional; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; public class SymTabDefinitionTestBasis extends TestBasis { - + protected SymTabDefinitionParser parser; protected SymTabDefinitionFullPrettyPrinter printer; protected SymTabDefinitionSymbols2Json symbols2Json; protected SymTabDefinitionCoCoChecker coCoChecker; - + @BeforeEach public void initObjects() { LogStub.init(); @@ -37,38 +35,33 @@ public void initObjects() { SymTabDefinitionMill.reset(); SymTabDefinitionMill.init(); parser = SymTabDefinitionMill.parser(); - + ISymTabDefinitionGlobalScope globalScope = SymTabDefinitionMill.globalScope(); globalScope.clear(); globalScope.setSymbolPath(new MCPath(Paths.get(PATH))); BuiltInTypes.addBuiltInTypes(globalScope); - + printer = new SymTabDefinitionFullPrettyPrinter(new IndentPrinter(), true); symbols2Json = new SymTabDefinitionSymbols2Json(); coCoChecker = new SymTabDefinitionCoCoChecker(); } - + protected ASTCDCompilationUnit parse(String filePath) { - Optional astcdCompilationUnit = Optional.empty(); - try { - astcdCompilationUnit = parser.parse(getFilePath(filePath)); - } - catch (IOException e) { - Assertions.fail("Exception during parsing: " + e); - } + Optional astcdCompilationUnit = + parser.parse(getFilePath(filePath)); checkNullAndPresence(parser, astcdCompilationUnit); final ASTCDCompilationUnit node = astcdCompilationUnit.get(); - + // Trafos after parsing new CD4CodeAfterParseTrafo().transform(node); return node; } - + protected void prepareST(ASTCDCompilationUnit node) { // First pass for symbol table SymTabDefinitionMill.scopesGenitorDelegator().createFromAST(node); checkLogError(); - + // Second pass for symbol table SymTabDefinitionTraverser traverser = SymTabDefinitionMill.traverser(); traverser.add4SymTabDefinition(new SymTabDefinitionSymbolTableCompleter( @@ -76,5 +69,5 @@ protected void prepareST(ASTCDCompilationUnit node) { node.accept(traverser); checkLogError(); } - + } diff --git a/cdlang/src/test/java/de/monticore/testcdassociation/CDAssociationTestBasis.java b/cdlang/src/test/java/de/monticore/testcdassociation/CDAssociationTestBasis.java index 3d901f7bd..446c3bff7 100644 --- a/cdlang/src/test/java/de/monticore/testcdassociation/CDAssociationTestBasis.java +++ b/cdlang/src/test/java/de/monticore/testcdassociation/CDAssociationTestBasis.java @@ -16,7 +16,6 @@ import de.monticore.testcdassociation._symboltable.ITestCDAssociationArtifactScope; import de.monticore.testcdassociation._symboltable.ITestCDAssociationGlobalScope; import de.monticore.testcdassociation._visitor.TestCDAssociationTraverser; -import java.io.IOException; import java.nio.file.Paths; import java.util.Optional; import org.junit.jupiter.api.BeforeEach; @@ -41,14 +40,8 @@ public void initObjects() { } protected ASTCDCompilationUnit parseModel(String modelName) { - final Optional astcdCompilationUnit; - try { - astcdCompilationUnit = p.parseCDCompilationUnit(getFilePath(modelName)); - } - catch (IOException e) { - fail("Failed while parsing the model `" + getFilePath(modelName) + "': " + e.getMessage()); - return null; - } + final Optional astcdCompilationUnit = + p.parseCDCompilationUnit(getFilePath(modelName)); checkNullAndPresence(p, astcdCompilationUnit); return astcdCompilationUnit.get(); diff --git a/cdlang/src/test/java/de/monticore/testcdinterfaceandenum/CDInterfaceAndEnumTestBasis.java b/cdlang/src/test/java/de/monticore/testcdinterfaceandenum/CDInterfaceAndEnumTestBasis.java index 10e0e27ed..21d8e5b1f 100644 --- a/cdlang/src/test/java/de/monticore/testcdinterfaceandenum/CDInterfaceAndEnumTestBasis.java +++ b/cdlang/src/test/java/de/monticore/testcdinterfaceandenum/CDInterfaceAndEnumTestBasis.java @@ -15,7 +15,6 @@ import de.monticore.testcdinterfaceandenum._symboltable.ITestCDInterfaceAndEnumArtifactScope; import de.monticore.testcdinterfaceandenum._visitor.TestCDInterfaceAndEnumTraverser; import de.se_rwth.commons.logging.Log; -import java.io.IOException; import java.nio.file.Paths; import java.util.Optional; import org.junit.jupiter.api.BeforeEach; @@ -41,14 +40,8 @@ public void initObjects() { } protected ASTCDCompilationUnit parseModel(String modelName) { - final Optional astcdCompilationUnit; - try { - astcdCompilationUnit = p.parseCDCompilationUnit(Paths.get(modelName).toString()); - } - catch (IOException e) { - fail("Failed while parsing the model `" + getFilePath(modelName) + "': " + e.getMessage()); - return null; - } + final Optional astcdCompilationUnit = + p.parseCDCompilationUnit(Paths.get(modelName).toString()); checkNullAndPresence(p, astcdCompilationUnit); return astcdCompilationUnit.get(); diff --git a/cdlang/src/testFixtures/java/de/monticore/cd4code/CD4CodeTestBasis.java b/cdlang/src/testFixtures/java/de/monticore/cd4code/CD4CodeTestBasis.java index 8185547f5..deb120542 100644 --- a/cdlang/src/testFixtures/java/de/monticore/cd4code/CD4CodeTestBasis.java +++ b/cdlang/src/testFixtures/java/de/monticore/cd4code/CD4CodeTestBasis.java @@ -19,7 +19,6 @@ import de.monticore.prettyprint.IndentPrinter; import de.se_rwth.commons.logging.Log; import de.se_rwth.commons.logging.LogStub; -import java.io.IOException; import java.nio.file.Paths; import java.util.Optional; import org.junit.jupiter.api.BeforeEach; @@ -52,13 +51,8 @@ public void initObjects() { } protected ASTCDCompilationUnit parse(String filePath) { - Optional astcdCompilationUnit = Optional.empty(); - try { - astcdCompilationUnit = p.parse(getFilePath(filePath)); - } - catch (IOException e) { - fail("Exception during parsing"); - } + Optional astcdCompilationUnit = + p.parse(getFilePath(filePath)); checkNullAndPresence(p, astcdCompilationUnit); final ASTCDCompilationUnit node = astcdCompilationUnit.get(); diff --git a/cdmerge/src/main/java/de/monticore/cdmerge/util/CDMergeUtils.java b/cdmerge/src/main/java/de/monticore/cdmerge/util/CDMergeUtils.java index f804bdc95..637704fe0 100644 --- a/cdmerge/src/main/java/de/monticore/cdmerge/util/CDMergeUtils.java +++ b/cdmerge/src/main/java/de/monticore/cdmerge/util/CDMergeUtils.java @@ -398,14 +398,7 @@ public static Optional parseCDFile(String modelfile, boole public static Optional parseCDCompilationUnit(String model, boolean checkCoCos) { - Optional ast = Optional.empty(); - try { - ast = getParser().parse_StringCDCompilationUnit(model); - } - catch (IOException e) { - // Should never happen - Log.error("Unable to parse input model due to IO Exception!"); - } + Optional ast = getParser().parse_StringCDCompilationUnit(model); if (ast.isPresent()) { final ASTCDCompilationUnit cd = ast.get(); // Always ensure clean Symboltable for each model diff --git a/cdtool/src/main/java/de/monticore/CD4CodeTool.java b/cdtool/src/main/java/de/monticore/CD4CodeTool.java index 9393724e3..4ce6f464f 100644 --- a/cdtool/src/main/java/de/monticore/CD4CodeTool.java +++ b/cdtool/src/main/java/de/monticore/CD4CodeTool.java @@ -458,7 +458,7 @@ public ASTCDCompilationUnit parse(Reader reader) { } Log.error("0xCD0E0 Model could not be parsed."); } - catch (NullPointerException | java.io.IOException e) { + catch (NullPointerException e) { Log.error("0xCD0E1 Failed to parse from stdin", e); } // should never be reached (unless failquick is off) diff --git a/cdtool/src/test/java/de/monticore/CDDiffCLIToolTest.java b/cdtool/src/test/java/de/monticore/CDDiffCLIToolTest.java index 54703fb52..8d50b603a 100644 --- a/cdtool/src/test/java/de/monticore/CDDiffCLIToolTest.java +++ b/cdtool/src/test/java/de/monticore/CDDiffCLIToolTest.java @@ -158,7 +158,7 @@ public void testSemDiff() { } } } - catch (NullPointerException | IOException e) { + catch (NullPointerException e) { fail(e.getMessage()); } @@ -237,7 +237,7 @@ public void testDefaultSemDiff() { } } } - catch (NullPointerException | IOException e) { + catch (NullPointerException e) { fail(e.getMessage()); } @@ -435,7 +435,7 @@ public void testValidityOfSemDiffWithPackages() { } } } - catch (NullPointerException | IOException e) { + catch (NullPointerException e) { fail(e.getMessage()); } } diff --git a/cdtool/src/test/java/de/monticore/ExampleCommandTest.java b/cdtool/src/test/java/de/monticore/ExampleCommandTest.java index 9e9238adc..6eb49b9d6 100644 --- a/cdtool/src/test/java/de/monticore/ExampleCommandTest.java +++ b/cdtool/src/test/java/de/monticore/ExampleCommandTest.java @@ -30,14 +30,14 @@ import org.mockito.Mockito; public class ExampleCommandTest extends OutTestBasis { - + static final String outputPath = "target/generated/example-commands/"; - + @BeforeEach public void resetMill() { CD4CodeMill.reset(); } - + /** * Tests commands: java -jar MCCD.jar -i src/MyAddress.cd -s symbols/MyAddress.cdsym java -jar * MCCD.jar -i src/MyLife --path symbols -pp @@ -51,7 +51,7 @@ public void testExampleCommands1and3() { CD4CodeTool.main(new String[] { "-i", fileName, "--path", outputPath + "symbols", "-o", outputPath + "out", "--gen" }); } - + /** * Tests commands: java -jar MCCD.jar -i src/MyAddress.cd -s symbols/MyAddress.cdsym java -jar * MCCd.jar -i src/MyLife --path symbols -o out --gen @@ -65,7 +65,7 @@ public void testExampleCommands1and2() { CD4CodeTool.main(new String[] { "-i", fileName, "--path", outputPath + "symbols", "-pp" }); assertTrue(getErr().isEmpty(), getErr()); } - + /** Step1: Getting started for command: java -jar MCCD.jar -i src/MyExample.cd */ @Test public void testGettingStartedExample() { @@ -73,7 +73,7 @@ public void testGettingStartedExample() { CD4CodeTool.main(new String[] { "-i", fileName }); assertTrue(getErr().isEmpty(), getErr()); } - + /** Step2: Pretty printing for command: java -jar MCCD.jar -i src/MyExample.cd -pp */ @Test public void testPrettyPrintingExample1() { @@ -81,7 +81,7 @@ public void testPrettyPrintingExample1() { CD4CodeTool.main(new String[] { "-i", fileName, "-pp" }); assertTrue(getErr().isEmpty(), getErr()); } - + /** * Step2: Pretty printing for command: java -jar MCCD.jar -i src/MyExample.cd -pp * target/PPExample.cd @@ -95,24 +95,24 @@ public void testPrettyPrintingExample2() { outputPath + "MyExample.cd"), false)); assertTrue(getErr().isEmpty(), getErr()); } - + /** Step3: storing symbols for command: java -jar MCCD.jar -i src/MyExample.cd -s */ @Test public void testStoringSymbolsExample1() { String fileName = "src/test/resources/doc/MyExample.cd"; - + // copy the CD into test-directory CD4CodeTool.main(new String[] { "-i", fileName, "-pp", outputPath + "MyExample.cd" }); fileName = outputPath + "MyExample.cd"; - + // execute the command at test CD4CodeTool.main(new String[] { "-i", fileName, "-s" }); - + // test if the result exists and no errors occur assertTrue(Files.exists(Paths.get(outputPath + "MyExample.cdsym"))); assertTrue(getErr().isEmpty(), getErr()); } - + /** * Step3: storing symbols for command: java -jar MCCD.jar -i src/MyExample.cd -s * symbols/MyExample.cdsym @@ -120,15 +120,15 @@ public void testStoringSymbolsExample1() { @Test public void testStoringSymbolsExample2() { String fileName = "src/test/resources/doc/MyExample.cd"; - + // execute the command at test CD4CodeTool.main(new String[] { "-i", fileName, "-s", outputPath + "symbols/MyExample.cdsym" }); - + // test if the result exists and no errors occur assertTrue(Files.exists(Paths.get(outputPath + "symbols/MyExample.cdsym"))); assertTrue(getErr().isEmpty(), getErr()); } - + /** * Step 4: Adding FieldSymbols corresponding to association roles for command: java -jar MCCD.jar * -i src/MyExample.cd -s symbols/MyExample.cdsym --fieldfromrole all @@ -141,7 +141,7 @@ public void testAddingFieldSymbolsExample1() { assertTrue(Files.exists(Paths.get(outputPath + "symbols/MyExample.cdsym"))); assertTrue(getErr().isEmpty(), getErr()); } - + /** * Step 4: Adding FieldSymbols corresponding to association roles for command: java -jar MCCD.jar * -i src/MyExample.cd -s symbols/MyExample.cdsym --fieldfromrole navigable @@ -154,7 +154,7 @@ public void testAddingFieldSymbolsExample2() { assertTrue(Files.exists(Paths.get(outputPath + "symbols/MyExample.cdsym"))); assertTrue(getErr().isEmpty(), getErr()); } - + /** * Step 5: Importing Symbol Files Using a Path for command: java -jar MCCD.jar -i * src/monticore/MyLife.cd @@ -170,16 +170,16 @@ public void testStoringSymbolsPerPathsExample1() { CD4CodeMill.init(); return null; }).when(tool).init(); - + // When tool.run(new String[] { "-i", fileName }); - + // Then assertEquals(3, Log.getFindingsCount(), "Actual findings: " + Log.getFindings().toString()); assertEquals("0xA0324 Cannot find symbol Address", Log.getFindings().get(0).getMsg()); Log.clearFindings(); } - + /** * Step 5: Importing Symbol Files Using a Path for commands: java -jar MCCD.jar -i * src/MyAddress.cd -s symbols/MyAddress.cdsym java -jar MCCD.jar -i src/monticore/MyLife.cd @@ -196,7 +196,7 @@ public void testStoringSymbolsPerPathsExample2() { + "symbols" }); assertTrue(getErr().isEmpty(), getErr()); } - + /** * Step 7: Generating .java-Files for command: java -jar MCCD.jar -i src/MyExample.cd --gen -o out */ @@ -209,7 +209,7 @@ public void testGenerateJavaExample2() { outputPath + "out/" + retrieveRelativeGenPath(c, cd) + ".java")))); assertTrue(getErr().isEmpty(), getErr()); } - + /** * Step 7: Generating .java-Files for command: java -jar MCCD.jar -i src/MyCompany.cd -o out --gen * --fieldfromrole navigable @@ -225,7 +225,7 @@ public void testGenerateJavaExample3() { outputPath + "out/" + retrieveRelativeGenPath(c, cd) + ".java")))); assertTrue(getErr().isEmpty(), getErr()); } - + /** * Step 8: The Semantic Difference of Two Class Diagrams for command: java -jar MCCD.jar -i * src/MyEmployees1.cd --semdiff scr/MyEmployees2.cd @@ -237,7 +237,7 @@ public void testTwoCDsComparisonExample1() { "src/test/resources/doc/MyEmployees2.cd" }); assertEquals(0, Log.getErrorCount()); } - + /** * Step 8: The Semantic Difference of Two Class Diagrams for command: java -jar MCCD.jar -i * src/MyEmployees1.cd --semdiff src/MyEmployees2.cd --difflimit 20 -o out @@ -248,17 +248,17 @@ public void testTwoCDsComparisonExample2() { final String cd2 = "src/test/resources/doc/MyEmployees2.cd"; CD4CodeTool.main(new String[] { "-i", cd1, "--semdiff", cd2, "--difflimit", "20", "-o", outputPath + "out" }); - + try { ASTCDCompilationUnit ast1 = Objects.requireNonNull(CDDiffUtil.loadCD(cd1)).deepClone(); ASTCDCompilationUnit ast2 = Objects.requireNonNull(CDDiffUtil.loadCD(cd2)).deepClone(); - + // then corresponding .od files are generated File[] odFiles = Paths.get(outputPath + "out").toFile().listFiles(); assertNotNull(odFiles); - + // now check for each OD if it is a diff-witness, i.e., in sem(cd1)\sem(cd2) - + for (File odFile : odFiles) { if (odFile.getName().endsWith(".od")) { assertTrue(new OD2CDMatcher().checkIfDiffWitness(CDSemantics.SIMPLE_CLOSED_WORLD, ast1, @@ -266,12 +266,12 @@ public void testTwoCDsComparisonExample2() { } } } - catch (NullPointerException | IOException e) { + catch (NullPointerException e) { fail(e.getMessage()); } assertEquals(0, Log.getErrorCount()); } - + /** * Step 9: Merging Two Class Diagram for command: java -jar MCCD.jar -i src/MyEmployees2.cd * --merge src/MyWorkplace.cd -o out -pp @@ -283,7 +283,7 @@ public void testTwoCDsMergeExample1() { "src/test/resources/doc/Management.cd", "-pp" }); assertTrue(getErr().isEmpty(), getErr()); } - + /** * Step 9: Merging Two Class Diagram for command: java -jar MCCD.jar -i src/MyEmployees2.cd * --merge src/MyWorkplace.cd -o out -pp MyJob.cd @@ -297,33 +297,26 @@ public void testTwoCDsMergeExample2() { assertTrue(Files.exists(Paths.get(outputPath + "out/UniversitySystem.cd"))); assertTrue(getErr().isEmpty(), getErr()); } - + protected void resetGlobalScope() { CD4CodeMill.globalScope().clear(); CD4CodeMill.globalScope().init(); BuiltInTypes.addBuiltInTypes(CD4CodeMill.globalScope()); } - + protected ASTCDCompilationUnit loadAndCheckCD(String filePath) { - try { - Optional optCD = CD4CodeMill.parser().parse(filePath); - assertTrue(optCD.isPresent()); - new CD4CodeAfterParseTrafo().transform(optCD.get()); - new CD4CodeDirectCompositionTrafo().transform(optCD.get()); - ICD4CodeArtifactScope as = CD4CodeMill.scopesGenitorDelegator().createFromAST(optCD.get()); - as.addImports(new ImportStatement("java.lang", true)); - CD4CodeSymbolTableCompleter c = new CD4CodeSymbolTableCompleter(optCD.get()); - optCD.get().accept(c.getTraverser()); - new CD4CodeCoCosDelegator().getCheckerForAllCoCos().checkAll(optCD.get()); - return optCD.get(); - - } - catch (IOException e) { - fail(e.getMessage()); - } - return null; + Optional optCD = CD4CodeMill.parser().parse(filePath); + assertTrue(optCD.isPresent()); + new CD4CodeAfterParseTrafo().transform(optCD.get()); + new CD4CodeDirectCompositionTrafo().transform(optCD.get()); + ICD4CodeArtifactScope as = CD4CodeMill.scopesGenitorDelegator().createFromAST(optCD.get()); + as.addImports(new ImportStatement("java.lang", true)); + CD4CodeSymbolTableCompleter c = new CD4CodeSymbolTableCompleter(optCD.get()); + optCD.get().accept(c.getTraverser()); + new CD4CodeCoCosDelegator().getCheckerForAllCoCos().checkAll(optCD.get()); + return optCD.get(); } - + protected String retrieveRelativeGenPath(ASTCDClass c, ASTCDCompilationUnit cd) { String res = ""; if (cd.isPresentMCPackageDeclaration()) { @@ -334,5 +327,5 @@ protected String retrieveRelativeGenPath(ASTCDClass c, ASTCDCompilationUnit cd) res = res.replaceAll("\\.", "/"); return res; } - + }