private List<CodeBlock> parameterInfoToCodeBlock(int index, ParameterInfo parameterInfo) { FieldInfo fieldInfo = parameterInfo.toFieldInfo(); List<CodeBlock> code = new ArrayList<>(); Optional<CodeBlock> maybeNullCheck = fieldInfo.writeNullCheck(); if (maybeNullCheck.isPresent()) { code.add(maybeNullCheck.get()); } code.add(assignToField(index, parameterInfo)); return code; }
public String toSimpleName() { return name(); }
public Set<ImportInfo> toImportInfo() { return simpleTypeInfo().toImportInfo(); }
private CodeBlock body(MethodInfo input) { FieldInfo fieldInfo = input.toFieldInfo(); CodeBlock.Builder code = CodeBlock.builder(); Optional<CodeBlock> maybeNullCheck = fieldInfo.writeNullCheck(); if (maybeNullCheck.isPresent()) { code.add(maybeNullCheck.get()); } code.add(fieldInfo.writeAssignToField()); return code .addStatement("return this") .build(); }
@Override public FieldInfo build() { return FieldInfo.builder() .simpleTypeInfo(simpleTypeInfo) .name(name) .build(); }
@Override public boolean isEqual(FieldInfo o) { return Testables.isEqualHelper() .equal(simpleTypeInfo, o.simpleTypeInfo()) .equal(name, o.name()) .result(); }
public FieldInfo toFieldInfo() { return FieldInfo.builder() .simpleTypeInfo(returnTypeInfo()) .name(fieldName()) .build(); }
public Optional<CodeBlock> writeNullCheck() { Optional<CodeBlock> res = Optional.absent(); if (!simpleTypeInfo().isPrimitive()) { CodeBlock nullCheck = CodeBlock.builder() .beginControlFlow("if ($L == null)", name()) .addStatement("throw new $T()", NullPointerException.class) .endControlFlow() .build(); res = Optional.of(nullCheck); } return res; }
public FieldInfo toFieldInfo() { return FieldInfo.builder() .simpleTypeInfo(simpleTypeInfo()) .name(name()) .build(); }
@Override public List<CodeBlock> apply(ParameterInfo input) { FieldInfo fieldInfo = input.toFieldInfo(); List<CodeBlock> code = newArrayList(); Optional<CodeBlock> maybeNullCheck = fieldInfo.writeNullCheck(); if (maybeNullCheck.isPresent()) { code.add(maybeNullCheck.get()); } code.add(assignToField(input)); return code; }