/*
 * Copyright 2014-present Facebook, 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.facebook.litho.annotations;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.CLASS)
public @interface PropDefault {
  ResType resType() default ResType.NONE;
  int resId() default 0;
}

@@ -728,115 +728,1422 @@
 y;%0A%0A
-@Retention(RetentionPolicy.CLASS)%0Apublic @interface PropDefault %7B%0A  ResType resType() default ResType.NONE;
+/**%0A * %7B@code PropDefault%7D can be used for setting the default value of an optional %7B@link Prop%7D in a%0A * %7B@link LayoutSpec%7D or %7B@link MountSpec%7D. The field must be a constant (i.e. static final) with%0A * the same name and type as the %7B@code Prop%7D.%0A *%0A * %3Cp%3E%3Cb%3EFor example:%3C/b%3E %3Cbr%3E%0A *%0A * %3Cpre%3E%3Ccode%3E%7B@literal @LayoutSpec%7D%0A * class SomeSpec %7B%0A *%0A *  %7B@literal @PropDefault%7D%0A *   static final String name = %22John Doe%22;  // default value for name%0A *%0A *  %7B@literal @OnCreateLayout%7D%0A *   static Component onCreateLayout(%0A *     ComponentContext c,%0A *    %7B@literal @Prop(optional = true)%7D String name) %7B%0A *%0A *     return Text.create(c)%0A *       .text(title.getTitle())%0A *       .textSizeSp(16)%0A *       .marginDip(YogaEdge.BOTTOM, 4)%0A *       .build();%0A *   %7D%0A * %7D%3C/code%3E%3C/pre%3E%0A */%0A@Retention(RetentionPolicy.CLASS)%0Apublic @interface PropDefault %7B%0A%0A  /**%0A   * Declares that the default value must be a resource of the specified %7B@link ResType%7D.%0A   *%0A   * %3Cp%3E%3Cb%3EFor example:%3C/b%3E %3Cbr%3E%0A   *%0A   * %3Cpre%3E%3Ccode%3E%7B@literal @LayoutSpec%7D%0A   * class SomeSpec %7B%0A   *%0A   *  %7B@literal @PropDefault(resType = ResType.String, resId = R.string.default_name)%7D%0A   *   static final String name = null;%0A   *%0A   * %7D%3C/code%3E%3C/pre%3E%0A   *%0A   * @return A valid resource type.%0A   */%0A  ResType resType() default ResType.NONE;%0A%0A  /**%0A   * Sets an Android resource as the default value of the %7B@link Prop%7D.%0A   *%0A   * @return An Android resource id.%0A   */
 %0A  i

Add JavaDoc PropDefault.