From ff130603bb864f00355c9aea1790f03133e8c9d3 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 12 Jun 2026 17:18:31 +0100 Subject: Extract methods variable --- .../JavaPreciselyMatchersGenerator.java | 180 +++++++++++---------- 1 file changed, 91 insertions(+), 89 deletions(-) (limited to 'src') diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java index 1a404aa..38cd938 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java @@ -96,104 +96,106 @@ public class JavaPreciselyMatchersGenerator implements Generator { matcherTypeName ); - return new JavaClassDeclaration( - matcherTypeName, - List.of( - JavaTypeRef.topLevelGeneric( - PRECISELY_PACKAGE_NAME, - "Matcher", - List.of(JavaTypeArg.invariant(JavaTypeRef.OBJECT)) - ) - ), - List.of( - new JavaMethodDeclaration( - "is" + lowerCamelCaseToUpperCamelCase(structDefinition.name()), - JavaVisibility.PUBLIC, - JavaMethodKind.STATIC, - javaMatcherTypeRef, - List.of(), - new JavaBlock(List.of( - new JavaReturn(new JavaNewExpression( - javaMatcherTypeRef, - List.of( - new JavaStaticMethodCall(JavaTypeRef.LIST, "of", List.of()) - ) - )) + var methods = new ArrayList(List.of( + new JavaMethodDeclaration( + "is" + lowerCamelCaseToUpperCamelCase(structDefinition.name()), + JavaVisibility.PUBLIC, + JavaMethodKind.STATIC, + javaMatcherTypeRef, + List.of(), + new JavaBlock(List.of( + new JavaReturn(new JavaNewExpression( + javaMatcherTypeRef, + List.of( + new JavaStaticMethodCall(JavaTypeRef.LIST, "of", List.of()) + ) )) + )) + ), + new JavaFieldDeclaration( + JavaVisibility.PRIVATE, + JavaTypeRef.list(matcherRef(JavaTypeArg.superType(javaStructTypeRef))), + "submatchers" + ), + new JavaConstructorDeclaration( + matcherTypeName, + JavaVisibility.PRIVATE, + List.of( + new JavaParam( + JavaTypeRef.list(matcherRef(JavaTypeArg.superType(javaStructTypeRef))), + "submatchers" + ) ), - new JavaFieldDeclaration( - JavaVisibility.PRIVATE, - JavaTypeRef.list(matcherRef(JavaTypeArg.superType(javaStructTypeRef))), - "submatchers" - ), - new JavaConstructorDeclaration( - matcherTypeName, - JavaVisibility.PRIVATE, - List.of( - new JavaParam( - JavaTypeRef.list(matcherRef(JavaTypeArg.superType(javaStructTypeRef))), - "submatchers" + new JavaBlock(List.of( + new JavaExpressionStatement( + new JavaAssignment( + new JavaFieldAccess(new JavaRef("this"), "submatchers"), + new JavaRef("submatchers") ) - ), - new JavaBlock(List.of( - new JavaExpressionStatement( - new JavaAssignment( - new JavaFieldAccess(new JavaRef("this"), "submatchers"), - new JavaRef("submatchers") - ) + ) + )) + ), + new JavaMethodDeclaration( + "match", + JavaVisibility.PUBLIC, + JavaMethodKind.INSTANCE, + MATCH_RESULT_REF, + List.of(new JavaParam(JavaTypeRef.OBJECT, "actual")), + new JavaBlock(List.of( + new JavaReturn( + new JavaMethodCall( + new JavaMethodCall(new JavaRef("this"), "toMatcher", List.of()), + "match", + List.of(new JavaRef("actual")) ) - )) - ), - new JavaMethodDeclaration( - "match", - JavaVisibility.PUBLIC, - JavaMethodKind.INSTANCE, - MATCH_RESULT_REF, - List.of(new JavaParam(JavaTypeRef.OBJECT, "actual")), - new JavaBlock(List.of( - new JavaReturn( - new JavaMethodCall( - new JavaMethodCall(new JavaRef("this"), "toMatcher", List.of()), - "match", - List.of(new JavaRef("actual")) - ) + ) + )) + ), + new JavaMethodDeclaration( + "describe", + JavaVisibility.PUBLIC, + JavaMethodKind.INSTANCE, + JavaTypeRef.topLevel(PRECISELY_PACKAGE_NAME, "TextTree"), + List.of(), + new JavaBlock(List.of( + new JavaReturn( + new JavaMethodCall( + new JavaMethodCall(new JavaRef("this"), "toMatcher", List.of()), + "describe", + List.of() ) - )) - ), - new JavaMethodDeclaration( - "describe", - JavaVisibility.PUBLIC, - JavaMethodKind.INSTANCE, - JavaTypeRef.topLevel(PRECISELY_PACKAGE_NAME, "TextTree"), - List.of(), - new JavaBlock(List.of( - new JavaReturn( - new JavaMethodCall( - new JavaMethodCall(new JavaRef("this"), "toMatcher", List.of()), - "describe", - List.of() - ) + ) + )) + ), + new JavaMethodDeclaration( + "toMatcher", + JavaVisibility.PRIVATE, + JavaMethodKind.INSTANCE, + matcherRef(JavaTypeRef.OBJECT), + List.of(), + new JavaBlock(List.of( + new JavaReturn(new JavaStaticMethodCall( + JavaTypeRef.topLevel(PRECISELY_PACKAGE_NAME, "Matchers"), + "instanceOf", + List.of( + new JavaStaticFieldAccess(javaStructTypeRef, "class"), + new JavaFieldAccess(new JavaRef("this"), "submatchers") ) )) - ), - new JavaMethodDeclaration( - "toMatcher", - JavaVisibility.PRIVATE, - JavaMethodKind.INSTANCE, - matcherRef(JavaTypeRef.OBJECT), - List.of(), - new JavaBlock(List.of( - new JavaReturn(new JavaStaticMethodCall( - JavaTypeRef.topLevel(PRECISELY_PACKAGE_NAME, "Matchers"), - "instanceOf", - List.of( - new JavaStaticFieldAccess(javaStructTypeRef, "class"), - new JavaFieldAccess(new JavaRef("this"), "submatchers") - ) - )) - )) + )) + ) + )); + + return new JavaClassDeclaration( + matcherTypeName, + List.of( + JavaTypeRef.topLevelGeneric( + PRECISELY_PACKAGE_NAME, + "Matcher", + List.of(JavaTypeArg.invariant(JavaTypeRef.OBJECT)) ) ), + methods, JavaCustomArea.type(javaMatcherTypeRef, "body"), DocComment.EMPTY ); -- cgit v1.2.3