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.networktables;
006
007import edu.wpi.first.util.sendable.Sendable;
008import edu.wpi.first.util.sendable.SendableBuilder;
009
010/** Interface for NetworkTable Sendable objects. */
011@SuppressWarnings("PMD.ImplicitFunctionalInterface")
012public interface NTSendable extends Sendable {
013  /**
014   * Initializes this {@link Sendable} object.
015   *
016   * @param builder sendable builder
017   */
018  void initSendable(NTSendableBuilder builder);
019
020  @Override
021  default void initSendable(SendableBuilder builder) {
022    if (builder.getBackendKind() == SendableBuilder.BackendKind.kNetworkTables) {
023      initSendable((NTSendableBuilder) builder);
024    }
025  }
026}