Package com.squareup.javapoet
Class CodeBlock
- java.lang.Object
-
- com.squareup.javapoet.CodeBlock
-
public final class CodeBlock extends java.lang.Object
A fragment of a .java file, potentially containing declarations, statements, and documentation. Code blocks are not necessarily well-formed Java code, and are not validated. This class assumes javac will check correctness later!Code blocks support placeholders like
Format
. WhereString.format(java.lang.String, java.lang.Object...)
uses percent%
to reference target values, this class uses dollar sign$
and has its own set of permitted placeholders:$L
emits a literal value with no escaping. Arguments for literals may be strings, primitives, type declarations, annotations and even other code blocks.$N
emits a name, using name collision avoidance where necessary. Arguments for names may be strings (actually any character sequence), parameters, fields, methods, and types.$S
escapes the value as a string, wraps it with double quotes, and emits that. For example,6" sandwich
is emitted"6\" sandwich"
.$T
emits a type reference. Types will be imported if possible. Arguments for types may be classes, ,* type mirrors, and elements.$$
emits a dollar sign.$W
emits a space or a newline, depending on its position on the line. This prefers to wrap lines before 100 columns.$Z
acts as a zero-width space. This prefers to wrap lines before 100 columns.$>
increases the indentation level.$<
decreases the indentation level.$[
begins a statement. For multiline statements, every line after the first line is double-indented.$]
ends a statement.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
CodeBlock.Builder
private static class
CodeBlock.CodeBlockJoiner
-
Field Summary
Fields Modifier and Type Field Description (package private) java.util.List<java.lang.Object>
args
(package private) java.util.List<java.lang.String>
formatParts
A heterogeneous list containing string literals and value placeholders.private static java.util.regex.Pattern
LOWERCASE
private static java.util.regex.Pattern
NAMED_ARGUMENT
-
Constructor Summary
Constructors Modifier Constructor Description private
CodeBlock(CodeBlock.Builder builder)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static CodeBlock.Builder
builder()
boolean
equals(java.lang.Object o)
int
hashCode()
boolean
isEmpty()
static CodeBlock
join(java.lang.Iterable<CodeBlock> codeBlocks, java.lang.String separator)
static java.util.stream.Collector<CodeBlock,?,CodeBlock>
joining(java.lang.String separator)
static java.util.stream.Collector<CodeBlock,?,CodeBlock>
joining(java.lang.String separator, java.lang.String prefix, java.lang.String suffix)
static CodeBlock
of(java.lang.String format, java.lang.Object... args)
CodeBlock.Builder
toBuilder()
java.lang.String
toString()
-
-
-
Field Detail
-
NAMED_ARGUMENT
private static final java.util.regex.Pattern NAMED_ARGUMENT
-
LOWERCASE
private static final java.util.regex.Pattern LOWERCASE
-
formatParts
final java.util.List<java.lang.String> formatParts
A heterogeneous list containing string literals and value placeholders.
-
args
final java.util.List<java.lang.Object> args
-
-
Constructor Detail
-
CodeBlock
private CodeBlock(CodeBlock.Builder builder)
-
-
Method Detail
-
isEmpty
public boolean isEmpty()
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
of
public static CodeBlock of(java.lang.String format, java.lang.Object... args)
-
join
public static CodeBlock join(java.lang.Iterable<CodeBlock> codeBlocks, java.lang.String separator)
JoinscodeBlocks
into a singleCodeBlock
, each separated byseparator
. For example, joiningString s
,Object o
andint i
using", "
would produceString s, Object o, int i
.
-
joining
public static java.util.stream.Collector<CodeBlock,?,CodeBlock> joining(java.lang.String separator)
ACollector
implementation that joinsCodeBlock
instances together into one separated byseparator
. For example, joiningString s
,Object o
andint i
using", "
would produceString s, Object o, int i
.
-
joining
public static java.util.stream.Collector<CodeBlock,?,CodeBlock> joining(java.lang.String separator, java.lang.String prefix, java.lang.String suffix)
ACollector
implementation that joinsCodeBlock
instances together into one separated byseparator
. For example, joiningString s
,Object o
andint i
using", "
would produceString s, Object o, int i
.
-
builder
public static CodeBlock.Builder builder()
-
toBuilder
public CodeBlock.Builder toBuilder()
-
-