if (access == null) { // class level
meta = null;
} else if (access.getElementType() == ElementType.METHOD && !metaConstraint.getMember().getName().startsWith("get")) { // TODO: better getter test
final Method method = Method.class.cast(metaConstraint.getMember());
meta = metabean.getMethod(method);
final MetaMethod metaMethod;
if (meta == null) {
meta = new MetaMethod(metabean, method);
metaMethod = MetaMethod.class.cast(meta);
metabean.addMethod(method, metaMethod);
} else {
metaMethod = MetaMethod.class.cast(meta);
}
final Integer index = metaConstraint.getIndex();
if (index != null && index >= 0) {
MetaParameter param = metaMethod.getParameter(index);
if (param == null) {
param = new MetaParameter(metaMethod, index);
metaMethod.addParameter(index, param);
}
param.addAnnotation(metaConstraint.getAnnotation());
} else {
metaMethod.addAnnotation(metaConstraint.getAnnotation());
}
continue;
} else if (access.getElementType() == ElementType.CONSTRUCTOR){
final Constructor<?> constructor = Constructor.class.cast(metaConstraint.getMember());
meta = metabean.getConstructor(constructor);