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

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

package com.windowsazure.messaging;

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

import org.apache.commons.io.IOUtils;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class Installation {
	        private String installationId;
	        private NotificationPlatform platform;
	        private String pushChannel;
	        private boolean pushChannelExpired;
	        private String expirationTime;
	        private List tags;
	        private Map templates;
	        private Map secondaryTiles;
	        
	        public Installation(){
	        	this(null);
	        }
	        
	        public Installation(String installationId){
	        	this(installationId, (String[])null);
	        }
	        
	        public Installation(String installationId, String... tags){
	        	this(installationId, null, null, (String[])null);
	        }
	        
	        public Installation(String installationId, NotificationPlatform platform, String pushChannel){
	        	this(installationId, platform, pushChannel, (String[])null);
	        }
	        
	        public Installation(String installationId, NotificationPlatform platform, String pushChannel, String... tags){
	        	this.installationId = installationId;
	        	this.platform = platform;
	        	this.pushChannel = pushChannel;
	        	if(tags != null){		
	    			for(String tag : tags){
	    				this.addTag(tag);
	    			}
	    		}
	        }

			public String getInstallationId() {
				return installationId;
			}

			public void setInstallationId(String installationId) {
				this.installationId = installationId;
			}

			public String getPushChannel() {
				return pushChannel;
			}

			public void setPushChannel(String pushChannel) {
				this.pushChannel = pushChannel;
			}

			public boolean isPushChannelExpired() {
				return pushChannelExpired;
			}	

			public Date getExpirationTime() {
				return javax.xml.bind.DatatypeConverter.parseDateTime(expirationTime).getTime();
			}			

			public NotificationPlatform getPlatform() {
				return platform;
			}

			public void setPlatform(NotificationPlatform platform) {
				this.platform = platform;
			}

			public List getTags() {
				return tags;
			}

			public void addTag(String tag) {
				if(this.tags == null){
					this.tags = new ArrayList();
				}
				
				this.tags.add(tag);
			}

			public Map getTemplates() {
				return templates;
			}

			public void addTemplate(String templateName, InstallationTemplate template) {
				if(this.templates == null){
					this.templates = new HashMap();
				}
				
				this.templates.put(templateName, template);
			}

			public Map getSecondaryTiles() {
				return secondaryTiles;
			}

			public void addSecondaryTile(String tileName, WnsSecondaryTile tile) {
				if(this.templates == null){
					this.secondaryTiles = new HashMap();
				}
				
				this.secondaryTiles.put(tileName, tile);
			}     
			
			public static Installation fromJson(String json){
				return new Gson().fromJson(json, Installation.class);
			}
			
			public static Installation fromJson(InputStream json) throws IOException{
				return Installation.fromJson(IOUtils.toString(json));
			}
			
			public String toJson(){
				return new GsonBuilder().disableHtmlEscaping().create().toJson(this);
			}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy