@Override List<ParameterInfo> parameterInfoList() { return constructorInfo.parameterInfoList(); }
@AutoFunctional public Boolean hasParameterInfoListSize(int size) { return parameterInfoList().size() == size; }
public WayIterable<ParameterInfo> parameterInfoIterable() { return WayIterables.from(parameterInfoList()); }
private CodeBlock buildReturnStatement(Naming naming, int index) { String parameterString = constructorInfo.parameterInfoList().stream() .map(parameterInfo -> constructorPrefix(index, parameterInfo.name())) .collect(Collectors.joining(", ")); String customString = customFieldList.stream() .map(BuilderCustomField::name) .collect(Collectors.joining(", ")); return CodeBlock.builder() .addStatement("return new $T($L$Lthis)", naming.pojoUnboundedTypeName(), customFieldList.isEmpty() ? customString : customString + ", ", parameterString.isEmpty() ? parameterString : parameterString + ", ") .build(); }
@Override public boolean isEqual(ConstructorInfo that) { return Testables.isEqualHelper() .equal(accessInfo(), that.accessInfo()) .equal(parameterInfoList(), that.parameterInfoList()) .result(); }
public ConstructorInfoConstructorWriter addParameterList() { List<ParameterSpec> thatParameterSpecList = WayIterables.from(constructorInfo.parameterInfoList()) .transform(ParameterInfoToParameterSpec.get()) .toImmutableList(); parameterSpecLIst.addAll(thatParameterSpecList); return this; }
@AutoFunctional public Set<ImportInfo> toImportInfoSet() { return WayIterables.from(parameterInfoList()) .transformAndConcat(ParameterInfoToImportInfo.get()) .toImmutableSet(); }
@Override public MustacheObject toMustache() { List<? extends ParameterInfo> parameterInfoList = parameterInfoList(); List<IndexedParameterInfo> parameters = WayIterables.from(parameterInfoList) .transform(ParameterInfoToIndexedParameterInfo.get(parameterInfoList.size())) .toImmutableList(); return Mustaches.toMustacheHelper() .add("access", accessInfo()) .add("parameters", parameters) .add("parametersIsEmpty", parameters.isEmpty()) .toMustache(); }
private CodeBlock returnStatement(ConstructorInfo input) { List<ParameterInfo> parameterInfoList = input.parameterInfoList(); ConstructorInfoCodeWriter writer = input.statementWriter() .add("return new $T(") .add("$L").forEachParameter(", ") .add(", ").when(parameterInfoList.size() > 0) .add("this)") .set(typeNameUnbounded(className())); for (ParameterInfo parameterInfo : parameterInfoList) { writer.set(constructorPrefix(index, parameterInfo.name())); } return writer.write(); }