class CodeBlockJoiner {

		private final String delimiter;

		private final CodeBlock.Builder builder;

		private boolean first = true;

		CodeBlockJoiner(String delimiter, CodeBlock.Builder builder) {
			this.delimiter = delimiter;
			this.builder = builder;
		}

		CodeBlockJoiner add(CodeBlock codeBlock) {
			if (!this.first) {
				this.builder.add(this.delimiter);
			}
			this.first = false;

			this.builder.add(codeBlock);
			return this;
		}

		CodeBlock.CodeBlockJoiner merge(CodeBlockJoiner other) {<FILL_FUNCTION_BODY>}

		CodeBlock join() {
			return this.builder.build();
		}

	}

			CodeBlock otherBlock = other.builder.build();
			if (!otherBlock.parts.isEmpty()) {
				add(otherBlock);
			}
			return this;
		
<no_super_class>