_elvis = Collections.<ResolvedParameter>unmodifiableList(CollectionLiterals.<ResolvedParameter>newArrayList());
}
final Iterable<? extends ResolvedParameter> superParameters = _elvis;
final Procedure1<ResolvedParameter> _function = new Procedure1<ResolvedParameter>() {
public void apply(final ResolvedParameter p) {
ParameterDeclaration _declaration = p.getDeclaration();
String _simpleName = _declaration.getSimpleName();
TypeReference _resolvedType = p.getResolvedType();
it.addParameter(_simpleName, _resolvedType);
}
};
IterableExtensions.forEach(superParameters, _function);
final HashMap<MutableFieldDeclaration, MutableParameterDeclaration> fieldToParameter = CollectionLiterals.<MutableFieldDeclaration, MutableParameterDeclaration>newHashMap();
MutableTypeDeclaration _declaringType_4 = it.getDeclaringType();
Iterable<? extends MutableFieldDeclaration> _finalFields = this.getFinalFields(_declaringType_4);
final Procedure1<MutableFieldDeclaration> _function_1 = new Procedure1<MutableFieldDeclaration>() {
public void apply(final MutableFieldDeclaration p) {
p.markAsInitializedBy(it);
String _simpleName = p.getSimpleName();
TypeReference _type = p.getType();
TypeReference _orObject = Util.this.orObject(_type);
final MutableParameterDeclaration param = it.addParameter(_simpleName, _orObject);
fieldToParameter.put(p, param);
}
};
IterableExtensions.forEach(_finalFields, _function_1);
StringConcatenationClient _client = new StringConcatenationClient() {
@Override
protected void appendTo(StringConcatenationClient.TargetStringConcatenation _builder) {
_builder.append("super(");
final Function1<ResolvedParameter, String> _function = new Function1<ResolvedParameter, String>() {
public String apply(final ResolvedParameter it) {
ParameterDeclaration _declaration = it.getDeclaration();
return _declaration.getSimpleName();
}
};
String _join = IterableExtensions.join(superParameters, ", ", _function);
_builder.append(_join, "");
_builder.append(");");