From ddf20219422e40a1e60268d8049093602d7bacf8 Mon Sep 17 00:00:00 2001 From: Ben Gruver Date: Mon, 12 Nov 2012 22:12:26 -0800 Subject: [PATCH] Add @Nonnull for ImmutableListConverter methods --- .../immutable/ImmutableAnnotation.java | 5 +++-- .../immutable/ImmutableAnnotationElement.java | 5 +++-- .../dexlib2/immutable/ImmutableClassDef.java | 5 +++-- .../immutable/ImmutableExceptionHandler.java | 5 +++-- .../jf/dexlib2/immutable/ImmutableField.java | 7 ++++--- .../jf/dexlib2/immutable/ImmutableMethod.java | 5 +++-- .../immutable/ImmutableMethodParameter.java | 5 +++-- .../dexlib2/immutable/ImmutableTryBlock.java | 5 +++-- .../immutable/debug/ImmutableDebugItem.java | 4 ++-- .../instruction/ImmutableInstruction.java | 4 ++-- .../instruction/ImmutableSwitchElement.java | 4 ++-- .../reference/ImmutableTypeReference.java | 5 +++-- .../value/ImmutableEncodedValueFactory.java | 20 ++++++++++++------- .../org/jf/util/ImmutableListConverter.java | 4 ++-- 14 files changed, 49 insertions(+), 34 deletions(-) diff --git a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableAnnotation.java b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableAnnotation.java index ce4dc4d9..08653ffb 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableAnnotation.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableAnnotation.java @@ -85,12 +85,13 @@ public class ImmutableAnnotation extends BaseAnnotation { private static final ImmutableListConverter CONVERTER = new ImmutableListConverter() { @Override - protected boolean isImmutable(Annotation item) { + protected boolean isImmutable(@Nonnull Annotation item) { return item instanceof ImmutableAnnotation; } + @Nonnull @Override - protected ImmutableAnnotation makeImmutable(Annotation item) { + protected ImmutableAnnotation makeImmutable(@Nonnull Annotation item) { return ImmutableAnnotation.of(item); } }; diff --git a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableAnnotationElement.java b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableAnnotationElement.java index 40f48e1e..354b2d9c 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableAnnotationElement.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableAnnotationElement.java @@ -79,12 +79,13 @@ public class ImmutableAnnotationElement extends BaseAnnotationElement { private static final ImmutableListConverter CONVERTER = new ImmutableListConverter() { @Override - protected boolean isImmutable(AnnotationElement item) { + protected boolean isImmutable(@Nonnull AnnotationElement item) { return item instanceof ImmutableAnnotationElement; } + @Nonnull @Override - protected ImmutableAnnotationElement makeImmutable(AnnotationElement item) { + protected ImmutableAnnotationElement makeImmutable(@Nonnull AnnotationElement item) { return ImmutableAnnotationElement.of(item); } }; diff --git a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableClassDef.java b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableClassDef.java index 8448578d..fb425432 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableClassDef.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableClassDef.java @@ -123,12 +123,13 @@ public class ImmutableClassDef extends BaseTypeReference implements ClassDef { private static final ImmutableListConverter CONVERTER = new ImmutableListConverter() { @Override - protected boolean isImmutable(ClassDef item) { + protected boolean isImmutable(@Nonnull ClassDef item) { return item instanceof ImmutableClassDef; } + @Nonnull @Override - protected ImmutableClassDef makeImmutable(ClassDef item) { + protected ImmutableClassDef makeImmutable(@Nonnull ClassDef item) { return ImmutableClassDef.of(item); } }; diff --git a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableExceptionHandler.java b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableExceptionHandler.java index 1c077cfc..2c5245f0 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableExceptionHandler.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableExceptionHandler.java @@ -69,12 +69,13 @@ public class ImmutableExceptionHandler implements ExceptionHandler { private static final ImmutableListConverter CONVERTER = new ImmutableListConverter() { @Override - protected boolean isImmutable(ExceptionHandler item) { + protected boolean isImmutable(@Nonnull ExceptionHandler item) { return item instanceof ImmutableExceptionHandler; } + @Nonnull @Override - protected ImmutableExceptionHandler makeImmutable(ExceptionHandler item) { + protected ImmutableExceptionHandler makeImmutable(@Nonnull ExceptionHandler item) { return ImmutableExceptionHandler.of(item); } }; diff --git a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableField.java b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableField.java index 21ad7a0c..c9451eed 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableField.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableField.java @@ -63,7 +63,7 @@ public class ImmutableField extends BaseFieldReference implements Field { this.name = name; this.type = type; this.accessFlags = accessFlags; - this.initialValue = ImmutableEncodedValueFactory.of(initialValue); + this.initialValue = ImmutableEncodedValueFactory.ofNullable(initialValue); this.annotations = ImmutableAnnotation.immutableListOf(annotations); } @@ -109,12 +109,13 @@ public class ImmutableField extends BaseFieldReference implements Field { private static final ImmutableListConverter CONVERTER = new ImmutableListConverter() { @Override - protected boolean isImmutable(Field item) { + protected boolean isImmutable(@Nonnull Field item) { return item instanceof ImmutableField; } + @Nonnull @Override - protected ImmutableField makeImmutable(Field item) { + protected ImmutableField makeImmutable(@Nonnull Field item) { return ImmutableField.of(item); } }; diff --git a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableMethod.java b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableMethod.java index 5d8b9af1..7bde2cc9 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableMethod.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableMethod.java @@ -115,12 +115,13 @@ public class ImmutableMethod extends BaseMethodReference implements Method { private static final ImmutableListConverter CONVERTER = new ImmutableListConverter() { @Override - protected boolean isImmutable(Method item) { + protected boolean isImmutable(@Nonnull Method item) { return item instanceof ImmutableMethod; } + @Nonnull @Override - protected ImmutableMethod makeImmutable(Method item) { + protected ImmutableMethod makeImmutable(@Nonnull Method item) { return ImmutableMethod.of(item); } }; diff --git a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableMethodParameter.java b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableMethodParameter.java index 1dd33e12..cdef7478 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableMethodParameter.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableMethodParameter.java @@ -90,12 +90,13 @@ public class ImmutableMethodParameter extends BaseMethodParameter { private static final ImmutableListConverter CONVERTER = new ImmutableListConverter() { @Override - protected boolean isImmutable(MethodParameter item) { + protected boolean isImmutable(@Nonnull MethodParameter item) { return item instanceof ImmutableMethodParameter; } + @Nonnull @Override - protected ImmutableMethodParameter makeImmutable(MethodParameter item) { + protected ImmutableMethodParameter makeImmutable(@Nonnull MethodParameter item) { return ImmutableMethodParameter.of(item); } }; diff --git a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableTryBlock.java b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableTryBlock.java index d81a5dfc..3d5cf454 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableTryBlock.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableTryBlock.java @@ -88,12 +88,13 @@ public class ImmutableTryBlock implements TryBlock { private static final ImmutableListConverter CONVERTER = new ImmutableListConverter() { @Override - protected boolean isImmutable(TryBlock item) { + protected boolean isImmutable(@Nonnull TryBlock item) { return item instanceof ImmutableTryBlock; } + @Nonnull @Override - protected ImmutableTryBlock makeImmutable(TryBlock item) { + protected ImmutableTryBlock makeImmutable(@Nonnull TryBlock item) { return ImmutableTryBlock.of(item); } }; diff --git a/dexlib2/src/main/java/org/jf/dexlib2/immutable/debug/ImmutableDebugItem.java b/dexlib2/src/main/java/org/jf/dexlib2/immutable/debug/ImmutableDebugItem.java index dee7c0c7..2d699b2f 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/immutable/debug/ImmutableDebugItem.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/immutable/debug/ImmutableDebugItem.java @@ -82,13 +82,13 @@ public abstract class ImmutableDebugItem implements DebugItem { private static final ImmutableListConverter CONVERTER = new ImmutableListConverter() { @Override - protected boolean isImmutable(DebugItem item) { + protected boolean isImmutable(@Nonnull DebugItem item) { return item instanceof ImmutableDebugItem; } @Nonnull @Override - protected ImmutableDebugItem makeImmutable(DebugItem item) { + protected ImmutableDebugItem makeImmutable(@Nonnull DebugItem item) { return ImmutableDebugItem.of(item); } }; diff --git a/dexlib2/src/main/java/org/jf/dexlib2/immutable/instruction/ImmutableInstruction.java b/dexlib2/src/main/java/org/jf/dexlib2/immutable/instruction/ImmutableInstruction.java index 90e6a04a..792a3746 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/immutable/instruction/ImmutableInstruction.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/immutable/instruction/ImmutableInstruction.java @@ -137,13 +137,13 @@ public abstract class ImmutableInstruction implements Instruction { private static final ImmutableListConverter CONVERTER = new ImmutableListConverter() { @Override - protected boolean isImmutable(Instruction item) { + protected boolean isImmutable(@Nonnull Instruction item) { return item instanceof ImmutableInstruction; } @Nonnull @Override - protected ImmutableInstruction makeImmutable(Instruction item) { + protected ImmutableInstruction makeImmutable(@Nonnull Instruction item) { return ImmutableInstruction.of(item); } }; diff --git a/dexlib2/src/main/java/org/jf/dexlib2/immutable/instruction/ImmutableSwitchElement.java b/dexlib2/src/main/java/org/jf/dexlib2/immutable/instruction/ImmutableSwitchElement.java index b7830f25..3dc13003 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/immutable/instruction/ImmutableSwitchElement.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/immutable/instruction/ImmutableSwitchElement.java @@ -70,13 +70,13 @@ public class ImmutableSwitchElement implements SwitchElement { private static final ImmutableListConverter CONVERTER = new ImmutableListConverter() { @Override - protected boolean isImmutable(SwitchElement item) { + protected boolean isImmutable(@Nonnull SwitchElement item) { return item instanceof ImmutableSwitchElement; } @Nonnull @Override - protected ImmutableSwitchElement makeImmutable(SwitchElement item) { + protected ImmutableSwitchElement makeImmutable(@Nonnull SwitchElement item) { return ImmutableSwitchElement.of(item); } }; diff --git a/dexlib2/src/main/java/org/jf/dexlib2/immutable/reference/ImmutableTypeReference.java b/dexlib2/src/main/java/org/jf/dexlib2/immutable/reference/ImmutableTypeReference.java index 8e3cf35f..2873bccd 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/immutable/reference/ImmutableTypeReference.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/immutable/reference/ImmutableTypeReference.java @@ -65,12 +65,13 @@ public class ImmutableTypeReference extends BaseTypeReference implements Immutab private static final ImmutableListConverter CONVERTER = new ImmutableListConverter() { @Override - protected boolean isImmutable(TypeReference item) { + protected boolean isImmutable(@Nonnull TypeReference item) { return item instanceof ImmutableTypeReference; } + @Nonnull @Override - protected ImmutableTypeReference makeImmutable(TypeReference item) { + protected ImmutableTypeReference makeImmutable(@Nonnull TypeReference item) { return ImmutableTypeReference.of(item); } }; diff --git a/dexlib2/src/main/java/org/jf/dexlib2/immutable/value/ImmutableEncodedValueFactory.java b/dexlib2/src/main/java/org/jf/dexlib2/immutable/value/ImmutableEncodedValueFactory.java index 24477bbd..46d596a0 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/immutable/value/ImmutableEncodedValueFactory.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/immutable/value/ImmutableEncodedValueFactory.java @@ -41,11 +41,8 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; public class ImmutableEncodedValueFactory { - @Nullable - public static ImmutableEncodedValue of(@Nullable EncodedValue encodedValue) { - if (encodedValue == null) { - return null; - } + @Nonnull + public static ImmutableEncodedValue of(@Nonnull EncodedValue encodedValue) { switch (encodedValue.getValueType()) { case ValueType.BYTE: return ImmutableByteEncodedValue.of((ByteEncodedValue)encodedValue); @@ -85,6 +82,14 @@ public class ImmutableEncodedValueFactory { } } + @Nullable + public static ImmutableEncodedValue ofNullable(@Nullable EncodedValue encodedValue) { + if (encodedValue == null) { + return null; + } + return of(encodedValue); + } + @Nonnull public static ImmutableList immutableListOf (@Nullable Iterable list) { @@ -94,12 +99,13 @@ public class ImmutableEncodedValueFactory { private static final ImmutableListConverter CONVERTER = new ImmutableListConverter() { @Override - protected boolean isImmutable(EncodedValue item) { + protected boolean isImmutable(@Nonnull EncodedValue item) { return item instanceof ImmutableEncodedValue; } + @Nonnull @Override - protected ImmutableEncodedValue makeImmutable(EncodedValue item) { + protected ImmutableEncodedValue makeImmutable(@Nonnull EncodedValue item) { return of(item); } }; diff --git a/util/src/main/java/org/jf/util/ImmutableListConverter.java b/util/src/main/java/org/jf/util/ImmutableListConverter.java index f7a8b0d0..16a28502 100644 --- a/util/src/main/java/org/jf/util/ImmutableListConverter.java +++ b/util/src/main/java/org/jf/util/ImmutableListConverter.java @@ -84,6 +84,6 @@ public abstract class ImmutableListConverter { }); } - protected abstract boolean isImmutable(Item item); - protected abstract ImmutableItem makeImmutable(Item item); + protected abstract boolean isImmutable(@Nonnull Item item); + @Nonnull protected abstract ImmutableItem makeImmutable(@Nonnull Item item); }