Example usage for org.springframework.util ReflectionUtils isPublicStaticFinal

List of usage examples for org.springframework.util ReflectionUtils isPublicStaticFinal

Introduction

In this page you can find the example usage for org.springframework.util ReflectionUtils isPublicStaticFinal.

Prototype

public static boolean isPublicStaticFinal(Field field) 

Source Link

Document

Determine whether the given field is a "public static final" constant.

Usage

From source file:org.web4thejob.module.CalendarModule.java

@Override
public Collection<L10nString> getLocalizableStrings(final Set<Class> classes) {
    final Set<Class> localizableModuleClasses = new HashSet<Class>();
    final List<L10nString> strings = new ArrayList<L10nString>();

    //add here all module classes that need to display localizable resources on external panels
    localizableModuleClasses.add(CalendarSettingEnum.class);

    for (Class<?> clazz : localizableModuleClasses) {
        ReflectionUtils.doWithFields(clazz, new ReflectionUtils.FieldCallback() {
            @Override//from  w ww  . j a  v a  2 s .com
            public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException {
                strings.add((L10nString) field.get(null));
            }
        }, new ReflectionUtils.FieldFilter() {
            @Override
            public boolean matches(Field field) {
                return ReflectionUtils.isPublicStaticFinal(field) && L10nString.class.equals(field.getType())
                        && classes.contains(
                                ((L10nString) ReflectionUtils.getField(field, null)).getDeclaringClass());
            }
        });
    }

    return strings;
}

From source file:org.web4thejob.util.L10nUtil.java

public static List<L10nString> getLocalizableResources(final Class<?> localizable) {
    final List<L10nString> strings = new ArrayList<L10nString>();
    final Set<Class> classes = new HashSet<Class>();
    classes.add(localizable);/*www  .  j  a  v a 2  s.c  o  m*/
    classes.addAll(ClassUtils.getAllInterfacesForClassAsSet(localizable));

    for (Class<?> clazz : classes) {
        ReflectionUtils.doWithFields(clazz, new ReflectionUtils.FieldCallback() {
            @Override
            public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException {
                strings.add((L10nString) field.get(null));
            }
        }, new ReflectionUtils.FieldFilter() {
            @Override
            public boolean matches(Field field) {
                return ReflectionUtils.isPublicStaticFinal(field) && L10nString.class.equals(field.getType());
            }
        });
    }

    //get localizable resources from extension modules
    for (Module module : ContextUtil.getModules()) {
        if (module instanceof LocalizableModule) {
            strings.addAll(((LocalizableModule) module).getLocalizableStrings(classes));
        }
    }

    // add commands,settings and global strings here...
    if (DesktopLayoutPanel.class.isAssignableFrom(localizable)) {
        for (CommandEnum commandEnum : CommandEnum.values()) {
            L10nString l10nString = new L10nString(CommandEnum.class, commandEnum.name(),
                    L10nUtil.getMessage(commandEnum.getClass(), commandEnum.name(), commandEnum.name()));
            strings.add(l10nString);
        }

        for (SettingEnum settingEnum : SettingEnum.values()) {
            L10nString l10nString = new L10nString(SettingEnum.class, settingEnum.name(),
                    L10nUtil.getMessage(settingEnum.getClass(), settingEnum.name(), settingEnum.name()));
            strings.add(l10nString);
        }

        for (Condition condition : Condition.getConditions()) {
            L10nString l10nString = new L10nString(Condition.class, condition.getKey(), condition.getKey());
            strings.add(l10nString);
        }
    }

    return strings;
}