public void process() throws Exception { log.trace("Processing preference descriptors"); for (PreferenceDescriptor desc : descriptors) { log.trace("Descriptor: {}", desc); java.util.prefs.Preferences prefs = desc.getPreferences(); log.trace("Using preferences: {}", prefs); String key = desc.getId(); String value = prefs.get(key, null); log.trace(" {}={}", key, value); if (value != null) { Setter setter = desc.getSetter(); setter.set(Converters.getValue(setter.getType(), value)); } } } }
private void discoverDescriptor(final Preferences base, final Object bean, final AnnotatedElement element) { // base could be null assert bean != null; assert element != null; Preference pref = element.getAnnotation(Preference.class); if (pref != null) { log.trace("Discovered preference for: {}", element); PreferenceDescriptor desc = new PreferenceDescriptor(base, pref, SetterFactory.create(element, bean)); desc.setBasePath(getBasePath()); descriptors.add(desc); } }
public String buildPath() { StringBuffer buff = new StringBuffer(); if (getBasePath() != null) { buff.append(getBasePath()); } if (base != null) { if (buff.length() != 0) { buff.append("/"); } buff.append(base.path()); } if (getPath() != null) { if (buff.length() != 0) { buff.append("/"); } buff.append(getPath()); } if (buff.length() == 0) { return null; } else { return buff.toString(); } }
public String getId() { if (name != null) { return name; } return getSetter().getName(); }
public java.util.prefs.Preferences getPreferences() { String path = buildPath(); if (path == null) { Class type = getType(); if (system) { return java.util.prefs.Preferences.systemNodeForPackage(type); } else { return java.util.prefs.Preferences.userNodeForPackage(type); } } else { if (system) { return java.util.prefs.Preferences.systemRoot().node(path); } else { return java.util.prefs.Preferences.userRoot().node(path); } } } }
public Class getType() { Class type = this.type; if (type == UNINITIALIZED_CLASS) { type = getSetter().getBean().getClass(); } return type; }
@SuppressWarnings("unused") public String getPreferences() { if (pp.getDescriptors().isEmpty()) { return ""; } PrintBuffer buff = new PrintBuffer(); printHeader(buff, "section.preferences"); for (PreferenceDescriptor pd : pp.getDescriptors()) { String text = String.format(" %s @|bold %s|@ (%s)", pd.getPreferences().absolutePath(), pd.getId(), pd.getSetter().getType().getSimpleName()); buff.println(AnsiRenderer.render(text)); } return buff.toString(); }