package com.kboyarshinov.activityscreen.processor.args;
import com.kboyarshinov.activityscreen.processor.Argument;
import com.squareup.javapoet.ArrayTypeName;
import com.squareup.javapoet.ClassName;
import com.squareup.javapoet.MethodSpec;
import com.squareup.javapoet.TypeName;
/**
* @author Kirill Boyarshinov
*/
public class ParcelableArrayArgument extends Argument {
public ParcelableArrayArgument(String name, String key, String operation, TypeName typeName) {
super(name, key, operation, operation, typeName);
}
@Override
public void generateGetMethod(MethodSpec.Builder builder) {
String name = name();
builder.addStatement("$T[] $LValue = bundle.get$L($S)", ClassName.get("android.os", "Parcelable"), name, operationGet(), key());
builder.addStatement("activity.$L = new $T[$LValue.length]", name, ((ArrayTypeName) typeName()).componentType, name);
builder.addStatement("System.arraycopy($LValue, 0, activity.$L, 0, $LValue.length)", name, name, name);
}
}