package com.smit.rssreader.extension.subscription;
import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class SubUnSubExtension extends PseudoPubSubPacketExtension{
private List<SubUnSubFeedExtension> feedURLs;
public static final boolean TYPE_SUBSCRIPTION = true;
public static final boolean TYPE_UNSUBSCRIPTION = false;
public SubUnSubExtension(List<URL> feedsURLs, String jid, boolean subscription){
if (feedsURLs == null || jid == null){
throw new IllegalArgumentException("need URL to subscribe/unsubscribe to");
}
feedURLs = new ArrayList<SubUnSubFeedExtension>(feedsURLs.size());
for (URL url : feedsURLs) {
if (subscription){
this.feedURLs.add(new SubscriptionFeedExtension(jid, url));
}else{
this.feedURLs.add(new UnSubscriptionFeedExtension(jid, url));
}
}
}
public Iterator<SubUnSubFeedExtension> getFeedURLs(){
return feedURLs == null ? null : feedURLs.iterator();
}
@Override
protected String toXMLInternal() {
StringBuilder builder = new StringBuilder();
for (SubUnSubFeedExtension feed : feedURLs) {
builder.append(feed.toXML()); //feed�����Լ���toXML()ʱ����õ�����(SubscriptionFeedExtension/UnSubscriptionFeedExtension)��getElementName()����
}
return builder.toString();
}
}