source: branches/2.2/jabberit_messenger/java_source/src/nu/fw/jeti/jabber/elements/Packet.java @ 3102

Revision 3102, 3.4 KB checked in by amuller, 14 years ago (diff)

Ticket #986 - Efetuado merge para o Branch 2.2( atualizacao do modulo)

  • Property svn:executable set to *
Line 
1package nu.fw.jeti.jabber.elements;
2
3import java.util.LinkedList;
4import java.util.Iterator;
5
6import nu.fw.jeti.jabber.*;
7import nu.fw.jeti.util.I18N;
8import nu.fw.jeti.backend.*;
9
10/**
11 * @author E.S. de Boer
12 */
13
14public abstract class Packet extends XMLData
15{
16        private JID to;
17        private JID from;
18        protected String id; //protected so infoquery can set the id if unset
19        private int errorCode;
20        private String errorDescription;
21        private XMPPError xmppError;
22        private LinkedList extensions;
23
24        public Packet(){}
25
26        public Packet(JID to)
27        {
28                this.to = to;
29        }
30       
31        public Packet(Extension ex)
32        {
33                if(ex!=null)
34                {
35                    extensions = new LinkedList();
36                    extensions.add(ex);
37                }
38        }
39
40    public Packet(JID to,Extension ex)
41        {
42                this(ex);
43                this.to = to;
44        }
45
46        public Packet(JID to,String id,Extension ex)
47        {
48                this(to);
49                this.id = id;
50                if(ex!=null)
51                {
52                    extensions = new LinkedList();
53                    extensions.add(ex);
54                }
55        }
56       
57        public Packet(JID to,String id,String error,int errorCode)
58        {
59                this(to);
60                this.id = id;
61                this.errorDescription = error;
62                this.errorCode = errorCode;
63        }
64       
65        public Packet(JID to,String id,XMPPError error)
66        {
67                this(to);
68                this.id = id;
69                xmppError = error;
70        }
71
72        protected Packet(PacketBuilder pb)
73        {
74                to = pb.to;
75                from = pb.from;
76                id = pb.id;
77                errorCode = pb.errorCode;
78                errorDescription = pb.errorDescription;
79                extensions = pb.getExtensions();
80                xmppError = pb.xmppError;
81        }
82
83        public IQExtension getIQExtension()
84        {
85                if(extensions == null)return null;
86            return (IQExtension)extensions.getFirst();
87        }
88
89        public XMPPError getXMPPError()
90        {
91                return xmppError;
92        }
93       
94        public Iterator getExtensions()
95        {
96                if(extensions == null) return null;
97            return extensions.iterator();
98        }
99
100        public boolean hasExtensions(){return extensions != null;}
101
102        public String getID(){return id;}
103
104        public JID getTo(){return to;}
105
106        public JID getFrom(){return from;}
107
108        public int getErrorCode(){return errorCode;}
109
110        public String getErrorDescription() {
111       if (xmppError!=null && errorDescription.length() == 0) {
112           StringBuffer desc = new StringBuffer();
113            for(Iterator i = xmppError.getXMPPErrors(); i.hasNext();) {
114                if (desc.length() > 0) {
115                    desc.append(", ");
116                }
117                XMPPErrorTag et = (XMPPErrorTag)i.next();
118                desc.append(I18N.gettext("main.error.xmpp." + et.getError()));
119            }
120            if (desc.length() > 0) {
121                return desc.toString();
122            }
123            else return I18N.gettext("main.error.Unknown_error");
124        } else {
125            return errorDescription;
126        }
127    }
128
129        protected void appendBaseAttributes(StringBuffer xml)
130        {
131                appendAttribute(xml,"to",to);
132                appendAttribute(xml,"from",from);
133                appendAttribute(xml,"id", id);
134
135        }
136
137        protected void appendError(StringBuffer xml)
138        {
139                if(xmppError==null)
140                {
141                        xml.append("<error");
142                        appendAttribute(xml,"code",String.valueOf(errorCode));
143                        if(errorDescription == null)
144                        {
145                                xml.append( "/>");
146                                return;
147                        }
148                        xml.append(">");
149                        escapeString(xml,errorDescription);
150                        xml.append("</error>");
151                }
152                else xmppError.appendToXML(xml);
153        }
154
155        protected void appendExtensions(StringBuffer xml)
156        {
157                if(extensions !=null)
158                {
159                        for(Iterator i = extensions.iterator();i.hasNext();)
160                        {
161                                ((Extension)i.next()).appendToXML(xml);
162                        }
163                }
164        }
165}
166
167/*
168 * Overrides for emacs
169 * Local variables:
170 * tab-width: 4
171 * End:
172 */
Note: See TracBrowser for help on using the repository browser.