package com.mparticle.sdk.model.eventprocessing;

import com.fasterxml.jackson.annotation.JsonProperty;

public final class ApplicationStateTransitionEvent extends Event {

    @JsonProperty(value="application_state", required=true)
    private ApplicationState applicationState;

    @JsonProperty(value="launch_referral")
    private String launchReferral;

    @JsonProperty(value="referral_application")
    private String referralApplication;

    @JsonProperty(value="launch_parameters")
    private String launchParameters;

    @JsonProperty(value="source_package")
    private String sourcePackage;

    public ApplicationState getApplicationState() {
        return applicationState;
    }

    public void setApplicationState(ApplicationState applicationState) {
        this.applicationState = applicationState;
    }

    public ApplicationStateTransitionEvent() {
        super(Type.APPLICATION_STATE_TRANSITION);
    }

    public String getSourcePackage() {
        return sourcePackage;
    }

    public void setSourcePackage(String sourcePackage) {
        this.sourcePackage = sourcePackage;
    }

    public String getLaunchParameters() {
        return launchParameters;
    }

    public void setLaunchParameters(String launchParameters) {
        this.launchParameters = launchParameters;
    }

    public String getReferralApplication() {
        return referralApplication;
    }

    public void setReferralApplication(String referralApplication) {
        this.referralApplication = referralApplication;
    }

    public String getLaunchReferral() {
        return launchReferral;
    }

    public void setLaunchReferral(String launchReferral) {
        this.launchReferral = launchReferral;
    }

    public enum ApplicationState {
        INSTALL,
        UPGRADE,
        INITIALIZE,
        EXIT,
        BACKGROUND,
        FOREGROUND;

        @Override
        public String toString() {
            return this.name().toLowerCase();
        }
    }
}
@@ -936,389 +936,1083 @@
     
-public String getSourcePackage() %7B%0A        return sourcePackage;%0A    %7D%0A%0A    public void setSourcePackage(String sourcePackage) %7B%0A        this.sourcePackage = sourcePackage;%0A    %7D%0A%0A    public String getLaunchParameters() %7B%0A        return launchParameters;%0A    %7D%0A%0A    public void setLaunchParameters(String launchParameters) %7B%0A        this.launchParameters = launchParameters;%0A    %7D%0A
+/**%0A     * This field is collected by the Android SDK at the time of an app launch. It indicates the package%0A     * name of the app that launched the app.%0A     *%0A     * @return%0A     */%0A    public String getSourcePackage() %7B%0A        return sourcePackage;%0A    %7D%0A%0A    public void setSourcePackage(String sourcePackage) %7B%0A        this.sourcePackage = sourcePackage;%0A    %7D%0A%0A    /**%0A     * This field is collected by both the iOS and Android SDKs at the time of an app launch. It will contain%0A     * any options or bundle extras that were passed into the app delegate (iOS) or Activity Intent (Android).%0A     *%0A     * @return%0A     */%0A    public String getLaunchParameters() %7B%0A        return launchParameters;%0A    %7D%0A%0A    public void setLaunchParameters(String launchParameters) %7B%0A        this.launchParameters = launchParameters;%0A    %7D%0A%0A    /**%0A     * This field is collected by the iOS SDK at the time of an app launch. It will contain the source application%0A     * indicated by the iOS framework's UIApplicationOpenURLOptionsSourceApplicationKey key.%0A     *%0A     * @return%0A     */
 %0A   
@@ -2220,32 +2220,226 @@
 ication;%0A    %7D%0A%0A
+    /**%0A     * This field is collected by both the iOS and Androd SDKs at the time of an app launch. It will contain%0A     * the URI associated with the app launch.%0A     *%0A     * @return%0A     */%0A
     public Strin

Add Javadocs for new AST event fields