package rocks.inspectit.ui.rcp.preferences.valueproviders;
import java.util.Collection;
import java.util.HashSet;
/**
* Extension of the {@link CollectionPreferenceValueProvider} that can save classes.
*
* @author Ivan Senic
*
*/
public class ClassCollectionPreferenceValueProvider extends CollectionPreferenceValueProvider {
/**
* {@inheritDoc}
*/
@Override
protected Collection<Object> getCollectionForResults() {
return new HashSet<>();
}
/**
* {@inheritDoc}
*/
@Override
protected String getValueForCollectionMember(Object object) {
if (object instanceof Class) {
return ((Class<?>) object).getName();
}
return super.getValueForCollectionMember(object);
}
/**
* {@inheritDoc}
*/
@Override
protected Object getObjectForCollectionMember(String value) {
try {
return Class.forName(value);
} catch (ClassNotFoundException e) {
return super.getValueForCollectionMember(value);
}
}
}