package org.robobinding.binder; import static org.mockito.Mockito.mock; import org.robobinding.AttributeResolutionException; import org.robobinding.ViewResolutionErrorsException; import org.robobinding.attribute.MissingRequiredAttributesException; import org.robobinding.viewattribute.AttributeBindingException; import android.view.View; import com.google.common.collect.Lists; /** * * @since 1.0 * @version $Revision: 1.0 $ * @author Cheng Wei */ public class ViewInflationErrorsBuilder { private String viewName; private ViewResolutionErrorsException viewResolutionErrors; private ViewBindingErrors viewBindingErrors; private ViewInflationErrorsBuilder(String viewName) { this.viewName = viewName; View view = mock(View.class); viewResolutionErrors = new ViewResolutionErrorsException(view); viewBindingErrors = new ViewBindingErrors(view); } public static ViewInflationErrorsBuilder aViewInflationErrors(String viewName) { return new ViewInflationErrorsBuilder(viewName); } public ViewInflationErrorsBuilder withAttributeResolutionErrorOf(String attribute, String errorMessage) { viewResolutionErrors.addAttributeError(new AttributeResolutionException(attribute, errorMessage)); return this; } public ViewInflationErrorsBuilder withMissingRequiredAttributesResolutionErrorOf(String... missingAttributes) { viewResolutionErrors.addMissingRequiredAttributeError(new MissingRequiredAttributesException(Lists.newArrayList(missingAttributes))); return this; } public ViewInflationErrorsBuilder withAttributeBindingErrorOf(String attribute, String errorMessage) { viewBindingErrors.addAttributeError(new AttributeBindingException(attribute, new RuntimeException(errorMessage))); return this; } public ViewInflationErrors build() { ViewInflationErrors error = new ViewInflationErrors(viewResolutionErrors) { @Override public String getViewName() { return viewName; } }; error.setBindingErrors(viewBindingErrors); return error; } }