package nl.ipo.cds.etl.theme; import java.beans.PropertyDescriptor; import java.util.Collections; import java.util.HashSet; import java.util.Set; import org.springframework.context.MessageSource; public class ObjectDescriptor<T> { private final Class<T> objectClass; private final Set<AttributeDescriptor<T>> attributeDescriptors; private final MessageSource messageSource; ObjectDescriptor (final Class<T> objectClass, final MessageSource messageSource, final PropertyDescriptor ... propertyDescriptors) { this.objectClass = objectClass; this.attributeDescriptors = new HashSet<AttributeDescriptor<T>> (); this.messageSource = messageSource; for (final PropertyDescriptor propertyDescriptor: propertyDescriptors) { this.attributeDescriptors.add (new AttributeDescriptor<T> (this, propertyDescriptor)); } } public Class<T> getObjectClass () { return objectClass; } public MessageSource getMessageSource () { return messageSource; } public Set<AttributeDescriptor<T>> getAttributeDescriptors () { return Collections.unmodifiableSet (attributeDescriptors); } }