All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.mobileconnectors.amazonmobileanalytics.AnalyticsEvent Maven / Gradle / Ivy

There is a newer version: 2.20.1
Show newest version
/*
 * Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */

package com.amazonaws.mobileconnectors.amazonmobileanalytics;

import java.util.Map;

/**
 * Represents the any useful action you wish to record within your application
 * 

* The example below demonstrates how to record events. *

* *
 * // get the event client from your amazon MobileAnalyticsManager instance
 * EventClient eventClient = mobileAnalyticsManager.getEventClient();
 *
 * // create and record the view event
 * Event level1CompleteEvent = eventClient.createEvent("level1Complete");
 * eventClient.recordEvent(level1CompleteEvent);
 *
 * // record if the user bought an upgrade (conversion)
 * if (userBoughtUpgrade) {
 *     Event level1UserBoughtUpgradeEvent = eventClient.createEvent("level1UserBoughtUpgrade");
 *     eventClient.recordEvent(level1UserBoughtUpgradeEvent);
 * }
 * 
*/ public interface AnalyticsEvent { /** * Adds an attribute to this {@link AnalyticsEvent} with the specified key. * Only 40 attributes/metrics are allowed to be added to an Event. If 40 * attribute/metrics already exist on this Event, the call may be ignored. * * @param name The name of the attribute. The name will be truncated if it * exceeds 50 characters. * @param value The value of the attribute. The value will be truncated if * it exceeds 200 characters. */ public void addAttribute(String name, String value); /** * Determines if this {@link AnalyticsEvent} contains a specific attribute * * @param attributeName The name of the attribute * @return true if this {@link AnalyticsEvent} has an attribute with the * specified name, false otherwise */ public boolean hasAttribute(String attributeName); /** * Adds a metric to this {@link AnalyticsEvent} with the specified key. Only * 40 attributes/metrics are allowed to be added to an Event. If 50 * attribute/metrics already exist on this Event, the call may be ignored. * * @param name The name of the metric. The name will be truncated if it * exceeds 50 characters. * @param value The value of the metric. */ public void addMetric(String name, Double value); /** * Determines if this {@link AnalyticsEvent} contains a specific metric. * * @param metricName The name of the metric * @return true if this {@link AnalyticsEvent} has a metric with the * specified name, false otherwise */ public boolean hasMetric(String metricName); /** * Returns the name/type of this {@link AnalyticsEvent} * * @return the name/type of this {@link AnalyticsEvent} */ public String getEventType(); /** * Returns the value of the attribute with the specified name. * * @param name The name of the attribute to return * @return The attribute with the specified name, or null if attribute does * not exist */ public String getAttribute(String name); /** * Returns the value of the metric with the specified name. * * @param name The name of the metric to return * @return The metric with the specified name, or null if metric does not * exist */ public Double getMetric(String name); /** * Adds an attribute to this {@link AnalyticsEvent} with the specified key. * Only 40 attributes/metrics are allowed to be added to an * {@link AnalyticsEvent}. If 40 attribute/metrics already exist on this * {@link AnalyticsEvent}, the call may be ignored. * * @param name The name of the attribute. The name will be truncated if it * exceeds 50 characters. * @param value The value of the attribute. The value will be truncated if * it exceeds 200 characters. * @return The same {@link AnalyticsEvent} instance is returned to allow for * method chaining. */ public AnalyticsEvent withAttribute(String name, String value); /** * Adds a metric to this {@link AnalyticsEvent} with the specified key. Only * 40 attributes/metrics are allowed to be added to an * {@link AnalyticsEvent}. If 40 attribute/metrics already exist on this * {@link AnalyticsEvent}, the call may be ignored. * * @param name The name of the metric. The name will be truncated if it * exceeds 50 characters. * @param value The value of the metric. * @return The same {@link AnalyticsEvent} instance is returned to allow for * method chaining. */ public AnalyticsEvent withMetric(String name, Double value); /** * Returns a map of all attributes contained within this * {@link AnalyticsEvent} * * @return a map of all attributes, where the attribute names are the keys * and the attribute values are the values */ public Map getAllAttributes(); /** * Returns a map of all metrics contained within this {@link AnalyticsEvent} * * @return a map of all metrics, where the metric names are the keys and the * metric values are the values */ public Map getAllMetrics(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy