Android Open Source - smsgateway-android Android Packet






From Project

Back to project page smsgateway-android.

License

The source code is released under:

GNU General Public License

If you think the Android project smsgateway-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 *//from ww w. j a  v a  2  s . co  m
 * ((e)) emite: A pure gwt (Google Web Toolkit) xmpp (jabber) library
 *
 * (c) 2008-2009 The emite development team (see CREDITS for details)
 * This file is part of emite.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 */
package com.calclab.emite.core.client.packet.android;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import com.calclab.emite.core.client.packet.AbstractPacket;
import com.calclab.emite.core.client.packet.IPacket;
import com.calclab.emite.core.client.packet.NoPacket;
import com.calclab.emite.core.client.packet.PacketRenderer;
import com.calclab.emite.core.client.packet.TextUtils;

public class AndroidPacket extends AbstractPacket {
  private static final List<IPacket> EMPTY_LIST = new ArrayList<IPacket>();
  private final Element element;

  public AndroidPacket(final Element element) {
    this.element = element;
  }

  public IPacket addChild(final String nodeName, final String xmlns) {
    final Element child = element.getOwnerDocument()
        .createElement(nodeName);
    element.appendChild(child);
    return new AndroidPacket(child);
  }

  public String getAttribute(final String name) {
    return element.getAttribute(name);
  }

  public HashMap<String, String> getAttributes() {
    final HashMap<String, String> map = new HashMap<String, String>();
    final NamedNodeMap attributes = element.getAttributes();
    for (int index = 0; index < attributes.getLength(); index++) {
      final Node attrib = attributes.item(index);
      map.put(attrib.getNodeName(), attrib.getNodeValue());
    }
    return map;
  }

  public Map<String, String> getAttributtes() {
    final HashMap<String, String> attributes = new HashMap<String, String>();
    final NamedNodeMap original = element.getAttributes();
    for (int index = 0; index < original.getLength(); index++) {
      final Node node = original.item(index);
      attributes.put(node.getNodeName(), node.getNodeValue());
    }
    return attributes;
  }

  public List<? extends IPacket> getChildren() {
    return wrap(element.getChildNodes());
  }

  @Override
  public List<IPacket> getChildren(final String name) {
    final NodeList nodes = element.getElementsByTagName(name);
    return wrap(nodes);
  }

  public int getChildrenCount() {
    return element.getChildNodes().getLength();
  }

  public Element getElement() {
    return element;
  }

  @Override
  public IPacket getFirstChild(final String childName) {
    final NodeList nodes = element.getElementsByTagName(childName);
    return nodes.getLength() > 0 ? new AndroidPacket((Element) nodes
        .item(0)) : NoPacket.INSTANCE;
  }

  public String getName() {
    return element.getNodeName();
  }

  public IPacket getParent() {
    return new AndroidPacket((Element) element.getParentNode());
  }

  public String getText() {
    StringBuilder builder = new StringBuilder();
    Node item;
    final NodeList childs = element.getChildNodes();
    for (int index = 0; index < childs.getLength(); index++) {
      item = childs.item(index);
      if (item.getNodeType() == Node.TEXT_NODE) {
        builder.append(TextUtils.unescape(item.getNodeValue()));
      }
    }
    return builder.toString();
  }

  public boolean removeChild(final IPacket child) {
    final Element childElement = ((AndroidPacket) child).element;
    return element.removeChild(childElement) != null;
  }

  public void setAttribute(final String name, final String value) {
    if (value != null) {
      element.setAttribute(name, value);
    } else {
      element.removeAttribute(name);
    }
  }

  public void setText(final String text) {
    final String escaped = TextUtils.escape(text);
    final NodeList nodes = element.getChildNodes();
    for (int index = 0; index < nodes.getLength(); index++) {
      final Node child = nodes.item(index);
      if (child.getNodeType() == Node.TEXT_NODE) {
        element.removeChild(child);
      }
    }
    element.appendChild(element.getOwnerDocument().createTextNode(escaped));
  }

  @Override
  public String toString() {
    return PacketRenderer.toString(this);
  }

  private List<IPacket> wrap(final NodeList nodes) {
    int length;
    if (nodes == null || (length = nodes.getLength()) == 0) {
      return EMPTY_LIST;
    }
    final ArrayList<IPacket> selected = new ArrayList<IPacket>();
    for (int index = 0; index < length; index++) {
      final Node node = nodes.item(index);
      if (node.getNodeType() == Node.ELEMENT_NODE) {
        selected.add(new AndroidPacket((Element) node));
      } else if (node.getNodeType() == Node.TEXT_NODE) {
      }
    }
    return selected;
  }
}




Java Source Code List

