001package sting.processor; 002 003import java.util.List; 004import javax.annotation.Nonnull; 005 006/** 007 * Immutable metadata for one intercepted service method. 008 */ 009public interface InterceptedMethodModel 010{ 011 /** 012 * Return the intercepted method name. 013 * 014 * @return the intercepted method name. 015 */ 016 @Nonnull 017 String methodName(); 018 019 /** 020 * Return the erased return type name. 021 * 022 * @return the erased return type name. 023 */ 024 @Nonnull 025 String returnTypeName(); 026 027 /** 028 * Return the erased parameter type names in declaration order. 029 * 030 * @return the erased parameter type names in declaration order. 031 */ 032 @Nonnull 033 List<String> parameterTypeNames(); 034 035 /** 036 * Return the declared thrown type names in declaration order. 037 * 038 * @return the declared thrown type names in declaration order. 039 */ 040 @Nonnull 041 List<String> thrownTypeNames(); 042 043 /** 044 * Return true if the intercepted method is a default interface method. 045 * 046 * @return true if the intercepted method is a default interface method. 047 */ 048 boolean defaultMethod(); 049 050 /** 051 * Return true if the intercepted method is variadic. 052 * 053 * @return true if the intercepted method is variadic. 054 */ 055 boolean varArgs(); 056}