ImpsUserAddress.java
上传用户:szyujian
上传日期:2016-09-20
资源大小:320k
文件大小:2k
源码类别:

android开发

开发平台:

C/C++

  1. /*
  2.  * Copyright (C) 2007-2008 Esmertec AG.
  3.  * Copyright (C) 2007-2008 The Android Open Source Project
  4.  *
  5.  * Licensed under the Apache License, Version 2.0 (the "License");
  6.  * you may not use this file except in compliance with the License.
  7.  * You may obtain a copy of the License at
  8.  *
  9.  *      http://www.apache.org/licenses/LICENSE-2.0
  10.  *
  11.  * Unless required by applicable law or agreed to in writing, software
  12.  * distributed under the License is distributed on an "AS IS" BASIS,
  13.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14.  * See the License for the specific language governing permissions and
  15.  * limitations under the License.
  16.  */
  17. package com.android.im.imps;
  18. import com.android.im.engine.Contact;
  19. import com.android.im.engine.ContactList;
  20. import com.android.im.engine.ContactListManager;
  21. import com.android.im.engine.ImEntity;
  22. public class ImpsUserAddress extends ImpsAddress{
  23.     /**
  24.      * Default Constructor. Required by AddressParcelHelper.
  25.      */
  26.     public ImpsUserAddress() {
  27.     }
  28.     public ImpsUserAddress(String full, boolean verify) {
  29.         super(full, verify);
  30.         if(verify && (mUser == null || mResource != null)) {
  31.             throw new IllegalArgumentException();
  32.         }
  33.     }
  34.     public ImpsUserAddress(String full) {
  35.         this(full, false);
  36.     }
  37.     public ImpsUserAddress(String user, String domain) {
  38.         super(user, null, domain);
  39.     }
  40.     @Override
  41.     public PrimitiveElement toPrimitiveElement() {
  42.         PrimitiveElement user = new PrimitiveElement(ImpsTags.User);
  43.         user.addChild(ImpsTags.UserID, getFullName());
  44.         return user;
  45.     }
  46.     @Override
  47.     public String getScreenName() {
  48.         return mUser;
  49.     }
  50.     @Override
  51.     public ImEntity getEntity(ImpsConnection connection) {
  52.         ContactListManager manager = connection.getContactListManager();
  53.         for(ContactList list : manager.getContactLists()) {
  54.             Contact contact = list.getContact(this);
  55.             if(contact != null) {
  56.                 return contact;
  57.             }
  58.         }
  59.         //TODO: add to a stranger list?
  60.         return new Contact(this, this.getUser());
  61.     }
  62. }