/** * Copyright 2012 Comcast Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.comcast.cmb.test.tools; import java.io.CharArrayWriter; import java.util.jar.Attributes; import org.apache.log4j.Logger; import org.xml.sax.SAXException; public class TopicAttributeParser extends org.xml.sax.helpers.DefaultHandler { private CharArrayWriter content = new CharArrayWriter(); private Keys key; private String effectiveDeliveryPolicy; private String owner; private int subscriptionsPending; private String policy; private int subscriptionsConfirmed; private int subscriptionsDeleted; private String topicArn; private String displayName; private String deliveryPolicy; public enum Keys {EffectiveDeliveryPolicy, Owner, SubscriptionsPending, Policy, SubscriptionsConfirmed, TopicArn, SubscriptionsDeleted, DeliveryPolicy, DisplayName} private static Logger logger = Logger.getLogger(SubscriptionAttributeParser.class); public TopicAttributeParser() { } public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { content.reset(); logger.info("Start Element QName:" + qName); if (qName.equals("Atrributes")) { //logger.debug("Atrributes Start"); } else if (qName.equals("entry")) { } if(qName.equals("key")) { } else if(qName.equals("value")) { } } public void endElement (String uri, String localName, String qName) { //System.out.println("End Element QName:" + qName); if (qName.equals("Atrributes")) { //logger.debug("Atrributes End"); } else if (qName.equals("entry")) { //logger.debug("entry End"); } else if (qName.equals("key")) { String keyStr = content.toString(); key = Keys.valueOf(keyStr); //logger.debug("key is:" +key); } else if (qName.equals("value")) { //logger.debug("value is:" + content.toString()); switch(key) { case EffectiveDeliveryPolicy: effectiveDeliveryPolicy = content.toString(); break; case Owner: owner = content.toString(); break; case SubscriptionsPending: setSubscriptionsPending(Integer.parseInt(content.toString())); break; case SubscriptionsConfirmed: setSubscriptionsConfirmed(Integer.parseInt(content.toString())); break; case SubscriptionsDeleted: setSubscriptionsDeleted(Integer.parseInt(content.toString())); break; case Policy: setPolicy(content.toString()); break; case TopicArn: topicArn = content.toString(); break; case DeliveryPolicy: setDeliveryPolicy(content.toString()); break; case DisplayName: setDisplayName(content.toString()); break; } } content.reset(); } public void characters( char[] ch, int start, int length ) { //System.out.println("Characters"); content.write( ch, start, length ); } public String getEffectiveDeliveryPolicy() { return effectiveDeliveryPolicy; } public String getOwner() { return owner; } public String getTopicArn() { return topicArn; } public int getSubscriptionsPending() { return subscriptionsPending; } public void setSubscriptionsPending(int subscriptionsPending) { this.subscriptionsPending = subscriptionsPending; } public String getPolicy() { return policy; } public void setPolicy(String policy) { this.policy = policy; } public int getSubscriptionsConfirmed() { return subscriptionsConfirmed; } public void setSubscriptionsConfirmed(int subscriptionsConfirmed) { this.subscriptionsConfirmed = subscriptionsConfirmed; } public int getSubscriptionsDeleted() { return subscriptionsDeleted; } public void setSubscriptionsDeleted(int subscriptionsDeleted) { this.subscriptionsDeleted = subscriptionsDeleted; } public String getDisplayName() { return displayName; } public void setDisplayName(String displayName) { this.displayName = displayName; } public String getDeliveryPolicy() { return deliveryPolicy; } public void setDeliveryPolicy(String deliveryPolicy) { this.deliveryPolicy = deliveryPolicy; } }