diff options
author | 2018-06-29 14:08:49 -0700 | |
---|---|---|
committer | 2018-06-29 14:10:13 -0700 | |
commit | 38fbbf20419ce76152a1c3d024a5fedfef47403a (patch) | |
tree | 8a4fbde26dcef96d2b175d651295fb3ae8eaa61c /src/main/java/com/google/devtools/build/lib/skyframe/serialization | |
parent | 02f480420fc6d786ee7263dadbe9eb8d501f117e (diff) |
Deletes AutoCodec.PUBLIC_FIELDS strategy. Superseded by DynamicCodec.
PiperOrigin-RevId: 202704472
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/serialization')
2 files changed, 0 insertions, 67 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java index 840e7dfaef..fd8635d45f 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java @@ -64,13 +64,6 @@ public @interface AutoCodec { */ INSTANTIATOR, /** - * Uses the public fields to infer serialization code. - * - * <p>Serializes each public field. Calls the no-arg constructor of the class to instantiate an - * instance for deserialization. - */ - PUBLIC_FIELDS, - /** * For use with {@link com.google.auto.value.AutoValue} classes with an {@link * com.google.auto.value.AutoValue.Builder} static nested Builder class: uses the builder when * deserializing. diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodecProcessor.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodecProcessor.java index 41909261a9..b50681db91 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodecProcessor.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodecProcessor.java @@ -108,9 +108,6 @@ public class AutoCodecProcessor extends AbstractProcessor { case INSTANTIATOR: codecClassBuilder = buildClassWithInstantiatorStrategy(encodedType, annotation); break; - case PUBLIC_FIELDS: - codecClassBuilder = buildClassWithPublicFieldsStrategy(encodedType, annotation); - break; case AUTO_VALUE_BUILDER: codecClassBuilder = buildClassWithAutoValueBuilderStrategy(encodedType, annotation); break; @@ -632,45 +629,6 @@ public class AutoCodecProcessor extends AbstractProcessor { return serializeBuilder.build(); } - private TypeSpec.Builder buildClassWithPublicFieldsStrategy( - TypeElement encodedType, AutoCodec annotation) { - TypeSpec.Builder codecClassBuilder = - AutoCodecUtil.initializeCodecClassBuilder(encodedType, env); - ImmutableList<? extends VariableElement> publicFields = - ElementFilter.fieldsIn(env.getElementUtils().getAllMembers(encodedType)) - .stream() - .filter(this::isPublicField) - .collect(toImmutableList()); - codecClassBuilder.addMethod( - buildSerializeMethodWithPublicFields(encodedType, publicFields, annotation)); - MethodSpec.Builder deserializeBuilder = - AutoCodecUtil.initializeDeserializeMethodBuilder(encodedType, env); - buildDeserializeBody(deserializeBuilder, publicFields); - addInstantiatePopulateFieldsAndReturn(deserializeBuilder, encodedType, publicFields); - codecClassBuilder.addMethod(deserializeBuilder.build()); - return codecClassBuilder; - } - - private boolean isPublicField(VariableElement element) { - if (matchesType(element.asType(), Void.class)) { - return false; // Void types can't be instantiated, so the processor ignores them completely. - } - Set<Modifier> modifiers = element.getModifiers(); - return modifiers.contains(Modifier.PUBLIC) && !modifiers.contains(Modifier.STATIC); - } - - private MethodSpec buildSerializeMethodWithPublicFields( - TypeElement encodedType, List<? extends VariableElement> fields, AutoCodec annotation) { - MethodSpec.Builder serializeBuilder = - AutoCodecUtil.initializeSerializeMethodBuilder(encodedType, annotation, env); - for (VariableElement parameter : fields) { - String paramAccessor = "input." + parameter.getSimpleName(); - marshallers.writeSerializationCode( - new Marshaller.Context(serializeBuilder, parameter.asType(), paramAccessor)); - } - return serializeBuilder.build(); - } - /** * Adds a body to the deserialize method that extracts serialized parameters. * @@ -737,24 +695,6 @@ public class AutoCodecProcessor extends AbstractProcessor { } /** - * Invokes the constructor, populates public fields and returns the value. - * - * <p>Used by the {@link AutoCodec.Strategy#PUBLIC_FIELDS} strategy. - */ - private static void addInstantiatePopulateFieldsAndReturn( - MethodSpec.Builder builder, TypeElement type, List<? extends VariableElement> fields) { - builder.addStatement( - "$T deserializationResult = new $T()", - TypeName.get(type.asType()), - TypeName.get(type.asType())); - for (VariableElement field : fields) { - String fieldName = field.getSimpleName().toString(); - builder.addStatement("deserializationResult.$L = $L", fieldName, fieldName + "_"); - } - builder.addStatement("return deserializationResult"); - } - - /** * Adds fields to the codec class to hold offsets and adds a constructor to initialize them. * * <p>For a parameter with name {@code target}, the field will have name {@code target_offset}. |