com.calclab.emite.core.client.EmiteCoreModule.java
com.calclab.emite.core.client.bosh.BoshConnection.java
com.calclab.emite.core.client.bosh.BoshSettings.java
com.calclab.emite.core.client.bosh.Connection.java
com.calclab.emite.core.client.bosh.StreamSettings.java
com.calclab.emite.core.client.packet.AbstractPacket.java
com.calclab.emite.core.client.packet.DelegatedPacket.java
com.calclab.emite.core.client.packet.IPacket.java
com.calclab.emite.core.client.packet.MatcherFactory.java
com.calclab.emite.core.client.packet.NoPacket.java
com.calclab.emite.core.client.packet.PacketMatcher.java
com.calclab.emite.core.client.packet.PacketRenderer.java
com.calclab.emite.core.client.packet.PacketTestSuite.java
com.calclab.emite.core.client.packet.Packet.java
com.calclab.emite.core.client.packet.TextPacket.java
com.calclab.emite.core.client.packet.TextUtils.java
com.calclab.emite.core.client.packet.android.AndroidPacket.java
com.calclab.emite.core.client.services.ConnectorCallback.java
com.calclab.emite.core.client.services.ConnectorException.java
com.calclab.emite.core.client.services.ScheduledAction.java
com.calclab.emite.core.client.services.Services.java
com.calclab.emite.core.client.services.android.AndroidConnector.java
com.calclab.emite.core.client.services.android.AndroidScheduler.java
com.calclab.emite.core.client.services.android.AndroidServices.java
com.calclab.emite.core.client.services.android.AndroidXMLService.java
com.calclab.emite.core.client.xmpp.resource.ResourceBindingManager.java
com.calclab.emite.core.client.xmpp.sasl.AuthorizationTransaction.java
com.calclab.emite.core.client.xmpp.sasl.Base64Coder.java
com.calclab.emite.core.client.xmpp.sasl.SASLManager.java
com.calclab.emite.core.client.xmpp.session.AbstractSession.java
com.calclab.emite.core.client.xmpp.session.IMSessionManager.java
com.calclab.emite.core.client.xmpp.session.IQManager.java
com.calclab.emite.core.client.xmpp.session.SessionComponent.java
com.calclab.emite.core.client.xmpp.session.SessionImpl.java
com.calclab.emite.core.client.xmpp.session.SessionReady.java
com.calclab.emite.core.client.xmpp.session.Session.java
com.calclab.emite.core.client.xmpp.stanzas.BasicStanza.java
com.calclab.emite.core.client.xmpp.stanzas.IQ.java
com.calclab.emite.core.client.xmpp.stanzas.Message.java
com.calclab.emite.core.client.xmpp.stanzas.Presence.java
com.calclab.emite.core.client.xmpp.stanzas.Stanza.java
com.calclab.emite.core.client.xmpp.stanzas.XmppURICache.java
com.calclab.emite.core.client.xmpp.stanzas.XmppURI.java
com.calclab.emite.im.client.InstantMessagingModule.java
com.calclab.emite.im.client.chat.AbstractChat.java
com.calclab.emite.im.client.chat.ChatManager.java
com.calclab.emite.im.client.chat.Chat.java
com.calclab.emite.im.client.chat.PairChatManager.java
com.calclab.emite.im.client.chat.PairChat.java
com.calclab.emite.im.client.presence.PresenceManagerImpl.java
com.calclab.emite.im.client.presence.PresenceManager.java
com.calclab.emite.im.client.roster.RosterImpl.java
com.calclab.emite.im.client.roster.RosterItem.java
com.calclab.emite.im.client.roster.Roster.java
com.calclab.emite.im.client.roster.SubscriptionManagerImpl.java
com.calclab.emite.im.client.roster.SubscriptionManager.java
com.calclab.emite.im.client.roster.SubscriptionState.java
com.calclab.suco.client.SucoCoreModule.java
com.calclab.suco.client.SucoFactory.java
com.calclab.suco.client.Suco.java
com.calclab.suco.client.events.Event0.java
com.calclab.suco.client.events.Event2.java
com.calclab.suco.client.events.Event.java
com.calclab.suco.client.events.Listener0.java
com.calclab.suco.client.events.Listener2.java
com.calclab.suco.client.events.Listener.java
com.calclab.suco.client.ioc.Container.java
com.calclab.suco.client.ioc.Decorator.java
com.calclab.suco.client.ioc.HashMapContainer.java
com.calclab.suco.client.ioc.Provider.java
com.calclab.suco.client.ioc.decorator.Chain.java
com.calclab.suco.client.ioc.decorator.GroupedSingleton.java
com.calclab.suco.client.ioc.decorator.NoDecoration.java
com.calclab.suco.client.ioc.decorator.ProviderCollection.java
com.calclab.suco.client.ioc.decorator.Singleton.java
com.calclab.suco.client.ioc.module.AbstractModule.java
com.calclab.suco.client.ioc.module.Factory.java
com.calclab.suco.client.ioc.module.ModuleBuilderImpl.java
com.calclab.suco.client.ioc.module.ModuleBuilder.java
com.calclab.suco.client.ioc.module.SucoModule.java
com.calclab.suco.client.log.Logger.java
com.calclab.suco.client.signal.Signal0.java
com.calclab.suco.client.signal.Signal2.java
com.calclab.suco.client.signal.Signal.java
com.calclab.suco.client.signal.Slot0.java
com.calclab.suco.client.signal.Slot2.java
com.calclab.suco.client.signal.Slot.java
com.nubgames.smsgateway.BOSHConnection.java
com.nubgames.smsgateway.BootCompleted.java
com.nubgames.smsgateway.Password.java
com.nubgames.smsgateway.SMSGateway.java
com.nubgames.smsgateway.SMSReceiver.java
com.nubgames.smsgateway.Settings.java
com.nubgames.smsgateway.StatusTextView.java
com.nubgames.smsgateway.Status.java
com.nubgames.smsgateway.TextRouter.java