All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.jaemon.dinger.core.DingerParameterNameDiscoverer Maven / Gradle / Ivy

The newest version!
/*
 * Copyright ©2015-2023 Jaemon. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.github.jaemon.dinger.core;

import org.springframework.core.*;

/**
 * {@link ParameterNameDiscoverer} implementation that tries several discoverer
 * delegates in succession. Those added first in the {@code addDiscoverer} method
 * have highest priority. If one returns {@code null}, the next will be tried.
 *
 * 

The default behavior is to return {@code null} if no discoverer matches. * * @author Jaemon * @since 1.2 * @see org.springframework.core.PrioritizedParameterNameDiscoverer */ /** * Default implementation of the {@link ParameterNameDiscoverer} strategy interface, * using the Java 8 standard reflection mechanism (if available), and falling back * to the ASM-based {@link LocalVariableTableParameterNameDiscoverer} for checking * debug information in the class file. * *

If a Kotlin reflection implementation is present, * {@link KotlinReflectionParameterNameDiscoverer} is added first in the list and * used for Kotlin classes and interfaces. When compiling or running as a GraalVM * native image, the {@code KotlinReflectionParameterNameDiscoverer} is not used. * *

Further discoverers may be added through {@link #addDiscoverer(ParameterNameDiscoverer)}. * * @author Jaemon * @since 1.0 * @see StandardReflectionParameterNameDiscoverer * @see LocalVariableTableParameterNameDiscoverer * @see KotlinReflectionParameterNameDiscoverer */ public class DingerParameterNameDiscoverer extends PrioritizedParameterNameDiscoverer { public DingerParameterNameDiscoverer() { // addDiscoverer(new StandardReflectionParameterNameDiscoverer()); addDiscoverer(new AnnotationParameterNameDiscoverer()); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy