package co.smartreceipts.android.analytics.events; import android.support.annotation.NonNull; import java.util.List; /** * A simple model-class contract, which can be used to assist with tracking usage analytics in the app */ public interface Event { /** * Defines the category in which this event resides */ interface Category { /** * @return the {@link String} representation of this */ @NonNull String name(); } /** * Defines the name of this specific event */ interface Name { /** * @return the {@link String} representation of this */ @NonNull String name(); } /** * @return the {@link Category} associated with this event */ @NonNull Category category(); /** * @return the {@link Name} associated with this event */ @NonNull Name name(); /** * @return a {@link List} of {@link DataPoint} objeccts associated with this event */ @NonNull List<DataPoint> getDataPoints(); }