package org.robobinding.viewattribute.property; /** * @since 1.0 * @author Cheng Wei * */ public class OneWayMultiTypePropertyViewAttributeNoMatching<ViewType> implements OneWayMultiTypePropertyViewAttribute<ViewType> { private OneWayMultiTypePropertyViewAttribute<ViewType> forwarding; public OneWayMultiTypePropertyViewAttributeNoMatching(OneWayMultiTypePropertyViewAttribute<ViewType> target) { this.forwarding = target; } @Override public OneWayPropertyViewAttribute<ViewType, ?> create(ViewType view, Class<?> propertyType) { OneWayPropertyViewAttribute<ViewType, ?> viewAttribute = forwarding.create(view, propertyType); if(viewAttribute == null) { Class<?> multiTypePropertyViewAttributeClass = forwarding.getClass(); throw new RuntimeException("Could not find a suitable attribute in " + multiTypePropertyViewAttributeClass.getName() + " for property type: " + propertyType); } return viewAttribute; } }