001package jmri; 002 003import java.lang.annotation.*; 004import javax.annotation.concurrent.NotThreadSafe; 005 006/** 007 * Annotation denoting that a method or constructor must be called on the layout thread. 008 * <p> 009 * A class with one or more methods that must be called on a particular thread is by definition 010 * {@link NotThreadSafe}, so please include the @NotThreadSafe annotation on the class. 011 * <p> 012 * For more information on JMRI threading conventions, see the 013 * <a href="http://jmri.org/help/en/html/doc/Technical/Threads.shtml">JMRI Threading docoumentation page</a>. 014 * 015 * @author Bob Jacobsen Copyright 2018 016 */ 017 018@Retention(RetentionPolicy.CLASS) // For access by SpotBugs et al 019@Target({ElementType.METHOD, ElementType.CONSTRUCTOR}) 020@Documented 021@Inherited 022 023public @interface InvokeOnLayoutThread {} 024