/*
 * Copyright (c) 2011 Google, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.google.common.truth;

/**
 * A skeletal implementation of {@code FailureStrategy} that defines {@link #fail(String)} and
 * {@link #failComparing} in terms of {@link #fail(String, Throwable)}. For most implementations
 * this should be sufficient and easier to use than directly extending {@code FailureStrategy}.
 */
public abstract class AbstractFailureStrategy extends FailureStrategy {
  @Override
  public final void fail(String message) {
    fail(message, null);
  }

  @Override
  public final void failComparing(String message, CharSequence expected, CharSequence actual) {
    failComparing(message, expected, actual, null);
  }

  @Override
  public void failComparing(
      String message, CharSequence expected, CharSequence actual, Throwable cause) {
    // TODO(diamondm) should this be fail(Platform.comparisonFailure(...).getMessage());?
    // It unnecessarily allocates an exception, but ensures a consistent failure message.
    fail(StringUtil.messageFor(message, expected, actual), cause);
  }
}

@@ -725,18 +725,23 @@
  and
+ both
 %0A * %7B@
-link
+code
  #fa
@@ -752,16 +752,24 @@
 mparing%7D
+ methods
  in term
@@ -815,16 +815,19 @@
 For most
+%0A *
  impleme
@@ -834,19 +834,16 @@
 ntations
-%0A *
  this sh
@@ -905,24 +905,27 @@
 nding %7B@code
+%0A *
  FailureStra

Document that AbstractFailureStrategy defines the other failComparing method, as well.