Java 类java.lang.reflect.Parameter 实例源码
项目:selenium-jupiter
文件:FirefoxAnnotationReaderTest.java
@ParameterizedTest
@MethodSource("testClassProvider")
@SuppressWarnings("unchecked")
void testFirefoxOptions(Class<?> testClass) throws Exception {
Parameter parameter = testClass
.getMethod("webrtcTest", FirefoxDriver.class)
.getParameters()[0];
Optional<Object> testInstance = Optional.of(testClass.newInstance());
FirefoxOptions firefoxOptions = (FirefoxOptions) annotationsReader
.getOptions(parameter, testInstance);
Map<String, Map<String, Boolean>> options = (Map<String, Map<String, Boolean>>) firefoxOptions
.asMap().get(FIREFOX_OPTIONS);
assertTrue(options.get("prefs")
.get("media.navigator.permission.disabled"));
assertTrue(options.get("prefs").get("media.navigator.streams.fake"));
}
项目:FridaAndroidTracer
文件:FridaAndroidTracer.java
private static void extractParams(PrintWriter printer, Parameter[] parameters,
StringBuilder params, StringBuilder paramsToLog) {
for (Parameter param : parameters) {
String sigFormatter;
String paramFormatter;
if (params.length() == 0) {
sigFormatter = "\"%s\"";
paramFormatter = "%s";
} else {
sigFormatter = ", \"%s\"";
paramFormatter = ", %s";
}
printer.print(String.format(sigFormatter, param.getType().getName()));
params.append(String.format(paramFormatter, param.getName()));
if (param.getType().getName().startsWith("[")) {
paramsToLog.append(asConcat(paramsToLog.length() == 0,
String.format("\"%s\"", arrayTypeName(param.getType().getName()))));
} else {
paramsToLog.append(asConcat(paramsToLog.length() == 0, param.getName()));
}
}
}
项目:primeval-reflex
文件:MethodArgumentsGenerator.java
private static void generateUpdaterMethod(ClassWriter cw, String selfClassInternalName, String selfClassDescriptor,
String updaterClassInternalName,
String constDesc, Parameter[] parameters) {
MethodVisitor mv;
mv = cw.visitMethod(ACC_PUBLIC, "updater", "()Lio/primeval/reflex/arguments/ArgumentsUpdater;", null, null);
mv.visitCode();
Label l0 = new Label();
mv.visitLabel(l0);
mv.visitTypeInsn(NEW, updaterClassInternalName);
mv.visitInsn(DUP);
mv.visitVarInsn(ALOAD, 0);
mv.visitFieldInsn(GETFIELD, selfClassInternalName, "parameters", "Ljava/util/List;");
for (int i = 0; i < parameters.length; i++) {
Parameter parameter = parameters[i];
mv.visitVarInsn(ALOAD, 0);
mv.visitFieldInsn(GETFIELD, selfClassInternalName, parameter.getName(), Type.getDescriptor(parameter.getType()));
}
mv.visitMethodInsn(INVOKESPECIAL, updaterClassInternalName, "<init>", constDesc, false);
mv.visitInsn(ARETURN);
Label l1 = new Label();
mv.visitLabel(l1);
mv.visitLocalVariable("this", selfClassDescriptor, null, l0, l1, 0);
mv.visitMaxs(-1, -1);
mv.visitEnd();
}
项目:booter-injector
文件:Key.java
/**
* Create key for single method/constructor parameter.
*
* @param parameter
* Parameter to build key for.
* @return Created key.
*/
public static Key of(Parameter parameter) {
Annotation[] annotations = parameter.getAnnotations();
if (!parameter.getType().isAssignableFrom(Supplier.class)) {
return new Key(parameter.getParameterizedType(), false,
parameter.getType(), findBindingAnnotation(annotations));
}
Type type = parameter.getParameterizedType();
if (type instanceof ParameterizedType) {
Type[] args = ((ParameterizedType) type).getActualTypeArguments();
if (args.length > 0 && args[0] instanceof Class) {
return Key.of(args[0], true, annotations);
}
}
throw new InjectorException("Unable to determine parameter type for " + parameter);
}
项目:selenium-jupiter
文件:AnnotationsReader.java
public Optional<URL> getUrl(Parameter parameter,
Optional<Object> testInstance)
throws MalformedURLException, IllegalAccessException {
Optional<URL> out = empty();
String urlValue = null;
DriverUrl driverUrl = parameter.getAnnotation(DriverUrl.class);
if (driverUrl != null) {
// Search first DriverUrl annotation in parameter
urlValue = driverUrl.value();
out = Optional.of(new URL(urlValue));
} else {
// If not, search DriverUrl in any field
Optional<Object> annotatedField = seekFieldAnnotatedWith(
testInstance, DriverUrl.class);
if (annotatedField.isPresent()) {
urlValue = (String) annotatedField.get();
out = Optional.of(new URL(urlValue));
}
}
return out;
}
项目:spring-rest-commons-options
文件:JsonSchemmaUtils.java
private static Optional<JsonSchema> getRequestSchemma(Method m, Class<?> controller) {
List<Parameter> p = ReflectionUtils.getParametersBody(m);
Optional<JsonSchema> schemma = Optional.empty();
if (!p.isEmpty()) {
Optional<Type> t = ReflectionUtils.getRealType(p.get(0).getParameterizedType(), controller);
if (t.isPresent()) {
Optional<Class<?>> c = ReflectionUtils.getClass(t.get());
if (c.isPresent()) {
schemma = getSchemma(c.get());
} else {
schemma = getSchemma(t.getClass());
}
} else {
schemma = getSchemma(ReflectionUtils.getClass(p.get(0).getParameterizedType()));
}
}
return schemma;
}
项目:bootstrap
文件:JAXRSBeanValidationImplicitInInterceptor.java
@Override
protected void handleValidation(final Message message, final Object resourceInstance, final Method method,
final List<Object> arguments) {
super.handleValidation(message, resourceInstance, method, arguments);
// Check each parameter
final Set<ConstraintViolation<?>> validationErrors = new HashSet<>();
for (int index = 0; index < arguments.size(); index++) {
final Parameter parameter = method.getParameters()[index];
if (hasToBeValidated(parameter)) {
// This parameter is a not context, path or query parameter
validate(arguments.get(index), method, parameter, index, validationErrors);
}
}
// Check the veto
if (!validationErrors.isEmpty()) {
message.put(FaultListener.class.getName(), new NoOpFaultListener());
throw new ConstraintViolationException(validationErrors);
}
}
项目:drinkwater-java
文件:RouteBuilders.java
public static String formatBeanEndpointRoute(Method m) {
String answer = m.getName();
Parameter[] params = m.getParameters();
java.util.List<String> paramList = new ArrayList<>();
if (params.length > 0) {
paramList.add("${body}");
for (int i = 1; i < params.length; i++) {
paramList.add("${header.param" + i + "}");
}
}
answer = answer + "(" + String.join(",", paramList) + ")";
return answer;
}
项目:voogasalad-ltub
文件:EventHandlerPane.java
private String methodToString(Method method) {
String s = method.getName();
Parameter[] parameters = method.getParameters();
if (parameters.length == 0) {
return s + "()";
}
s += "(";
for (int i = 0; i < parameters.length; i++) {
s += "?";
if (i < parameters.length - 1) {
s += ",";
}
}
s += ")";
return s;
}
项目:X4J
文件:CommonInvoke.java
/**
* 方法的参数加载对象 可优化:Parameter包含类型和名称
*
* @param parameterTypes
* @param parameters
* @return
*/
private Object[] loadParameterWithMethod(Class[] parameterTypes, Parameter[] parameters) {
Object[] paramObjs = new Object[parameterCount];
// 厉害了,我的哥。
// 今天找了一整天,JDK/ASM都不行,Paranamer稳!
Paranamer paranamer = new BytecodeReadingParanamer();
String[] parametersName = paranamer.lookupParameterNames(invokeMethod);
int i = Constants.NUMBER.ZERO;
for (Class<?> type : parameterTypes) {
if (RequestContext.getInstance().isInContextObjs(type)) {
paramObjs[i] = RequestContext.getInstance().searchObjByType(type);
} else {
TypeParser parser = TypeParser.newBuilder().build();
Object searchedObject = RequestContext.getInstance().searchObjByName(parametersName[i]);
paramObjs[i] = parser.parseType(searchedObject.toString(), type);
}
i++;
}
// 通过类型加载
// searchAndBindByType(paramObjs, parameterTypes);
// TODO 通过参数名加载
return paramObjs;
}
项目:chopsticks
文件:MethodArgument.java
public static Object[] getArgs(Signature signature) throws Exception {
Method actionMethod = signature.getAction();
Request request = signature.request();
actionMethod.setAccessible(true);
Parameter[] parameters = actionMethod.getParameters();
Object[] args = new Object[parameters.length];
String[] parameterNames = AsmKit.getMethodParamNames(actionMethod);
for (int i = 0, len = parameters.length; i < len; i++) {
Parameter parameter = parameters[i];
String paramName = parameterNames[i];
Class<?> argType = parameter.getType();
if (containsAnnotation(parameter)) {
args[i] = getAnnotationParam(parameter, paramName, request);
continue;
}
if (ReflectKit.isPrimitive(argType)) {
args[i] = request.query(paramName);
continue;
}
args[i] = getCustomType(parameter, signature);
}
return args;
}
项目:holon-vaadin7
文件:ViewNavigationUtils.java
/**
* Check given method has a valid signature for {@link OnShow} or {@link OnLeave} view method
* @param viewClass View class
* @param method Method to check
* @param message Error message annotation description
* @throws ViewConfigurationException Method is not valid
*/
private static void checkViewOnShowOrLeaveMethod(Class<?> viewClass, Method method, String message)
throws ViewConfigurationException {
if (method.getReturnType() != Void.class && method.getReturnType() != Void.TYPE) {
throw new ViewConfigurationException("Invalid " + message + " method in view class " + viewClass.getName()
+ ": method must be a void return method");
}
int params = method.getParameterCount();
if (params > 1) {
throw new ViewConfigurationException("Invalid " + message + " method in view class " + viewClass.getName()
+ ": method must have no parameters or only one parameter of type ViewChangeEvent");
}
if (params == 1) {
Parameter param = method.getParameters()[0];
if (param.isVarArgs() || !(ViewChangeEvent.class.isAssignableFrom(param.getType())
|| ViewNavigatorChangeEvent.class.isAssignableFrom(param.getType()))) {
throw new ViewConfigurationException(
"Invalid " + message + " method in view class " + viewClass.getName()
+ ": method must have no parameters or only one parameter of type ViewChangeEvent");
}
}
}
项目:martini-jmeter-extension
文件:MartiniSamplerClient.java
protected Object[] getArguments(Step step, StepImplementation implementation) {
Method method = implementation.getMethod();
Parameter[] parameters = method.getParameters();
Object[] arguments = new Object[parameters.length];
if (parameters.length > 0) {
String text = step.getText();
Pattern pattern = implementation.getPattern();
Matcher matcher = pattern.matcher(text);
checkState(matcher.find(),
"unable to locate substitution parameters for pattern %s with input %s", pattern.pattern(), text);
int groupCount = matcher.groupCount();
ConversionService conversionService = SpringPreProcessor.getBean(ConversionService.class);
for (int i = 0; i < groupCount; i++) {
String parameterAsString = matcher.group(i + 1);
Parameter parameter = parameters[i];
Class<?> parameterType = parameter.getType();
Object converted = conversionService.convert(parameterAsString, parameterType);
arguments[i] = converted;
}
}
return arguments;
}
项目:Ink
文件:RouteFinder.java
public static Pattern pathCompiler(String path, Method method) {
Parameter[] parameters = method.getParameters();
for (Parameter parameter : parameters) {
if (parameter.getAnnotations().length == 0) {
continue;
}
Annotation annotation = parameter.getAnnotations()[0];
if (annotation instanceof PathVariable) {
//如果是字符串
if (parameter.getType() == String.class) {
path = path.replace("{" + parameter.getName() + "}", "[0-9\\d\\D]*");
}
//如果是数字
else if (parameter.getType() == Integer.class
|| parameter.getType() == Long.class) {
path = path.replace("{" + parameter.getName() + "}", "[0-9]*");
}
}
}
return Pattern.compile(path);
}
项目:GitHub
文件:PassAnnotationTest.java
@Test
public void passAnnotations() throws Exception {
check(ImmutableValForPass.class.getAnnotation(A1.class)).notNull();
check(ImmutableValForPass.class.getAnnotation(A2.class)).notNull();
check(ImmutableValForPass.class.getAnnotation(B1.class)).isNull();
Parameter parameter = ImmutableValForPass.class.getConstructor(int.class).getParameters()[0];
check(parameter.getAnnotation(A1.class)).notNull();
check(parameter.getAnnotation(A2.class)).notNull();
}
项目:selenium-jupiter
文件:DockerDriverHandler.java
public DockerDriverHandler(ExtensionContext context, Parameter parameter,
Optional<Object> testInstance,
AnnotationsReader annotationsReader) {
this.context = context;
this.parameter = parameter;
this.testInstance = testInstance;
this.annotationsReader = annotationsReader;
this.dockerService = new DockerService();
this.containers = new LinkedHashMap<>();
this.selenoidConfig = new SelenoidConfig();
}
项目:jwebassembly
文件:MockitoExtension.java
private Object getMock(Parameter parameter, ExtensionContext extensionContext) {
Class<?> mockType = parameter.getType();
ExtensionContext.Store mocks = extensionContext.getStore(ExtensionContext.Namespace.create(MockitoExtension.class, mockType));
String mockName = getMockName(parameter);
if (mockName != null) {
return mocks.getOrComputeIfAbsent(mockName, key -> mock(mockType, mockName));
} else {
return mocks.getOrComputeIfAbsent(mockType.getCanonicalName(), key -> mock(mockType));
}
}
项目:owc-dic
文件:NamedParameterSupportChecker.java
static <T> boolean hasNamedParameterSupport(Class<T> classDefinition) {
for (Constructor constructor : classDefinition.getConstructors()) {
for (Parameter parameter : constructor.getParameters()) {
return parameter.isNamePresent();
}
}
return true;
}
项目:qpp-conversion-tool
文件:MockitoExtension.java
private Object getMock(Parameter parameter, ExtensionContext extensionContext) {
Class<?> mockType = parameter.getType();
Store mocks = extensionContext.getStore(Namespace.create(MockitoExtension.class, mockType));
String mockName = getMockName(parameter);
if (mockName != null) {
return mocks.getOrComputeIfAbsent(mockName, key -> mock(mockType, mockName));
}
else {
return mocks.getOrComputeIfAbsent(mockType.getCanonicalName(), key -> mock(mockType));
}
}
项目:mastering-junit5
文件:MockitoExtension.java
private Object getMock(Parameter parameter,
ExtensionContext extensionContext) {
Class<?> mockType = parameter.getType();
Store mocks = extensionContext
.getStore(Namespace.create(MockitoExtension.class, mockType));
String mockName = getMockName(parameter);
if (mockName != null) {
return mocks.getOrComputeIfAbsent(mockName,
key -> mock(mockType, mockName));
} else {
return mocks.getOrComputeIfAbsent(mockType.getCanonicalName(),
key -> mock(mockType));
}
}
项目:selenium-jupiter
文件:ChromeDriverHandler.java
@Override
public MutableCapabilities getOptions(Parameter parameter,
Optional<Object> testInstance)
throws IOException, IllegalAccessException {
ChromeOptions chromeOptions = new ChromeOptions();
// @Arguments
Arguments arguments = parameter.getAnnotation(Arguments.class);
if (arguments != null) {
stream(arguments.value()).forEach(chromeOptions::addArguments);
}
// @Extensions
Extensions extensions = parameter.getAnnotation(Extensions.class);
if (extensions != null) {
for (String extension : extensions.value()) {
chromeOptions.addExtensions(getExtension(extension));
}
}
// @Binary
Binary binary = parameter.getAnnotation(Binary.class);
if (binary != null) {
chromeOptions.setBinary(binary.value());
}
// @Options
Object optionsFromAnnotatedField = annotationsReader
.getOptionsFromAnnotatedField(testInstance, Options.class);
if (optionsFromAnnotatedField != null) {
chromeOptions = ((ChromeOptions) optionsFromAnnotatedField)
.merge(chromeOptions);
}
return chromeOptions;
}
项目:echidna
文件:Resource.java
/**
* Find all handler mehtods of the resource.
*
* @param resourceInstance The instance.
*/
private void findResourceMethods(Object resourceInstance) {
for (Method declaredMethod : resourceInstance.getClass().getDeclaredMethods()) {
Path methodPath = declaredMethod.getAnnotation(Path.class);
if (methodPath == null) {
continue;
}
Consumes consumes = declaredMethod.getAnnotation(Consumes.class);
Produces produces = declaredMethod.getAnnotation(Produces.class);
HTTPMethod method = HTTPMethod.GET;
if (declaredMethod.isAnnotationPresent(POST.class)) {
method = HTTPMethod.POST;
} else if (declaredMethod.isAnnotationPresent(DELETE.class)) {
method = HTTPMethod.DELETE;
} else if (declaredMethod.isAnnotationPresent(PUT.class)) {
method = HTTPMethod.PUT;
} else if (declaredMethod.isAnnotationPresent(PATCH.class)) {
method = HTTPMethod.PATCH;
}
ResourceMethod resourceMethod = new ResourceMethod(methodPath.value(), method,
consumes.value(), produces.value(), declaredMethod, resourceInstance);
for (Parameter parameter : declaredMethod.getParameters()) {
if (parameter.isAnnotationPresent(PostKey.class)) {
resourceMethod.addPostParam(parameter.getAnnotation(PostKey.class).value());
}
}
this.resourceMethods.put(methodPath.value(), resourceMethod);
}
}
项目:intellij-spring-assistant
文件:MockitoExtension.java
private String getMockName(Parameter parameter) {
String explicitMockName = parameter.getAnnotation(Mock.class).name().trim();
if (!explicitMockName.isEmpty()) {
return explicitMockName;
} else if (parameter.isNamePresent()) {
return parameter.getName();
}
return null;
}
项目:spring-rest-commons-options
文件:DetailFieldRequestFactory.java
public static DetailFieldStrategy getCreationStrategy(Parameter p, Class<?> parametrizedClass) {
LOGGER.info("Seleccionando estrategia para para el parametro del request {} , con la clase parametrica {}", p,
parametrizedClass);
return DetailFieldCreatedStrategyFactory.getCreationStrategy(p.getParameterizedType(),
Optional.ofNullable(parametrizedClass));
}
项目:spring-cloud-sockets
文件:ServiceMethodInfo.java
private void findPayloadParameter(){
if(this.method.getParameterCount() == 0){
throw new IllegalStateException("Service methods must have at least one receiving parameter");
}
else if(this.method.getParameterCount() == 1){
this.payloadParameter = new MethodParameter(this.method, 0);
}
int payloadAnnotations = Flux.just(this.method.getParameters())
.filter(parameter -> parameter.getAnnotation(Payload.class) != null)
.reduce(0, (a, parameter) -> { return a+1; })
.block();
if(payloadAnnotations > 1){
throw new IllegalStateException("Service methods can have at most one @Payload annotated parameters");
}
for(int i=0; i<this.method.getParameters().length; i++){
Parameter p = this.method.getParameters()[i];
if(p.getAnnotation(Payload.class) != null){
this.payloadParameter = new MethodParameter(this.method, i);
break;
}
}
if(this.payloadParameter == null){
throw new IllegalStateException("Service methods annotated with more than one parameter must declare one @Payload parameter");
}
resolvePayloadType();
}
项目:drinkwater-java
文件:MethodToRestParameters.java
private void init() {
HttpMethod httpMethod = httpMethodFor(method);
List<Parameter> parameterInfos = javaslang.collection.List.of(method.getParameters());
NoBody noBodyAnnotation = method.getAnnotation(NoBody.class);
hasReturn = returnsVoid(method);
if (parameterInfos.size() == 0) {
return;
}
if (httpMethod == HttpMethod.GET) {
hasBody = false;
} else if (httpMethod == HttpMethod.POST || httpMethod == HttpMethod.DELETE || httpMethod == HttpMethod.PUT) {
if (parameterInfos.size() > 0) {
hasBody = true;
}
if (noBodyAnnotation != null) {
hasBody = false;
}
} else {
throw new RuntimeException("come back here : MethodToRestParameters.init()");
}
if (hasBody) { // first parameter of the method will be assigned with the body content
headerNames = parameterInfos.tail().map(p -> mapName(p)).toList();
} else {
headerNames = parameterInfos.map(p -> mapName(p)).toList();
}
}
项目:drinkwater-java
文件:MethodToRestParameters.java
private static String mapName(Parameter p){
String name;
if(p.getClass().isAssignableFrom(Exchange.class)){
name = "exchange";
}else {
name = p.getName();
}
return name;
}
项目:primeval-reflex
文件:MethodArgumentssUpdaterGenerator.java
public static byte[] generateMethodArgsUpdater(Class<?> classToProxy, Method method, int methodId) throws Exception {
ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
String classToProxyDescriptor = Type.getDescriptor(classToProxy);
String classToProxyInternalName = Type.getInternalName(classToProxy);
String suffix = SUFFIX_START + method.getName() + methodId;
String selfClassInternalName = classToProxyInternalName + suffix;
String selfClassDescriptor = BytecodeGenUtils.makeSuffixClassDescriptor(classToProxyDescriptor, suffix);
String argsClassInternalName = classToProxyInternalName + MethodArgumentsGenerator.SUFFIX_START + method.getName() + methodId;
String constDesc = Type.getMethodDescriptor(Type.VOID_TYPE,
Stream.concat(Stream.of(List.class), Stream.of(method.getParameterTypes())).map(Type::getType)
.toArray(Type[]::new));
cw.visit(52, ACC_PUBLIC + ACC_FINAL + ACC_SUPER, selfClassInternalName, null, "java/lang/Object",
new String[] { "io/primeval/reflex/arguments/ArgumentsUpdater" });
Parameter[] parameters = method.getParameters();
generateFields(method, cw, parameters);
generateConstructor(method, cw, selfClassInternalName, selfClassDescriptor, constDesc, parameters);
generateHashCodeMethod(cw, selfClassInternalName, selfClassDescriptor, parameters);
generateEqualsMethod(cw, selfClassInternalName, selfClassDescriptor, parameters);
generateToStringMethod(cw, selfClassInternalName, selfClassDescriptor, parameters);
generateUpdateMethod(cw, selfClassInternalName, selfClassDescriptor, argsClassInternalName, constDesc, parameters);
generateParametersGetter(cw, selfClassInternalName, selfClassDescriptor);
generateArgumentSetters(cw, selfClassInternalName, selfClassDescriptor, parameters);
generateArgumentGetters(cw, selfClassInternalName, selfClassDescriptor, parameters);
cw.visitEnd();
return cw.toByteArray();
}
项目:autotest
文件:AutoTestExtension.java
@Override
public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
java.lang.reflect.Parameter parameter = parameterContext.getParameter();
Executable executable = parameter.getDeclaringExecutable();
return (executable instanceof Constructor && AnnotatedElementUtils.hasAnnotation(executable, Autowired.class))
|| isAutowirable(parameter);
}
项目:autotest
文件:AutoTestExtension.java
@Override
public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
Parameter parameter = parameterContext.getParameter();
Class<?> testClass = extensionContext.getTestClass().get();
ApplicationContext applicationContext = getApplicationContext(extensionContext);
return resolveDependency(parameter, testClass, applicationContext);
}
项目:autotest
文件:AutoTestExtension.java
static Object resolveDependency(Parameter parameter, Class<?> containingClass, ApplicationContext applicationContext) {
boolean required = findMergedAnnotation(parameter, Autowired.class).map(Autowired::required).orElse(true);
MethodParameter methodParameter = SynthesizingMethodParameter.forParameter(parameter);
DependencyDescriptor descriptor = new DependencyDescriptor(methodParameter, required);
descriptor.setContainingClass(containingClass);
return applicationContext.getAutowireCapableBeanFactory().resolveDependency(descriptor, null);
}
项目:chopsticks
文件:MethodArgument.java
private static Object getAnnotationParam(Parameter parameter, String paramName, Request request) throws Exception {
Class<?> argType = parameter.getType();
Param param = parameter.getAnnotation(Param.class);
if (null != param) {
return getQueryParam(
ParamStrut.builder().argType(argType).param(param).paramName(paramName).request(request).build());
}
BodyParam bodyParam = parameter.getAnnotation(BodyParam.class);
if (null != bodyParam) {
return getBodyParam(ParamStrut.builder().argType(argType).request(request).build());
}
PathParam pathParam = parameter.getAnnotation(PathParam.class);
if (null != pathParam) {
return getPathParam(ParamStrut.builder().argType(argType).pathParam(pathParam).paramName(paramName)
.request(request).build());
}
HeaderParam headerParam = parameter.getAnnotation(HeaderParam.class);
if (null != headerParam) {
return getHeader(ParamStrut.builder().argType(argType).headerParam(headerParam).paramName(paramName)
.request(request).build());
}
// cookie param
CookieParam cookieParam = parameter.getAnnotation(CookieParam.class);
if (null != cookieParam) {
return getCookie(ParamStrut.builder().argType(argType).cookieParam(cookieParam).paramName(paramName)
.request(request).build());
}
// form multipart
MultipartParam multipartParam = parameter.getAnnotation(MultipartParam.class);
if (null != multipartParam && argType == FileItem.class) {
String name = StringKit.isBlank(multipartParam.value()) ? paramName : multipartParam.value();
return request.fileItem(name).orElse(null);
}
return null;
}
项目:booter-injector
文件:KeyTest.java
@Test
public void shouldCreateKeyForSimpleParameter() throws Exception {
Parameter parameter = getClass().getDeclaredMethod("method1", List.class).getParameters()[0];
Key key = Key.of(parameter);
assertThat(key).isNotNull();
assertThat(key.toString()).isEqualTo("{java.util.List<java.lang.String>}");
}
项目:open-kilda
文件:MockitoExtension.java
private String getMockName(Parameter parameter) {
String explicitMockName = parameter.getAnnotation(Mock.class).name().trim();
if (!explicitMockName.isEmpty()) {
return explicitMockName;
} else if (parameter.isNamePresent()) {
return parameter.getName();
}
return null;
}
项目:camunda-bpm-swagger
文件:ParameterRepository.java
public static Optional<Pair<Class<?>, String>> lookup(final Parameter param) {
final Pair<Class<?>, String> pair = predefinedParameters.get(param.getType().getName());
if (pair != null) {
return Optional.of(pair);
}
return Optional.empty();
}
项目:Expr3
文件:Evaluator.java
void registerFunction(String name, Method method) {
if (method.getReturnType().equals(Double.TYPE) ||
method.getReturnType().equals(Integer.TYPE) ||
method.getReturnType().equals(Long.TYPE)) {
for (Parameter parameter : method.getParameters()) {
if (!parameter.getType().equals(Double.TYPE)) {
throw new IllegalArgumentException("All method parameters must be doubles");
}
}
method.setAccessible(true);
functions.put(name, method);
} else {
throw new IllegalArgumentException("Method must return a number");
}
}
项目:spring-webflux-client
文件:MethodMetadataFactory.java
private void processAnnotationOnMethod(Method method, MethodMetadata.Builder requestTemplateBuilder) {
AnnotatedTypeMetadata methodMetadata = new StandardMethodMetadata(method);
Parameter[] parameters = method.getParameters();
processRequestMappingAnnotation(methodMetadata, requestTemplateBuilder);
for (int i = 0; i < parameters.length; i++) {
Parameter parameter = parameters[i];
processAnnotationsOnParameter(requestTemplateBuilder, parameter, i);
if (parameter.getAnnotations().length == 0) {
requestTemplateBuilder.body(i, parameter.getParameterizedType());
}
}
}
项目:easysocket
文件:ApiUtil.java
/**
* 判断参数是否是Context参数
*
* @param parameter
* 参数
* @return 如果返回true说明此参数是Context类型
*/
private static boolean isContextParam(Parameter parameter) {
Annotation[] annotations = parameter.getAnnotations();
for (Annotation annotation : annotations) {
if (annotation instanceof Context) {
return true;
}
}
return false;
}
项目:openjdk-jdk10
文件:NoName.java
public void run() throws NoSuchMethodException {
final Class<?> cls = noName;
System.err.println("Trying " + cls);
final Method method = cls.getMethod("m", int.class, int.class);
final Parameter[] params = method.getParameters();
System.err.println("Name " + params[0].getName());
System.err.println("Name " + params[1].getName());
}
项目:spockito
文件:Spockito.java
static String parameterRefNameOrNull(final Parameter parameter) {
final Spockito.Ref ref = parameter.getAnnotation(Spockito.Ref.class);
if (ref == null) {
return parameter.isNamePresent() ? parameter.getName() : null;
} else {
return ref.value();
}
}