クラス LordOfTheStrings

java.lang.ObjectSE
org.springframework.data.javapoet.LordOfTheStrings

public abstract class LordOfTheStrings extends ObjectSE
流れるような API を用いて Java コードブロックを作成するためのユーティリティクラスです。このクラスは、JavaPoet 上でメソッド呼び出し、return 文、複雑なコード構造の作成を簡素化する、構造化された拡張可能なプログラミングモデルを提供します。コード生成シナリオにおいて、条件付きネストを削減し、可読性を向上させるように設計されています。

このクラスは、動的なコードブロックの構築を容易にするために、LordOfTheStrings.CodeBlockBuilderLordOfTheStrings.InvocationBuilderLordOfTheStrings.TypedReturnBuilder などの追加の抽象化を導入します。これらの抽象化により、開発者は条件付きロジック、引数の連結、制御フローを備えたコードを宣言的かつ直感的に作成できます。

このクラスはフレームワーク内での内部使用を目的としており、アプリケーション開発者が直接使用するためのものではありません。

導入:
4.0
作成者:
Mark Paluch
  • メソッドの詳細

    • builder

      public static LordOfTheStrings.CodeBlockBuilder builder()
      新しい CodeBlockBuilder インスタンスを作成します。
      戻り値:
      新しい CodeBlockBuilder
    • builder

      public static LordOfTheStrings.CodeBlockBuilder builder(org.springframework.javapoet.CodeBlock.Builder builder)
      指定された CodeBlock.Builder を使用して新しい CodeBlockBuilder インスタンスを作成します。
      パラメーター:
      builder - 使用する CodeBlock.Builder
      戻り値:
      新しい CodeBlockBuilder
    • builder

      public static LordOfTheStrings.CodeBlockBuilder builder(StringSE format, @Nullable ObjectSE... args)
      初期フォーマットと引数を使用して新しい CodeBlockBuilder インスタンスを作成します。
      パラメーター:
      format - フォーマット文字列。
      args - フォーマット文字列の引数。
      戻り値:
      新しく初期化された CodeBlockBuilder
    • invoke

      public static LordOfTheStrings.InvocationBuilder invoke(StringSE methodCall, ObjectSE... arguments)
      メソッド呼び出しコードを構築するための LordOfTheStrings.InvocationBuilder を作成します。

      指定された methodCall には、Java Poet で定義されているフォーマット指定子を含めることができます。さらに、引数を指定する際にメソッド引数を展開するために使用されるフォーマット指定子(末尾)を含める必要があります。例:

       Sort sort = …;
       MethodCallBuilder method = PoetrySlam.method("$T.by($L)", Sort.class);
      
       method.arguments(sort, (order, builder) -> {
              builder.add("$T.asc($S)", Sort.Order.class, order.getProperty());
       });
      
       method.build();
       
      LordOfTheStrings.InvocationBuilder.argument(java.lang.String) メソッドまたは LordOfTheStrings.InvocationBuilder.arguments メソッドを呼び出す際には、引数の存在が検出されます。空の CodeBlock メソッドまたは IterableSE メソッドを指定すると、この静的メソッドを呼び出す際の引数処理が有効化され、処理が容易になります。引数を追加しない場合は、methodCall メソッドの引数プレースホルダを省略する必要があることに注意してください。
      パラメーター:
      methodCall - 呼び出し (またはメソッド呼び出し) のフォーマット文字列。
      arguments - メソッド呼び出しの引数。
      戻り値:
      新しい MethodCallBuilder
    • returning

      public static LordOfTheStrings.TypedReturnBuilder returning(ResolvableType returnType)
      指定された戻り値の型を対象とする return 文のビルダーを作成します。LordOfTheStrings.ReturnBuilderSupport に指定する形式には return キーワードを含めないでください。これは、結果として得られる CodeBlock の構築時に使用されます。例:
       Method method = …;
       CodeBlock block = LordOfTheStrings.returning(ResolvableType.forMethodReturnType(method))
           .whenBoxedLong("$T.valueOf(1)", Long.class)
           .whenLong("1L")
           .otherwise("0L")
           .build();
       
      パラメーター:
      returnType - メソッドの戻り値の型。
      戻り値:
      新しい ReturnStatementBuilder
    • returning

      public static LordOfTheStrings.TypedReturnBuilder returning(ClassSE<?> returnType)
      指定された戻り値の型を対象とする return 文のビルダーを作成します。LordOfTheStrings.ReturnBuilderSupport に指定する形式には return キーワードを含めないでください。これは、結果として得られる CodeBlock の構築時に使用されます。例:
       Method method = …;
       CodeBlock block = LordOfTheStrings.returning(method.getReturnType())
           .whenBoxedLong("$T.valueOf(1)", Long.class)
           .whenLong("1L")
           .otherwise("0L")
           .build();
       
      パラメーター:
      returnType - メソッドの戻り値の型。
      戻り値:
      新しい ReturnStatementBuilder