blob: fade272204a550e36e83d2ee40a59816687b941c [file] [log] [blame]
package org.jetbrains.protocolReader;
import java.lang.reflect.Method;
import java.util.Collections;
import java.util.List;
class ReadDelegate {
private static final List<String> STATIC_METHOD_PARAM_NAME_LIST = Collections.singletonList(Util.READER_NAME);
private final TypeHandler<?> typeHandler;
private final boolean isList;
ReadDelegate(TypeHandler<?> typeHandler, boolean isList) {
this.typeHandler = typeHandler;
this.isList = isList;
}
void write(ClassScope scope, Method method, TextOutput out) {
MethodHandler.writeMethodDeclarationJava(out, method, STATIC_METHOD_PARAM_NAME_LIST);
out.openBlock();
out.append("return ");
if (isList) {
out.append("readObjectArray(").append(Util.READER_NAME).append(", null, new ").append(scope.requireFactoryGenerationAndGetName(typeHandler)).append(Util.TYPE_FACTORY_NAME_POSTFIX).append("()").append(", false)");
}
else {
typeHandler.writeInstantiateCode(scope, out);
out.append("(").append(Util.READER_NAME).append(')');
}
out.semi();
out.closeBlock();
}
}