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

com.windowsazure.messaging.NotificationTelemetry Maven / Gradle / Ivy

package com.windowsazure.messaging;

import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.digester3.Digester;
import org.xml.sax.SAXException;

public class NotificationTelemetry {
	
	private String notificationId;
	private String location;
	private NotificationStatus notificationStatus;
	private Date enqueueTime;
	private Date startTime;
	private Date endTime;
	private String notificationBody;
	private String targetPlatforms;
	private Map apnsOutcomeCounts;
	private Map mpnsOutcomeCounts;
	private Map wnsOutcomeCounts;
	private Map gcmOutcomeCounts;
	private Map fcmOutcomeCounts;
	private Map admOutcomeCounts;
	private Map baiduOutcomeCounts;
	private String pnsErrorDetailsUri;	
	
	private static final ThreadLocal parser;
	
	static {
		parser = new ThreadLocal(){
			@Override protected Digester initialValue() {
				Digester instance = new Digester();
				setupParser(instance);
                return instance;
             }
		};		
	}	
	
	public static NotificationTelemetry parseOne(InputStream content) throws IOException,	SAXException {
		return parser.get().parse(content);
	}
	
	public String getNotificationId() {
		return notificationId;
	}

	public void setNotificationId(String notificationId) {
		this.notificationId = notificationId;
	}

	public String getLocation() {
		return location;
	}

	public void setLocation(String location) {
		this.location = location;
	}

	public NotificationStatus getNotificationStatus() {
		return notificationStatus;
	}

	public void setNotificationStatusFromString(String status) {
		this.notificationStatus = Enum.valueOf(NotificationStatus.class, status);
	}
	
	public void setNotificationStatus(NotificationStatus notificationStatus) {
		this.notificationStatus = notificationStatus;
	}

	public Date getEnqueueTime() {
		return enqueueTime;
	}
	
	public void setEnqueueTimeFromString(String enqueueTime) {
		this.enqueueTime = javax.xml.bind.DatatypeConverter.parseDateTime(enqueueTime).getTime();
	}	

	public void setEnqueueTime(Date enqueueTime) {
		this.enqueueTime = enqueueTime;
	}

	public Date getStartTime() {
		return startTime;
	}
	
	public void setStartTimeFromString(String startTime) {
		this.startTime = javax.xml.bind.DatatypeConverter.parseDateTime(startTime).getTime();
	}	

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	public Date getEndTime() {
		return endTime;
	}
	
	public void setEndTimeFromString(String endTime) {
		this.endTime = javax.xml.bind.DatatypeConverter.parseDateTime(endTime).getTime();
	}	

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	public String getNotificationBody() {
		return notificationBody;
	}

	public void setNotificationBody(String notificationBody) {
		this.notificationBody = notificationBody;
	}

	public String getTargetPlatforms() {
		return targetPlatforms;
	}

	public void setTargetPlatforms(String targetPlatforms) {
		this.targetPlatforms = targetPlatforms;
	}

	public Map getApnsOutcomeCounts() {
		return apnsOutcomeCounts;
	}

	public void setApnsOutcomeCounts(Map apnsOutcomeCounts) {
		this.apnsOutcomeCounts = apnsOutcomeCounts;
	}

	public Map getMpnsOutcomeCounts() {
		return mpnsOutcomeCounts;
	}

	public void setMpnsOutcomeCounts(Map mpnsOutcomeCounts) {
		this.mpnsOutcomeCounts = mpnsOutcomeCounts;
	}

	public Map getWnsOutcomeCounts() {
		return wnsOutcomeCounts;
	}

	public void setWnsOutcomeCounts(Map wnsOutcomeCounts) {
		this.wnsOutcomeCounts = wnsOutcomeCounts;
	}

	public Map getGcmOutcomeCounts() {
		return gcmOutcomeCounts;
	}

	public void setGcmOutcomeCounts(Map gcmOutcomeCounts) {
		this.gcmOutcomeCounts = gcmOutcomeCounts;
	}

	public Map getFcmOutcomeCounts() {
		return fcmOutcomeCounts;
	}

 	public void setFcmOutcomeCounts(Map fcmOutcomeCounts) {
		this.fcmOutcomeCounts = fcmOutcomeCounts;
	}

	public Map getBaiduOutcomeCounts() {
		return baiduOutcomeCounts;
	}

	public void setBaiduOutcomeCounts(Map baiduOutcomeCounts) {
		this.baiduOutcomeCounts = baiduOutcomeCounts;
	}

	public Map getAdmOutcomeCounts() {
		return admOutcomeCounts;
	}

