1d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/**
2d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * $Revision$
3d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * $Date$
4d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *
5d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Copyright 2003-2007 Jive Software.
6d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *
7d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License");
8d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * you may not use this file except in compliance with the License.
9d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * You may obtain a copy of the License at
10d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *
11d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *     http://www.apache.org/licenses/LICENSE-2.0
12d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *
13d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Unless required by applicable law or agreed to in writing, software
14d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * distributed under the License is distributed on an "AS IS" BASIS,
15d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * See the License for the specific language governing permissions and
17d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * limitations under the License.
18d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen */
19d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
20d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpackage org.jivesoftware.smackx.workgroup.agent;
21d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
22d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenimport org.jivesoftware.smack.Connection;
23d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenimport org.jivesoftware.smack.packet.IQ;
24d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenimport org.jivesoftware.smack.provider.IQProvider;
25d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenimport org.xmlpull.v1.XmlPullParser;
26d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
27d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
28d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpublic class OfferConfirmation extends IQ {
29d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    private String userJID;
30d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    private long sessionID;
31d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
32d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    public String getUserJID() {
33d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        return userJID;
34d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    }
35d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
36d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    public void setUserJID(String userJID) {
37d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        this.userJID = userJID;
38d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    }
39d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
40d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    public long getSessionID() {
41d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        return sessionID;
42d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    }
43d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
44d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    public void setSessionID(long sessionID) {
45d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        this.sessionID = sessionID;
46d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    }
47d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
48d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
49d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    public void notifyService(Connection con, String workgroup, String createdRoomName) {
50d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        NotifyServicePacket packet = new NotifyServicePacket(workgroup, createdRoomName);
51d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        con.sendPacket(packet);
52d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    }
53d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
54d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    public String getChildElementXML() {
55d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        StringBuilder buf = new StringBuilder();
56d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        buf.append("<offer-confirmation xmlns=\"http://jabber.org/protocol/workgroup\">");
57d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        buf.append("</offer-confirmation>");
58d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        return buf.toString();
59d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    }
60d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
61d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    public static class Provider implements IQProvider {
62d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
63d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        public IQ parseIQ(XmlPullParser parser) throws Exception {
64d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen            final OfferConfirmation confirmation = new OfferConfirmation();
65d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
66d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen            boolean done = false;
67d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen            while (!done) {
68d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                parser.next();
69d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                String elementName = parser.getName();
70d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                if (parser.getEventType() == XmlPullParser.START_TAG && "user-jid".equals(elementName)) {
71d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                    try {
72d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                        confirmation.setUserJID(parser.nextText());
73d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                    }
74d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                    catch (NumberFormatException nfe) {
75d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                    }
76d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                }
77d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                else if (parser.getEventType() == XmlPullParser.START_TAG && "session-id".equals(elementName)) {
78d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                    try {
79d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                        confirmation.setSessionID(Long.valueOf(parser.nextText()));
80d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                    }
81d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                    catch (NumberFormatException nfe) {
82d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                    }
83d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                }
84d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                else if (parser.getEventType() == XmlPullParser.END_TAG && "offer-confirmation".equals(elementName)) {
85d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                    done = true;
86d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen                }
87d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen            }
88d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
89d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
90d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen            return confirmation;
91d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        }
92d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    }
93d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
94d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
95d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    /**
96d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen     * Packet for notifying server of RoomName
97d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen     */
98d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    private class NotifyServicePacket extends IQ {
99d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        String roomName;
100d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
101d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        NotifyServicePacket(String workgroup, String roomName) {
102d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen            this.setTo(workgroup);
103d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen            this.setType(IQ.Type.RESULT);
104d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
105d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen            this.roomName = roomName;
106d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        }
107d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
108d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        public String getChildElementXML() {
109d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen            return "<offer-confirmation  roomname=\"" + roomName + "\" xmlns=\"http://jabber.org/protocol/workgroup" + "\"/>";
110d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        }
111d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    }
112d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
113d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
114d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
115