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

com.alibaba.qlexpress4.member.FieldHandler Maven / Gradle / Ivy

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