Package com.eclipsesource.tabris.tracking.tracker

Source Code of com.eclipsesource.tabris.tracking.tracker.ConsoleTracker

/*******************************************************************************
* Copyright (c) 2014 EclipseSource and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*    EclipseSource - initial API and implementation
******************************************************************************/
package com.eclipsesource.tabris.tracking.tracker;

import com.eclipsesource.tabris.tracking.Order;
import com.eclipsesource.tabris.tracking.Tracker;
import com.eclipsesource.tabris.tracking.TrackingEvent;
import com.eclipsesource.tabris.tracking.TrackingEvent.EventType;
import com.eclipsesource.tabris.tracking.TrackingInfo;


/**
* <p>
* The {@link ConsoleTracker} is a simple example implementation of a {@link Tracker}. It prints every event tracked
* to the console. You may use the {@link ConsoleTracker} as a template to implement your own {@link Tracker}.
* </p>
* @since 1.4
*/
public class ConsoleTracker implements Tracker {

  @Override
  public void handleEvent( TrackingEvent event ) {
    System.out.println( getEventString( event ) );
  }

  private String getEventString( TrackingEvent event ) {
    StringBuilder builder = new StringBuilder();
    appendEventPrefix( builder, event );
    appendEventDetail( builder, event );
    appendEventInfo( builder, event );
    return builder.toString();
  }

  private void appendEventPrefix( StringBuilder builder, TrackingEvent event ) {
    builder.append( event.getType() + " - " );
  }

  private void appendEventDetail( StringBuilder builder, TrackingEvent event ) {
    if( event.getType() == EventType.PAGE_VIEW ) {
      appendPageView( builder, event );
    } else if( event.getType() == EventType.ACTION ) {
      appendAction( builder, event );
    } else if( event.getType() == EventType.SEARCH ) {
      appendSearch( builder, event );
    } else if( event.getType() == EventType.ORDER ) {
      appendOrder( builder, event );
    } else if( event.getType() == EventType.EVENT ) {
      appendEvent( builder, event );
    }
  }

  private void appendPageView( StringBuilder builder, TrackingEvent event ) {
    builder.append( ( String )event.getDetail() );
  }

  private void appendAction( StringBuilder builder, TrackingEvent event ) {
    builder.append( ( String )event.getDetail() );
  }

  private void appendSearch( StringBuilder builder, TrackingEvent event ) {
    builder.append( "query=" );
    builder.append( event.getInfo().getSearchQuery() );
  }

  private void appendOrder( StringBuilder builder, TrackingEvent event ) {
    Order info = ( Order )event.getDetail();
    builder.append( info.getOrderId() );
    builder.append( " (" );
    builder.append( info.getTotal() + ", " + info.getShipping() + ", " + info.getTax() );
    builder.append( ")" );
  }

  private void appendEvent( StringBuilder builder, TrackingEvent event ) {
    builder.append( ( String )event.getDetail() );
  }

  private void appendEventInfo( StringBuilder builder, TrackingEvent event ) {
    TrackingInfo info = event.getInfo();
    builder.append( " [" );
    builder.append( info.getAppId() + ", " );
    builder.append( info.getDeviceModel() + ", " );
    builder.append( info.getDeviceVendor() + ", " );
    builder.append( info.getDeviceOsVersion() );
    builder.append( "]" );
  }

}
TOP

Related Classes of com.eclipsesource.tabris.tracking.tracker.ConsoleTracker

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.