	public void setAdmOutcomeCounts(Map admOutcomeCounts) {
		this.admOutcomeCounts = admOutcomeCounts;
	}

	public String getPnsErrorDetailsUri() {
		return pnsErrorDetailsUri;
	}

	public void setPnsErrorDetailsUri(String pnsErrorDetailsUri) {
		this.pnsErrorDetailsUri = pnsErrorDetailsUri;
	}
	
	private static void setupParser(Digester digester){
		digester.addObjectCreate("*/NotificationDetails", NotificationTelemetry.class);
		digester.addCallMethod("*/NotificationId", "setNotificationId",1);
		digester.addCallParam("*/NotificationId", 0);
		digester.addCallMethod("*/Location", "setLocation",1);
		digester.addCallParam("*/Location", 0);
		digester.addCallMethod("*/State", "setNotificationStatusFromString",1);
		digester.addCallParam("*/State", 0);
		digester.addCallMethod("*/EnqueueTime", "setEnqueueTimeFromString",1);
		digester.addCallParam("*/EnqueueTime", 0);
		digester.addCallMethod("*/StartTime", "setStartTimeFromString",1);
		digester.addCallParam("*/StartTime", 0);
		digester.addCallMethod("*/EndTime", "setEndTimeFromString",1);
		digester.addCallParam("*/EndTime", 0);
		digester.addCallMethod("*/NotificationBody", "setNotificationBody",1);
		digester.addCallParam("*/NotificationBody", 0);
		digester.addCallMethod("*/TargetPlatforms", "setTargetPlatforms",1);
		digester.addCallParam("*/TargetPlatforms", 0);
		digester.addCallMethod("*/PnsErrorDetailsUri", "setPnsErrorDetailsUri",1);
		digester.addCallParam("*/PnsErrorDetailsUri", 0);
		
		digester.addObjectCreate("*/ApnsOutcomeCounts", HashMap.class);		
		digester.addCallMethod("*/Outcome", "put",2, new Class[]{String.class, Integer.class} );
		digester.addCallParam("*/Name", 0);
		digester.addCallParam("*/Count", 1);
		digester.addSetNext("*/ApnsOutcomeCounts", "setApnsOutcomeCounts", Map.class.getName());
		
		digester.addObjectCreate("*/MpnsOutcomeCounts", HashMap.class);		
		digester.addCallMethod("*/Outcome", "put",2, new Class[]{String.class, Integer.class} );
		digester.addCallParam("*/Name", 0);
		digester.addCallParam("*/Count", 1);
		digester.addSetNext("*/MpnsOutcomeCounts", "setMpnsOutcomeCounts", Map.class.getName());
		
		digester.addObjectCreate("*/WnsOutcomeCounts", HashMap.class);		
		digester.addCallMethod("*/Outcome", "put",2, new Class[]{String.class, Integer.class} );
		digester.addCallParam("*/Name", 0);
		digester.addCallParam("*/Count", 1);
		digester.addSetNext("*/WnsOutcomeCounts", "setWnsOutcomeCounts", Map.class.getName());
		
		digester.addObjectCreate("*/GcmOutcomeCounts", HashMap.class);		
		digester.addCallMethod("*/Outcome", "put",2, new Class[]{String.class, Integer.class} );
		digester.addCallParam("*/Name", 0);
		digester.addCallParam("*/Count", 1);
		digester.addSetNext("*/GcmOutcomeCounts", "setGcmOutcomeCounts", Map.class.getName());
		
		digester.addObjectCreate("*/FcmOutcomeCounts", HashMap.class);		
		digester.addCallMethod("*/Outcome", "put",2, new Class[]{String.class, Integer.class} );
		digester.addCallParam("*/Name", 0);
		digester.addCallParam("*/Count", 1);
		digester.addSetNext("*/FcmOutcomeCounts", "setFcmOutcomeCounts", Map.class.getName());

		digester.addObjectCreate("*/AdmOutcomeCounts", HashMap.class);		
		digester.addCallMethod("*/Outcome", "put",2, new Class[]{String.class, Integer.class} );
		digester.addCallParam("*/Name", 0);
		digester.addCallParam("*/Count", 1);
		digester.addSetNext("*/AdmOutcomeCounts", "setAdmOutcomeCounts", Map.class.getName());

		digester.addObjectCreate("*/BaiduOutcomeCounts", HashMap.class);		
		digester.addCallMethod("*/Outcome", "put",2, new Class[]{String.class, Integer.class} );
		digester.addCallParam("*/Name", 0);
		digester.addCallParam("*/Count", 1);
		digester.addSetNext("*/BaiduOutcomeCounts", "setBaiduOutcomeCounts", Map.class.getName());
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy