@Nullable @Override public String getSuperclass() { return superclass==null?null:superclass.getType(); } @Nullable @Override public String getSourceFile() { return sourceFile==null?null:sourceFile.getString(); }
@Nonnull public BuilderTypeReference internType(@Nonnull String type) { BuilderTypeReference ret = internedItems.get(type); if (ret != null) { return ret; } BuilderStringReference stringRef = dexBuilder.stringSection.internString(type); BuilderTypeReference typeReference = new BuilderTypeReference(stringRef); ret = internedItems.putIfAbsent(type, typeReference); return ret==null?typeReference:ret; }
@Override public int getItemIndex(@Nonnull BuilderTypeReference key) { return key.getIndex(); }
@Override public boolean equals(@Nullable Object o) { if (o != null && o instanceof BuilderProtoReference) { BuilderProtoReference other = (BuilderProtoReference)o; return returnType.equals(other.returnType) && CharSequenceUtils.listEquals(parameterTypes, other.parameterTypes); } return false; }
@Override public int compareTo(@Nonnull BuilderProtoReference o) { int res = returnType.compareTo(o.returnType); if (res != 0) return res; return CollectionUtils.compareAsIterable(Ordering.usingToString(), parameterTypes, o.parameterTypes); } }
@Nonnull public BuilderTypeReference internType(@Nonnull String type) { BuilderTypeReference ret = internedItems.get(type); if (ret != null) { return ret; } BuilderStringReference stringRef = dexBuilder.stringSection.internString(type); BuilderTypeReference typeReference = new BuilderTypeReference(stringRef); ret = internedItems.putIfAbsent(type, typeReference); return ret==null?typeReference:ret; }
@Override public int getItemIndex(@Nonnull BuilderTypeReference key) { return key.getIndex(); }
@Nonnull @Override public String getType() { return type.getType(); } @Override public int getAccessFlags() { return accessFlags; }
@Nonnull public BuilderTypeReference internType(@Nonnull String type) { BuilderTypeReference ret = internedItems.get(type); if (ret != null) { return ret; } BuilderStringReference stringRef = context.stringPool.internString(type); BuilderTypeReference typeReference = new BuilderTypeReference(stringRef); ret = internedItems.putIfAbsent(type, typeReference); return ret==null?typeReference:ret; }
@Override public int getItemIndex(@Nonnull BuilderTypeReference key) { return key.getIndex(); }
@Test public void getRegisterSizeWithBuilderTypeListReturnsExpectedValue() { List<BuilderTypeReference> types = new LinkedList<BuilderTypeReference>(); BuilderTypeReference typeRef1 = mock(BuilderTypeReference.class); BuilderTypeReference typeRef2 = mock(BuilderTypeReference.class); when(typeRef1.getType()).thenReturn("I"); when(typeRef2.getType()).thenReturn("J"); types.add(typeRef1); types.add(typeRef2); BuilderTypeList typeList = new BuilderTypeList(types); int registerSize = Utils.getRegisterSize(typeList); assertEquals(3, registerSize); }
@Test public void builderTypeListToStringListReturnsExpected() { List<BuilderTypeReference> types = new LinkedList<BuilderTypeReference>(); BuilderTypeReference typeRef1 = mock(BuilderTypeReference.class); BuilderTypeReference typeRef2 = mock(BuilderTypeReference.class); when(typeRef1.getType()).thenReturn("typeRef1"); when(typeRef2.getType()).thenReturn("typeRef2"); types.add(typeRef1); types.add(typeRef2); BuilderTypeList typeList = new BuilderTypeList(types); List<String> typeNames = Utils.builderTypeListToTypeNames(typeList); assertEquals(2, typeNames.size()); assertEquals("typeRef1", typeNames.get(0)); assertEquals("typeRef2", typeNames.get(1)); }
@Nonnull @Override public String getValue() { return typeReference.getType(); } }
@Nonnull @Override public String getType() { return fieldReference.fieldType.getType(); } }
@Nonnull @Override public String getValue() { return typeReference.getType(); } }
@Nonnull @Override public String getType() { return fieldReference.fieldType.getType(); } }
@Nullable @Override public String getExceptionType() { return exceptionType==null?null:exceptionType.getType(); }
@Nonnull @Override public String getType() { return type.getType(); }
@Nonnull @Override public String getDefiningClass() { return definingClass.getType(); }
@Nonnull @Override public String getType() { return typeReference.getType(); }