#557 add Javadoc for the Accessor

This commit is contained in:
Filip Hrisafov 2016-12-19 18:51:04 +01:00 committed by GitHub
parent f94990270f
commit 228c1f9f1b
2 changed files with 28 additions and 12 deletions

View File

@ -261,11 +261,13 @@ public class TypeFactory {
* Get the ExecutableType for given method as part of usedMapper. Possibly parameterized types in method declaration
* will be evaluated to concrete types then.
*
* <b>IMPORTANT:</b> This should only be used from the Processors, as they are operating over executable elements.
* The internals should not be using this function and should not be using the {@link ExecutableElement} directly.
*
* @param includingType the type on which's scope the method type shall be evaluated
* @param method the method
* @return the ExecutableType representing the method as part of usedMapper
*/
@Deprecated
public ExecutableType getMethodType(DeclaredType includingType, ExecutableElement method) {
TypeMirror asMemberOf = typeUtils.asMemberOf( includingType, method );
return (ExecutableType) asMemberOf;
@ -301,10 +303,11 @@ public class TypeFactory {
public List<Parameter> getParameters(DeclaredType includingType, Accessor accessor) {
ExecutableElement method = accessor.getExecutable();
if ( method == null ) {
TypeMirror methodType = getMethodType( includingType, accessor.getElement() );
if ( method == null || methodType.getKind() != TypeKind.EXECUTABLE ) {
return new ArrayList<Parameter>();
}
return getParameters( getMethodType( includingType, method ), method );
return getParameters( (ExecutableType) methodType, method );
}
public List<Parameter> getParameters(ExecutableType methodType, ExecutableElement method) {
@ -330,11 +333,6 @@ public class TypeFactory {
return result;
}
@Deprecated
public Type getReturnType(DeclaredType includingType, ExecutableElement method) {
return getReturnType( getMethodType( includingType, method ) );
}
public Type getReturnType(DeclaredType includingType, Accessor accessor) {
Type type;
TypeMirror accessorType = getMethodType( includingType, accessor.getElement() );
@ -356,10 +354,6 @@ public class TypeFactory {
return getType( method.getReturnType() );
}
public List<Type> getThrownTypes(DeclaredType includingType, ExecutableElement method) {
return getThrownTypes( getMethodType( includingType, method ) );
}
public List<Type> getThrownTypes(ExecutableType method) {
List<Type> thrownTypes = new ArrayList<Type>();
for ( TypeMirror exceptionType : method.getThrownTypes() ) {

View File

@ -26,17 +26,39 @@ import javax.lang.model.element.Name;
import javax.lang.model.type.TypeMirror;
/**
* This represents an Accessor that can be used for writing/reading a property to/from a bean.
*
* @author Filip Hrisafov
*/
public interface Accessor {
/**
* This returns the type that this accessor gives as a return.
*
* e.g. The {@link ExecutableElement#getReturnType()} if this is a method accessor,
* or {@link javax.lang.model.element.VariableElement#asType()} for field accessors.
*
* @return the type that the accessor gives as a return
*/
TypeMirror getAccessedType();
/**
* @return the simple name of the accessor
*/
Name getSimpleName();
/**
* @return the set of modifiers that the accessor has
*/
Set<Modifier> getModifiers();
/**
* @return the {@link ExecutableElement}, or {@code null} if the accessor does not have one
*/
ExecutableElement getExecutable();
/**
* @return the underlying {@link Element}
*/
Element getElement();
}