/** * Copyright (c) 2017-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ package com.facebook.litho.annotations; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** * An annotation for a Spec method that generates tree props. * These tree props will be passed silently to all of the Component's children. * * Tree props are stored in a map keyed on their individual class object, meaning there will only be * one entry for tree props of any given type. PLEASE DO NOT USE COMMON JAVA CLASSES, for example, * String, Integer etc; creates a wrapper class instead. * * <p>Example usage: * <code> * * {@literal @}LayoutSpec * public class MySpec { * * {@literal @}OnCreateTreeProp * SomeTreePropClass onCreateSomeTreeProp( * ComponentsContext c, * {@literal @}Prop SomeProp prop) { * return new SomeTreePropClass(prop.getSomeProperty()); * } * } * </code> */ @Retention(RetentionPolicy.RUNTIME) public @interface OnCreateTreeProp { }