001// Copyright (c) FIRST and other WPILib contributors. 002// Open Source Software; you can modify and/or share it under the terms of 003// the WPILib BSD license file in the root directory of this project. 004 005package edu.wpi.first.epilogue; 006 007import java.lang.annotation.ElementType; 008import java.lang.annotation.Retention; 009import java.lang.annotation.RetentionPolicy; 010import java.lang.annotation.Target; 011 012/** 013 * Placed on a subclass of {@code ClassSpecificLogger}. Epilogue will detect it at compile time and 014 * allow logging of data types compatible with the logger. 015 * 016 * <pre><code> 017 * {@literal @}CustomLoggerFor(VendorMotorType.class) 018 * class ExampleMotorLogger extends ClassSpecificLogger<VendorMotorType> { } 019 * </code></pre> 020 */ 021@Retention(RetentionPolicy.RUNTIME) 022@Target(ElementType.TYPE) 023public @interface CustomLoggerFor { 024 /** 025 * The class or classes of objects able to be logged with the annotated logger. 026 * 027 * @return the supported data types 028 */ 029 Class<?>[] value(); 030}