public SelectionProperty getSelectionProperty(TreeLogger logger,
String propertyName) throws BadPropertyValueException {
Property prop = getProperty(propertyName);
if (prop instanceof BindingProperty) {
final BindingProperty cprop = (BindingProperty) prop;
final String name = cprop.getName();
final String value;
if (prevAnswers.containsKey(propertyName)) {
value = prevAnswers.get(propertyName);
} else {
value = computePropertyValue(logger, propertyName, cprop);
prevAnswers.put(propertyName, value);
}
final String fallback = cprop.getFallback();
final SortedSet<String> possibleValues = new TreeSet<String>();
for (String v : cprop.getDefinedValues()) {
possibleValues.add(v);
}
return new DefaultSelectionProperty(value, fallback, name,
possibleValues);
} else {