com.windowsazure.messaging.NotificationHubDescription Maven / Gradle / Ivy
package com.windowsazure.messaging;
import java.io.IOException;
import java.io.InputStream;
import java.util.LinkedList;
import java.util.List;
import org.apache.commons.digester3.Digester;
import org.xml.sax.SAXException;
public class NotificationHubDescription {
private static final String XML_HEADER="";
private static final String XML_FOOTER=" ";
private String path;
private AdmCredential admCredential;
private ApnsCredential apnsCredential;
private WindowsCredential windowsCredential;
private MpnsCredential mpnsCredential;
private GcmCredential gcmCredential;
private FcmCredential fcmCredential;
private BaiduCredential baiduCredential;
private static final ThreadLocal singleEntryParser;
private static final ThreadLocal collectionParser;
static {
singleEntryParser = new ThreadLocal(){
@Override protected Digester initialValue() {
Digester instance = new Digester();
setupSingleEntryParser(instance);
return instance;
}
};
collectionParser = new ThreadLocal(){
@Override protected Digester initialValue() {
Digester instance = new Digester();
setupCollectionParser(instance);
return instance;
}
};
}
public NotificationHubDescription(){
this(null);
}
public NotificationHubDescription(String path){
super();
this.path=path;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public AdmCredential getAdmCredential() {
return admCredential;
}
public void setAdmCredential(AdmCredential admCredential) {
this.admCredential = admCredential;
}
public ApnsCredential getApnsCredential() {
return apnsCredential;
}
public void setApnsCredential(ApnsCredential apnsCredential) {
this.apnsCredential = apnsCredential;
}
public WindowsCredential getWindowsCredential() {
return windowsCredential;
}
public void setWindowsCredential(WindowsCredential windowsCredential) {
this.windowsCredential = windowsCredential;
}
public MpnsCredential getMpnsCredential() {
return mpnsCredential;
}
public void setMpnsCredential(MpnsCredential mpnsCredential) {
this.mpnsCredential = mpnsCredential;
}
public GcmCredential getGcmCredential() {
return gcmCredential;
}
public void setGcmCredential(GcmCredential gcmCredential) {
this.gcmCredential = gcmCredential;
}
public FcmCredential getFcmCredential() {
return fcmCredential;
}
public void setFcmCredential(FcmCredential fcmCredential) {
this.fcmCredential = fcmCredential;
}
public BaiduCredential getBaiduCredential() {
return baiduCredential;
}
public void setBaiduCredential(BaiduCredential baiduCredential) {
this.baiduCredential = baiduCredential;
}
public static NotificationHubDescription parseOne(InputStream content) throws IOException, SAXException {
return singleEntryParser.get().parse(content);
}
public static List parseCollection(InputStream content) throws IOException, SAXException {
return collectionParser.get().parse(content);
}
public String getXml(){
StringBuffer buf = new StringBuffer();
buf.append(XML_HEADER);
if(this.apnsCredential!=null) buf.append(this.apnsCredential.getXml());
if(this.windowsCredential!=null) buf.append(this.windowsCredential.getXml());
if(this.gcmCredential!=null) buf.append(this.gcmCredential.getXml());
if(this.fcmCredential!=null) buf.append(this.fcmCredential.getXml());
if(this.mpnsCredential!=null) buf.append(this.mpnsCredential.getXml());
if(this.admCredential!=null) buf.append(this.admCredential.getXml());
if(this.baiduCredential!=null) buf.append(this.baiduCredential.getXml());
buf.append(XML_FOOTER);
return buf.toString();
}
private static void setupCollectionParser(Digester digester){
digester.addObjectCreate("*/feed", LinkedList.class);
setupSingleEntryParser(digester);
digester.addSetNext("*/entry", "add", NotificationHubDescription.class.getName());
}
private static void setupSingleEntryParser(Digester digester){
digester.addObjectCreate("*/entry", NotificationHubDescription.class);
digester.addCallMethod("*/entry/title","setPath",1);
digester.addCallParam("*/entry/title",0);
digester.addObjectCreate("*/ApnsCredential", ApnsCredential.class);
digester.addObjectCreate("*/AdmCredential", AdmCredential.class);
digester.addObjectCreate("*/WnsCredential", WindowsCredential.class);
digester.addObjectCreate("*/MpnsCredential", MpnsCredential.class);
digester.addObjectCreate("*/GcmCredential", GcmCredential.class);
digester.addObjectCreate("*/FcmCredential", FcmCredential.class);
digester.addObjectCreate("*/BaiduCredential", BaiduCredential.class);
PnsCredential.setupDigister(digester);
digester.addSetNext("*/ApnsCredential", "setApnsCredential", ApnsCredential.class.getName());
digester.addSetNext("*/AdmCredential", "setAdmCredential", AdmCredential.class.getName());
digester.addSetNext("*/WnsCredential", "setWindowsCredential", WindowsCredential.class.getName());
digester.addSetNext("*/MpnsCredential", "setMpnsCredential", MpnsCredential.class.getName());
digester.addSetNext("*/GcmCredential", "setGcmCredential", GcmCredential.class.getName());
digester.addSetNext("*/FcmCredential", "setFcmCredential", FcmCredential.class.getName());
digester.addSetNext("*/BaiduCredential", "setBaiduCredential", BaiduCredential.class.getName());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy