17531be7774769c84b499b1de5dc46da3a9468316Marc Blank/* Copyright (C) 2010 The Android Open Source Project. 27531be7774769c84b499b1de5dc46da3a9468316Marc Blank * 37531be7774769c84b499b1de5dc46da3a9468316Marc Blank * Licensed under the Apache License, Version 2.0 (the "License"); 47531be7774769c84b499b1de5dc46da3a9468316Marc Blank * you may not use this file except in compliance with the License. 57531be7774769c84b499b1de5dc46da3a9468316Marc Blank * You may obtain a copy of the License at 67531be7774769c84b499b1de5dc46da3a9468316Marc Blank * 77531be7774769c84b499b1de5dc46da3a9468316Marc Blank * http://www.apache.org/licenses/LICENSE-2.0 87531be7774769c84b499b1de5dc46da3a9468316Marc Blank * 97531be7774769c84b499b1de5dc46da3a9468316Marc Blank * Unless required by applicable law or agreed to in writing, software 107531be7774769c84b499b1de5dc46da3a9468316Marc Blank * distributed under the License is distributed on an "AS IS" BASIS, 117531be7774769c84b499b1de5dc46da3a9468316Marc Blank * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 127531be7774769c84b499b1de5dc46da3a9468316Marc Blank * See the License for the specific language governing permissions and 137531be7774769c84b499b1de5dc46da3a9468316Marc Blank * limitations under the License. 147531be7774769c84b499b1de5dc46da3a9468316Marc Blank */ 157531be7774769c84b499b1de5dc46da3a9468316Marc Blank 167531be7774769c84b499b1de5dc46da3a9468316Marc Blankpackage com.android.exchange.adapter; 177531be7774769c84b499b1de5dc46da3a9468316Marc Blank 18110837ebff288a75f9bda067c38e2c46797d99b5Alon Albertimport com.android.exchange.Eas; 1962c287af3bed45818accf595c56879ad5c57aaf9Yu Ping Huimport com.android.mail.utils.LogUtils; 207531be7774769c84b499b1de5dc46da3a9468316Marc Blank 217531be7774769c84b499b1de5dc46da3a9468316Marc Blankimport java.io.IOException; 227531be7774769c84b499b1de5dc46da3a9468316Marc Blankimport java.io.InputStream; 237531be7774769c84b499b1de5dc46da3a9468316Marc Blank 247531be7774769c84b499b1de5dc46da3a9468316Marc Blank/** 257531be7774769c84b499b1de5dc46da3a9468316Marc Blank * Parse the result of a MeetingRequest command. 267531be7774769c84b499b1de5dc46da3a9468316Marc Blank */ 277531be7774769c84b499b1de5dc46da3a9468316Marc Blankpublic class MeetingResponseParser extends Parser { 28110837ebff288a75f9bda067c38e2c46797d99b5Alon Albert private static final String TAG = Eas.LOG_TAG; 297531be7774769c84b499b1de5dc46da3a9468316Marc Blank 3062c287af3bed45818accf595c56879ad5c57aaf9Yu Ping Hu public MeetingResponseParser(final InputStream in) throws IOException { 317531be7774769c84b499b1de5dc46da3a9468316Marc Blank super(in); 327531be7774769c84b499b1de5dc46da3a9468316Marc Blank } 337531be7774769c84b499b1de5dc46da3a9468316Marc Blank 3462c287af3bed45818accf595c56879ad5c57aaf9Yu Ping Hu private void parseResult() throws IOException { 357531be7774769c84b499b1de5dc46da3a9468316Marc Blank while (nextTag(Tags.MREQ_RESULT) != END) { 367531be7774769c84b499b1de5dc46da3a9468316Marc Blank if (tag == Tags.MREQ_STATUS) { 377531be7774769c84b499b1de5dc46da3a9468316Marc Blank int status = getValueInt(); 387531be7774769c84b499b1de5dc46da3a9468316Marc Blank if (status != 1) { 393eef378426c7c88608f53f5a268baed40259ccf6Alon Albert LogUtils.w(TAG, "Error in meeting response: %d", status); 407531be7774769c84b499b1de5dc46da3a9468316Marc Blank } 417531be7774769c84b499b1de5dc46da3a9468316Marc Blank } else if (tag == Tags.MREQ_CAL_ID) { 423eef378426c7c88608f53f5a268baed40259ccf6Alon Albert LogUtils.d(TAG, "Meeting response calender id: %s", getValue()); 437531be7774769c84b499b1de5dc46da3a9468316Marc Blank } else { 447531be7774769c84b499b1de5dc46da3a9468316Marc Blank skipTag(); 457531be7774769c84b499b1de5dc46da3a9468316Marc Blank } 467531be7774769c84b499b1de5dc46da3a9468316Marc Blank } 477531be7774769c84b499b1de5dc46da3a9468316Marc Blank } 487531be7774769c84b499b1de5dc46da3a9468316Marc Blank 497531be7774769c84b499b1de5dc46da3a9468316Marc Blank @Override 507531be7774769c84b499b1de5dc46da3a9468316Marc Blank public boolean parse() throws IOException { 517531be7774769c84b499b1de5dc46da3a9468316Marc Blank boolean res = false; 527531be7774769c84b499b1de5dc46da3a9468316Marc Blank if (nextTag(START_DOCUMENT) != Tags.MREQ_MEETING_RESPONSE) { 537531be7774769c84b499b1de5dc46da3a9468316Marc Blank throw new IOException(); 547531be7774769c84b499b1de5dc46da3a9468316Marc Blank } 557531be7774769c84b499b1de5dc46da3a9468316Marc Blank while (nextTag(START_DOCUMENT) != END_DOCUMENT) { 567531be7774769c84b499b1de5dc46da3a9468316Marc Blank if (tag == Tags.MREQ_RESULT) { 577531be7774769c84b499b1de5dc46da3a9468316Marc Blank parseResult(); 587531be7774769c84b499b1de5dc46da3a9468316Marc Blank } else { 597531be7774769c84b499b1de5dc46da3a9468316Marc Blank skipTag(); 607531be7774769c84b499b1de5dc46da3a9468316Marc Blank } 617531be7774769c84b499b1de5dc46da3a9468316Marc Blank } 627531be7774769c84b499b1de5dc46da3a9468316Marc Blank return res; 637531be7774769c84b499b1de5dc46da3a9468316Marc Blank } 647531be7774769c84b499b1de5dc46da3a9468316Marc Blank} 657531be7774769c84b499b1de5dc46da3a9468316Marc Blank 66