@Override public int getMethodAccessFlags(@Nonnull PoolMethod method) { return method.getAccessFlags(); }
@Nullable @Override public Set<? extends Annotation> getMethodAnnotations(@Nonnull PoolMethod method) { Set<? extends Annotation> annotations = method.getAnnotations(); if (annotations.size() == 0) { return null; } return annotations; }
@Nullable @Override public Iterable<? extends DebugItem> getDebugItems(@Nonnull PoolMethod method) { MethodImplementation impl = method.getImplementation(); if (impl != null) { return impl.getDebugItems(); } return null; }
internCode(method); internDebug(method); dexPool.annotationSetSection.intern(method.getAnnotations()); for (MethodParameter parameter: method.getParameters()) { dexPool.annotationSetSection.intern(parameter.getAnnotations());
@Nullable @Override public Iterable<CharSequence> getParameterNames(@Nonnull PoolMethod method) { return Iterables.transform(method.getParameters(), new Function<MethodParameter, CharSequence>() { @Nullable @Override public CharSequence apply(MethodParameter input) { return input.getName(); } }); }
@Override public PoolMethod apply(Method method) { return new PoolMethod(method); } };
internCode(method); internDebug(method); annotationSetPool.intern(method.getAnnotations()); for (MethodParameter parameter: method.getParameters()) { annotationSetPool.intern(parameter.getAnnotations());
@Nullable @Override public List<? extends Set<? extends Annotation>> getParameterAnnotations( @Nonnull final PoolMethod method) { final List<? extends MethodParameter> parameters = method.getParameters(); boolean hasParameterAnnotations = Iterables.any(parameters, HAS_PARAMETER_ANNOTATIONS); if (hasParameterAnnotations) { return new AbstractForwardSequentialList<Set<? extends Annotation>>() { @Nonnull @Override public Iterator<Set<? extends Annotation>> iterator() { return FluentIterable.from(parameters) .transform(PARAMETER_ANNOTATIONS).iterator(); } @Override public int size() { return parameters.size(); } }; } return null; }
@Override public PoolMethod apply(Method method) { return new PoolMethod(method); } };
@Nullable @Override public Iterable<? extends Instruction> getInstructions(@Nonnull PoolMethod method) { MethodImplementation impl = method.getImplementation(); if (impl != null) { return impl.getInstructions(); } return null; }
internCode(method); internDebug(method); dexPool.annotationSetSection.intern(method.getAnnotations()); for (MethodParameter parameter: method.getParameters()) { dexPool.annotationSetSection.intern(parameter.getAnnotations());
@Nullable @Override public Iterable<CharSequence> getParameterNames(@Nonnull PoolMethod method) { return Iterables.transform(method.getParameters(), new Function<MethodParameter, CharSequence>() { @Nullable @Override public CharSequence apply(MethodParameter input) { return input.getName(); } }); }
@Nullable @Override public Set<? extends Annotation> getMethodAnnotations(@Nonnull PoolMethod method) { Set<? extends Annotation> annotations = method.getAnnotations(); if (annotations.size() == 0) { return null; } return annotations; }
@Override public int getMethodAccessFlags(@Nonnull PoolMethod method) { return method.getAccessFlags(); }
@Override public PoolMethod apply(Method method) { return new PoolMethod(method); } };
@Nonnull @Override public List<? extends TryBlock<? extends ExceptionHandler>> getTryBlocks( @Nonnull PoolMethod method) { MethodImplementation impl = method.getImplementation(); if (impl != null) { return impl.getTryBlocks(); } return ImmutableList.of(); }
@Nullable @Override public Iterable<CharSequence> getParameterNames(@Nonnull PoolMethod method) { return Iterables.transform(method.getParameters(), new Function<MethodParameter, CharSequence>() { @Nullable @Override public CharSequence apply(MethodParameter input) { return input.getName(); } }); }
@Nullable @Override public Set<? extends Annotation> getMethodAnnotations(@Nonnull PoolMethod method) { Set<? extends Annotation> annotations = method.getAnnotations(); if (annotations.size() == 0) { return null; } return annotations; }
@Override public int getMethodAccessFlags(@Nonnull PoolMethod method) { return method.getAccessFlags(); }
@Override public int getRegisterCount(@Nonnull PoolMethod method) { MethodImplementation impl = method.getImplementation(); if (impl != null) { return impl.getRegisterCount(); } return 0; }