
com.alibaba.qlexpress4.member.FieldHandler Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of qlexpress4 Show documentation
Show all versions of qlexpress4 Show documentation
QLExpress is a powerful, lightweight, dynamic language for the Java platform aimed at improving
developers’ productivity in different business scenes.
The newest version!
package com.alibaba.qlexpress4.member;
import com.alibaba.qlexpress4.annotation.QLAlias;
import com.alibaba.qlexpress4.utils.QLAliasUtils;
import java.lang.reflect.Field;
/**
* Author: TaoKan
*/
public class FieldHandler {
public static class Preferred {
public static String preHandleAlias(Class> baseClass, String propertyName) {
Field[] fields = baseClass.getDeclaredFields();
for (Field field : fields) {
if (QLAliasUtils.matchQLAlias(propertyName, field.getAnnotationsByType(QLAlias.class))) {
return field.getName();
}
}
Class> superclass = baseClass.getSuperclass();
if (superclass != null) {
return preHandleAlias(superclass, propertyName);
}
return propertyName;
}
public static Field gatherFieldRecursive(Class> baseClass, String propertyName) {
Field[] fields = baseClass.getDeclaredFields();
for (Field field : fields) {
if (propertyName.equals(field.getName())) {
return field;
}
if (QLAliasUtils.matchQLAlias(propertyName, field.getAnnotationsByType(QLAlias.class))) {
return field;
}
}
Class> superclass = baseClass.getSuperclass();
if (superclass != null) {
return gatherFieldRecursive(superclass, propertyName);
}
return null;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy