001/* 002 * The MIT License 003 * Copyright (c) 2012 Microsoft Corporation 004 * 005 * Permission is hereby granted, free of charge, to any person obtaining a copy 006 * of this software and associated documentation files (the "Software"), to deal 007 * in the Software without restriction, including without limitation the rights 008 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 009 * copies of the Software, and to permit persons to whom the Software is 010 * furnished to do so, subject to the following conditions: 011 * 012 * The above copyright notice and this permission notice shall be included in 013 * all copies or substantial portions of the Software. 014 * 015 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 016 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 017 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 018 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 019 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 020 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 021 * THE SOFTWARE. 022 */ 023 024package microsoft.exchange.webservices.data.property.complex; 025 026import microsoft.exchange.webservices.data.core.EwsServiceXmlReader; 027import microsoft.exchange.webservices.data.core.EwsServiceXmlWriter; 028import microsoft.exchange.webservices.data.core.XmlElementNames; 029import microsoft.exchange.webservices.data.core.enumeration.misc.XmlNamespace; 030 031/** 032 * Represents the complete name of a contact. 033 */ 034public final class CompleteName extends ComplexProperty { 035 036 /** 037 * The title. 038 */ 039 private String title; 040 041 /** 042 * The given name. 043 */ 044 private String givenName; 045 046 /** 047 * The middle name. 048 */ 049 private String middleName; 050 051 /** 052 * The surname. 053 */ 054 private String surname; 055 056 /** 057 * The suffix. 058 */ 059 private String suffix; 060 061 /** 062 * The initials. 063 */ 064 private String initials; 065 066 /** 067 * The full name. 068 */ 069 private String fullName; 070 071 /** 072 * The nickname. 073 */ 074 private String nickname; 075 076 /** 077 * The yomi given name. 078 */ 079 private String yomiGivenName; 080 081 /** 082 * The yomi surname. 083 */ 084 private String yomiSurname; 085 086 /** 087 * Gets the contact's title. 088 * 089 * @return the title 090 */ 091 public String getTitle() { 092 return title; 093 } 094 095 /** 096 * Gets the given name (first name) of the contact. 097 * 098 * @return the givenName 099 */ 100 public String getGivenName() { 101 return givenName; 102 } 103 104 /** 105 * Gets the middle name of the contact. 106 * 107 * @return the middleName 108 */ 109 public String getMiddleName() { 110 return middleName; 111 } 112 113 /** 114 * Gets the surname (last name) of the contact. 115 * 116 * @return the surname 117 */ 118 public String getSurname() { 119 return surname; 120 } 121 122 /** 123 * Gets the suffix of the contact. 124 * 125 * @return the suffix 126 */ 127 public String getSuffix() { 128 return suffix; 129 } 130 131 /** 132 * Gets the initials of the contact. 133 * 134 * @return the initials 135 */ 136 public String getInitials() { 137 return initials; 138 } 139 140 /** 141 * Gets the full name of the contact. 142 * 143 * @return the fullName 144 */ 145 public String getFullName() { 146 return fullName; 147 } 148 149 /** 150 * Gets the nickname of the contact. 151 * 152 * @return the nickname 153 */ 154 public String getNickname() { 155 return nickname; 156 } 157 158 /** 159 * Gets the Yomi given name (first name) of the contact. 160 * 161 * @return the yomiGivenName 162 */ 163 public String getYomiGivenName() { 164 return yomiGivenName; 165 } 166 167 /** 168 * Gets the Yomi surname (last name) of the contact. 169 * 170 * @return the yomiSurname 171 */ 172 public String getYomiSurname() { 173 return yomiSurname; 174 } 175 176 /** 177 * Tries to read element from XML. 178 * 179 * @param reader The reader. 180 * @return True if element was read. 181 * @throws Exception the exception 182 */ 183 @Override 184 public boolean tryReadElementFromXml(EwsServiceXmlReader reader) 185 throws Exception { 186 187 if (reader.getLocalName().equalsIgnoreCase(XmlElementNames.Title)) { 188 this.title = reader.readElementValue(); 189 return true; 190 } else if (reader.getLocalName().equalsIgnoreCase( 191 XmlElementNames.FirstName)) { 192 this.givenName = reader.readElementValue(); 193 return true; 194 } else if (reader.getLocalName().equalsIgnoreCase( 195 XmlElementNames.MiddleName)) { 196 this.middleName = reader.readElementValue(); 197 return true; 198 } else if (reader.getLocalName().equalsIgnoreCase( 199 XmlElementNames.LastName)) { 200 this.surname = reader.readElementValue(); 201 return true; 202 } else if (reader.getLocalName().equalsIgnoreCase( 203 XmlElementNames.Suffix)) { 204 this.suffix = reader.readElementValue(); 205 return true; 206 } else if (reader.getLocalName().equalsIgnoreCase( 207 XmlElementNames.Initials)) { 208 this.initials = reader.readElementValue(); 209 return true; 210 } else if (reader.getLocalName().equalsIgnoreCase( 211 XmlElementNames.FullName)) { 212 this.fullName = reader.readElementValue(); 213 return true; 214 } else if (reader.getLocalName().equalsIgnoreCase( 215 XmlElementNames.NickName)) { 216 this.nickname = reader.readElementValue(); 217 return true; 218 } else if (reader.getLocalName().equalsIgnoreCase( 219 XmlElementNames.YomiFirstName)) { 220 this.yomiGivenName = reader.readElementValue(); 221 return true; 222 } else if (reader.getLocalName().equalsIgnoreCase( 223 XmlElementNames.YomiLastName)) { 224 this.yomiSurname = reader.readElementValue(); 225 return true; 226 } else { 227 return false; 228 } 229 } 230 231 /** 232 * Writes the elements to XML. 233 * 234 * @param writer accepts EwsServiceXmlWriter 235 * @throws Exception throws Exception 236 */ 237 @Override 238 public void writeElementsToXml(EwsServiceXmlWriter writer) 239 throws Exception { 240 writer.writeElementValue(XmlNamespace.Types, XmlElementNames.Title, 241 this.title); 242 writer.writeElementValue(XmlNamespace.Types, XmlElementNames.FirstName, 243 this.givenName); 244 writer.writeElementValue(XmlNamespace.Types, 245 XmlElementNames.MiddleName, this.middleName); 246 writer.writeElementValue(XmlNamespace.Types, XmlElementNames.LastName, 247 this.surname); 248 writer.writeElementValue(XmlNamespace.Types, XmlElementNames.Suffix, 249 this.suffix); 250 writer.writeElementValue(XmlNamespace.Types, XmlElementNames.Initials, 251 this.initials); 252 writer.writeElementValue(XmlNamespace.Types, XmlElementNames.FullName, 253 this.fullName); 254 writer.writeElementValue(XmlNamespace.Types, XmlElementNames.NickName, 255 this.nickname); 256 writer.writeElementValue(XmlNamespace.Types, 257 XmlElementNames.YomiFirstName, this.yomiGivenName); 258 writer.writeElementValue(XmlNamespace.Types, 259 XmlElementNames.YomiLastName, this.yomiSurname); 260 } 261}