package fr.lteconsulting.hexa.classinfo.internal; import java.util.ArrayList; import java.util.List; import fr.lteconsulting.hexa.classinfo.Method; public abstract class MethodBase implements Method { private final Class<?> _returnValueClass; private final String _fieldName; private final Class<?>[] _parameterTypes; private List<Class<?>> _parameterTypesList; protected MethodBase( Class<?> clazz, String fieldName, Class<?>[] parameterTypes ) { _returnValueClass = clazz; _fieldName = fieldName; _parameterTypes = parameterTypes; } @Override public String getName() { return _fieldName; } @Override public Class<?> getReturnType() { return _returnValueClass; } @Override public List<Class<?>> getParameterTypes() { if( _parameterTypesList == null ) { _parameterTypesList = new ArrayList<Class<?>>(); for( int i = 0; i < _parameterTypes.length; i++ ) _parameterTypesList.add( _parameterTypes[i] ); } return _parameterTypesList; } }