2016-02-24 16:56:39 +01:00

121 lines
3.7 KiB
Objective-C

//
// XMPPvCardTemp.h
// XEP-0054 vCard-temp
//
// Created by Eric Chamberlain on 3/9/11.
// Copyright 2011 RF.com. All rights reserved.
// Copyright 2010 Martin Morrison. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
#import "XMPPIQ.h"
#import "XMPPJID.h"
#import "XMPPUser.h"
#import "XMPPvCardTempAdr.h"
#import "XMPPvCardTempBase.h"
#import "XMPPvCardTempEmail.h"
#import "XMPPvCardTempLabel.h"
#import "XMPPvCardTempTel.h"
typedef enum _XMPPvCardTempClass {
XMPPvCardTempClassNone,
XMPPvCardTempClassPublic,
XMPPvCardTempClassPrivate,
XMPPvCardTempClassConfidential,
} XMPPvCardTempClass;
extern NSString *const kXMPPNSvCardTemp;
extern NSString *const kXMPPvCardTempElement;
/*
* Note: according to the DTD, every fields bar N and FN can appear multiple times.
* The provided accessors only support this for the field types where multiple
* entries make sense - for the others, if required, the NSXMLElement accessors
* must be used.
*/
@interface XMPPvCardTemp : XMPPvCardTempBase
@property (nonatomic, strong) NSDate *bday;
@property (nonatomic, strong) NSData *photo;
@property (nonatomic, strong) NSString *nickname;
@property (nonatomic, strong) NSString *formattedName;
@property (nonatomic, strong) NSString *familyName;
@property (nonatomic, strong) NSString *givenName;
@property (nonatomic, strong) NSString *middleName;
@property (nonatomic, strong) NSString *prefix;
@property (nonatomic, strong) NSString *suffix;
@property (nonatomic, strong) NSArray *addresses;
@property (nonatomic, strong) NSArray *labels;
@property (nonatomic, strong) NSArray *telecomsAddresses;
@property (nonatomic, strong) NSArray *emailAddresses;
@property (nonatomic, strong) XMPPJID *jid;
@property (nonatomic, strong) NSString *mailer;
@property (nonatomic, strong) NSTimeZone *timeZone;
@property (nonatomic, strong) CLLocation *location;
@property (nonatomic, strong) NSString *title;
@property (nonatomic, strong) NSString *role;
@property (nonatomic, strong) NSData *logo;
@property (nonatomic, strong) XMPPvCardTemp *agent;
@property (nonatomic, strong) NSString *orgName;
/*
* ORGUNITs can only be set if there is already an ORGNAME. Otherwise, changes are ignored.
*/
@property (nonatomic, strong) NSArray *orgUnits;
@property (nonatomic, strong) NSArray *categories;
@property (nonatomic, strong) NSString *note;
@property (nonatomic, strong) NSString *prodid;
@property (nonatomic, strong) NSDate *revision;
@property (nonatomic, strong) NSString *sortString;
@property (nonatomic, strong) NSString *phoneticSound;
@property (nonatomic, strong) NSData *sound;
@property (nonatomic, strong) NSString *uid;
@property (nonatomic, strong) NSString *url;
@property (nonatomic, strong) NSString *version;
@property (nonatomic, strong) NSString *desc;
@property (nonatomic, assign) XMPPvCardTempClass privacyClass;
@property (nonatomic, strong) NSData *key;
@property (nonatomic, strong) NSString *keyType;
+ (XMPPvCardTemp *)vCardTempFromElement:(NSXMLElement *)element;
+ (XMPPvCardTemp *)vCardTemp;
+ (XMPPvCardTemp *)vCardTempSubElementFromIQ:(XMPPIQ *)iq;
+ (XMPPvCardTemp *)vCardTempCopyFromIQ:(XMPPIQ *)iq;
+ (XMPPIQ *)iqvCardRequestForJID:(XMPPJID *)jid;
- (void)addAddress:(XMPPvCardTempAdr *)adr;
- (void)removeAddress:(XMPPvCardTempAdr *)adr;
- (void)clearAddresses;
- (void)addLabel:(XMPPvCardTempLabel *)label;
- (void)removeLabel:(XMPPvCardTempLabel *)label;
- (void)clearLabels;
- (void)addTelecomsAddress:(XMPPvCardTempTel *)tel;
- (void)removeTelecomsAddress:(XMPPvCardTempTel *)tel;
- (void)clearTelecomsAddresses;
- (void)addEmailAddress:(XMPPvCardTempEmail *)email;
- (void)removeEmailAddress:(XMPPvCardTempEmail *)email;
- (void)clearEmailAddresses;
@end