Subversion Repositories SmartDukaan

Rev

Rev 5072 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.datalogger.event;

import in.shop2020.datalogger.EventType;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.json.JSONObject;
public class Event {
    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd/HH:mm:ss.SSS/zzz");
    protected Date time;
    protected String sessionId;
    protected Long userId;
    protected String userEmail;
    protected EventType eventType;
    
    public Event(String[] eventFileds) {
        try {
            time = sdf.parse(eventFileds[0].trim());
        } catch (ParseException e) {
            e.printStackTrace();
        }
        try {
            eventType = EventType.valueOf(eventFileds[1].trim());
            sessionId = eventFileds[2].trim();
            userId = Long.parseLong(eventFileds[3].trim());
            userEmail = eventFileds[4].trim();
            
        } catch (ArrayIndexOutOfBoundsException e) {
            e.printStackTrace();
        }
        catch (NumberFormatException e) {
            userId = -1l;
            e.printStackTrace();
        }
        
    }
    
    public static Event getInstance(EventType eType, String aSessionId, long aUserId, String email, String[] logData){
        return new Event(eType, aSessionId, aUserId, email, logData);
    }
    
    public Event(EventType eType, String aSessionId, long aUserId, String email) {
        eventType = eType;
        sessionId = aSessionId;
        userId = aUserId;
        userEmail = email;
    }
    
    public Event(EventType eType, String aSessionId, long aUserId, String email, String[] logData) {
        eventType = eType;
        sessionId = aSessionId;
        userId = aUserId;
        userEmail = email;
    }

    public static Event createEvent(EventType eType, String sessionId, long userId, String email, String[] logData) {
        switch (eType) {
        case ADD_ADDRESS:
            return new AddAddress(eType, sessionId, userId, email, logData);
        case DELETE_ADDRESS:
            return new DeleteAddress(eType, sessionId, userId, email, logData);
        case SET_DEFAULT_ADDRESS:
            return new SetDefaultAddress(eType, sessionId, userId, email,
                    logData);
        case ADD_TO_CART:
            return new AddToCart(eType, sessionId, userId, email, logData);
        case DELETE_FROM_CART:
            return new DeleteFromCart(eType, sessionId, userId, email, logData);
        case UPDATE_CART_QUANTITY:
            return new UpdateCartQuantity(eType, sessionId, userId, email,
                    logData);
        case UPDATE_CART_QUANTITY_FAILED:
            return new UpdateCartQuantityFailed(eType, sessionId, userId,
                    email, logData);
        case PAYMENT_SUCCESS:
            return new PaymentSuccess(eType, sessionId, userId, email, logData);
        case PAYMENT_FAILURE:
            return new PaymentFailure(eType, sessionId, userId, email, logData);
        case PRODUCT_VIEW:
            return new ProductView(eType, sessionId, userId, email, logData);
        case PRODUCT_SEARCH:
            return new ProductSearch(eType, sessionId, userId, email, logData);
        case PRODUCT_COMPARE:
            return new ProductCompare(eType, sessionId, userId, email, logData);
        case RESEARCH_ADD:
            return new ResearchAdd(eType, sessionId, userId, email, logData);
        case RESEARCH_DELETE:
            return new ResearchDelete(eType, sessionId, userId, email, logData);
        case REGISTER_SUCCESS:
            return new RegisterSuccess(eType, sessionId, userId, email, logData);
        case REGISTER_FAILED_USER_EXISTS:
            return new RegisterFailedUserExists(eType, sessionId, userId, email, logData);
        case REGISTER_DATA_INCOMPLETE:
            return new RegisterDataIncomplete(eType, sessionId, userId, email,
                    logData);
        case SHIPPINIG_ACCESS:
            return new ShippingAccess(eType, sessionId, userId, email, logData);
        case SHIPPINIG_ADD_ADDRESS:
            return new ShippingAddAddress(eType, sessionId, userId, email,
                    logData);
        case SHIPPINIG_ADD_CHANGE:
            return new ShippingAddressChange(eType, sessionId, userId, email,
                    logData);
        case ORDER_CREATION:
            return new OrderCreation(eType, sessionId, userId, email, logData);
        case NEW_SESSION:
            return new NewSession(eType, sessionId, userId, email, logData);
        case LOGIN_SUCCESS:
            return new LoginSuccess(eType, sessionId, userId, email, logData);
        case COUPON_APPLIED:
            return new CouponApplied(eType, sessionId, userId, email, logData);
        case COUPON_REMOVED:
            return new CouponRemoved(eType, sessionId, userId, email, logData);
        case PROCEED_TO_PAY:
            return new ProceedToPay(eType, sessionId, userId, email, logData);
        case DELIVERY_ESTIMATE:
                return new DeliveryEstimate(eType, sessionId, userId, email, logData);
        case RECHARGE_SUCCESSFUL:
                return new RechargeStatusEvent(eType, sessionId, userId, email, logData);
        case RECHARGE_PAYMENT_SUCCESSFUL:
                return new RechargeStatusEvent(eType, sessionId, userId, email, logData);
        case RECHARGE_PAYMENT_FAILED:
                return new RechargeStatusEvent(eType, sessionId, userId, email, logData);
        case PROVIDER_FETCH_FAILURE:
                return new ProviderFetchFailure(eType, sessionId, userId, email, logData);
        default:
            return new Event(eType, sessionId, userId, email);
        }
    }
    
