public PropertyData(final Element element, final Property propertyAnnotation, final AnnotationMirror propertyAnnotationMirror, final Elements elementUtils) { fieldName = element.getSimpleName().toString(); typeFullName = element.asType().toString(); final char elementNameFirstLetter = fieldName.charAt(0); final char elementNameCapitalizedFirstLetter = Character.toUpperCase(elementNameFirstLetter); final String nameWithoutFirstLetter = fieldName.substring(1); capitalizedFieldName = elementNameCapitalizedFirstLetter + nameWithoutFirstLetter; shared = propertyAnnotation.shared(); final TypeElement typeElement = elementUtils.getTypeElement(element.asType().toString()); subPreference = typeElement != null && typeElement.getAnnotation(WorkbenchPreference.class) != null; formType = propertyAnnotation.formType(); privateAccess = element.getModifiers().contains(Modifier.PRIVATE); typeKind = element.asType().getKind(); setupValidators(propertyAnnotationMirror, elementUtils); }
public PropertyData(final Element element, final Property propertyAnnotation, final AnnotationMirror propertyAnnotationMirror, final Elements elementUtils) { fieldName = element.getSimpleName().toString(); typeFullName = element.asType().toString(); final char elementNameFirstLetter = fieldName.charAt(0); final char elementNameCapitalizedFirstLetter = Character.toUpperCase(elementNameFirstLetter); final String nameWithoutFirstLetter = fieldName.substring(1); capitalizedFieldName = elementNameCapitalizedFirstLetter + nameWithoutFirstLetter; shared = propertyAnnotation.shared(); final TypeElement typeElement = elementUtils.getTypeElement(element.asType().toString()); subPreference = typeElement != null && typeElement.getAnnotation(WorkbenchPreference.class) != null; formType = propertyAnnotation.formType(); privateAccess = element.getModifiers().contains(Modifier.PRIVATE); typeKind = element.asType().getKind(); setupValidators(propertyAnnotationMirror, elementUtils); }
private <U extends BasePreference<U>, T extends BasePreferencePortable<U>> void save(final Class<U> clazz, final T portablePreference, final PreferenceScope scope) throws IllegalAccessException { for (Field field : portablePreference.getPojoClass().getDeclaredFields()) { Property propertyAnnotation = field.getAnnotation(Property.class); if (propertyAnnotation != null) { if (field.getType().isAnnotationPresent(WorkbenchPreference.class)) { boolean shared = propertyAnnotation.shared(); field.setAccessible(true); if (shared) { saveSharedPreference(portablePreference, field, scope); } else { saveSubPreference(portablePreference, field, scope); } } } } }
private <U extends BasePreference<U>, T extends BasePreferencePortable<U>> T load(final Class<U> clazz, T portablePreference, final PreferenceScopeResolutionStrategyInfo scopeResolutionStrategyInfo) throws IllegalAccessException { if (portablePreference == null) { portablePreference = lookupPortablePreference(clazz); } for (Field field : portablePreference.getPojoClass().getDeclaredFields()) { Property propertyAnnotation = field.getAnnotation(Property.class); if (propertyAnnotation != null) { if (field.getType().isAnnotationPresent(WorkbenchPreference.class)) { final Class<? extends BasePreference<?>> propertyType = (Class<? extends BasePreference<?>>) field.getType(); boolean shared = propertyAnnotation.shared(); field.setAccessible(true); if (shared) { BasePreferencePortable<?> loadedSharedProperty = loadSharedPreference(field, scopeResolutionStrategyInfo); field.set(portablePreference, loadedSharedProperty); } else { final BasePreferencePortable<?> subPreferenceValue = loadSubPreferenceValue(portablePreference, field, scopeResolutionStrategyInfo); field.set(portablePreference, subPreferenceValue); } } } } return portablePreference; }
propertyAnnotation.shared(), false, propertyBundleKey,