package org.robobinding.viewattribute.property; /** * @since 1.0 * @author Cheng Wei * */ public class TwoWayMultiTypePropertyViewAttributeNoMatching<ViewType> implements TwoWayMultiTypePropertyViewAttribute<ViewType> { private TwoWayMultiTypePropertyViewAttribute<ViewType> forwarding; public TwoWayMultiTypePropertyViewAttributeNoMatching(TwoWayMultiTypePropertyViewAttribute<ViewType> target) { this.forwarding = target; } @Override public TwoWayPropertyViewAttribute<ViewType, ?, ?> create(ViewType view, Class<?> propertyType) { TwoWayPropertyViewAttribute<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; } }