    public static Event createEvent(String[] eventFileds) {
        EventType eType = EventType.valueOf(eventFileds[1].trim());
        switch (eType) {
        case ADD_ADDRESS:
            return new AddAddress(eventFileds);
        case DELETE_ADDRESS:
            return new DeleteAddress(eventFileds);
        case SET_DEFAULT_ADDRESS:
            return new SetDefaultAddress(eventFileds);
        case ADD_TO_CART:
            return new AddToCart(eventFileds);
        case DELETE_FROM_CART:
            return new DeleteFromCart(eventFileds);
        case UPDATE_CART_QUANTITY:
            return new UpdateCartQuantity(eventFileds);
        case UPDATE_CART_QUANTITY_FAILED:
            return new UpdateCartQuantityFailed(eventFileds);
        case PAYMENT_SUCCESS:
            return new PaymentSuccess(eventFileds);
        case PAYMENT_FAILURE:
            return new PaymentFailure(eventFileds);
        case PRODUCT_VIEW:
            return new ProductView(eventFileds);
        case PRODUCT_SEARCH:
            return new ProductSearch(eventFileds);
        case PRODUCT_COMPARE:
            return new ProductCompare(eventFileds);
        case RESEARCH_ADD:
            return new ResearchAdd(eventFileds);
        case REGISTER_SUCCESS:
            return new RegisterSuccess(eventFileds);
        case REGISTER_FAILED_USER_EXISTS:
            return new RegisterFailedUserExists(eventFileds);
        case REGISTER_DATA_INCOMPLETE:
            return new RegisterDataIncomplete(eventFileds);
        case SHIPPINIG_ACCESS:
            return new ShippingAccess(eventFileds);
        case SHIPPINIG_ADD_CHANGE:
            return new ShippingAddressChange(eventFileds);
        case ORDER_CREATION:
            return new OrderCreation(eventFileds);
        case NEW_SESSION:
            return new NewSession(eventFileds);
        case LOGIN_SUCCESS:
            return new LoginSuccess(eventFileds);
        case COUPON_APPLIED:
            return new CouponApplied(eventFileds);
        case COUPON_REMOVED:
            return new CouponRemoved(eventFileds);
        case PROCEED_TO_PAY:
            return new ProceedToPay(eventFileds);
        case DELIVERY_ESTIMATE:
                return new DeliveryEstimate(eventFileds);
        case RECHARGE_SUCCESSFUL:
                return new RechargeStatusEvent(eventFileds);
        case RECHARGE_PAYMENT_SUCCESSFUL:
                return new RechargeStatusEvent(eventFileds);
        case RECHARGE_PAYMENT_FAILED:
                return new RechargeStatusEvent(eventFileds);
        case PROVIDER_FETCH_FAILURE:
                return new ProviderFetchFailure(eventFileds);
        default:
            return new Event(eventFileds);
        }
    }
    
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(eventType.name() + ", ");
        sb.append("userEmail : " + userEmail);
        sb.append(" time : " + time);
        sb.append(" session : " + sessionId);
        
        return sb.toString();
    }

    public JSONObject getLogDataInJson() {
        return null;
    }
    
    public Date getTime() {
        return time;
    }

    public void setTime(Date time) {
        this.time = time;
    }

    public String getSessionId() {
        return sessionId;
    }

    public void setSessionId(String sessionId) {
        this.sessionId = sessionId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getUserEmail() {
        return userEmail;
    }

    public void setUserEmail(String userEmail) {
        this.userEmail = userEmail;
    }

    public EventType getEventType() {
        return eventType;
    }

    public void setEventType(EventType eventType) {
        this.eventType = eventType;
    }
}