001: /***
002: * jwma Java WebMail
003: * Copyright (c) 2000-2003 jwma team
004: *
005: * jwma is free software; you can distribute and use this source
006: * under the terms of the BSD-style license received along with
007: * the distribution.
008: ***/package dtw.webmail.model;
009:
010: import java.util.Date;
011:
012: import dtw.webmail.JwmaSession;
013:
014: /**
015: * An interface defining the contract for interaction with
016: * the JwmaContact model.
017: * <p>
018: * The JwmaContact allows a view programmer to obtain
019: * information about an contact to display it for reading
020: * or editing.
021: *
022: * @author Dieter Wimberger
023: * @version 0.9.7 07/02/2003
024: *
025: */
026: public interface JwmaContact {
027:
028: /**
029: * Returns the unique identifier of this <tt>JwmaContact</tt>.
030: *
031: * @return the unique identifier as <tt>String</tt>.
032: */
033: public String getUID();
034:
035: /**
036: * Returns a <tt>String</tt> representing the category
037: * of this <tt>JwmaContact</tt>.
038: *
039: * @return the category as <tt>String</tt>.
040: */
041: public String getCategory();
042:
043: /**
044: * Returns a <tt>String</tt> representing the nickname
045: * of this contact object.
046: * <p>
047: * Note that the nickname is used as unique identifier of
048: * a contact object within the contacts database.
049: *
050: * @return the nickname of this contact as String.
051: *
052: * @see dtw.webmail.model.JwmaContacts
053: */
054: public String getNickname();
055:
056: /**
057: * Returns a <tt>String</tt> representing the firstname
058: * of this contact object.
059: *
060: * @return the firstname of this contact as String.
061: */
062: public String getFirstname();
063:
064: /**
065: * Returns a <tt>String</tt> representing the lastname
066: * of this contact object.
067: *
068: * @return the lastname of this contact as String.
069: */
070: public String getLastname();
071:
072: /**
073: * Returns a <tt>String</tt> representing the middlename
074: * of this contact object.
075: *
076: * @return the middlename of this contact as String.
077: */
078: public String getMiddlename();
079:
080: /**
081: * Returns a <tt>String</tt> representing the company name
082: * of this contact object.
083: *
084: * @return the company name of this contact as String.
085: */
086: public String getCompany();
087:
088: /**
089: * Returns a <tt>String</tt> representing the title
090: * of this contact object.
091: *
092: * @return the title of this contact as String.
093: */
094: public String getTitle();
095:
096: /**
097: * Returns a <tt>String</tt> representing the role
098: * of this contact object.
099: *
100: * @return the role of this contact as String.
101: */
102: public String getRole();
103:
104: /**
105: * Returns a <tt>String</tt> representing the home
106: * phone number of this contact.
107: *
108: * @return the home phone number of this contact as String.
109: */
110: public String getHomePhoneNumber();
111:
112: /**
113: * Returns a <tt>String</tt> representing the work
114: * phone number of this contact.
115: *
116: * @return the work phone number of this contact as String.
117: */
118: public String getWorkPhoneNumber();
119:
120: /**
121: * Returns a <tt>String</tt> representing the pager
122: * number of this contact.
123: *
124: * @return the pager number of this contact as String.
125: */
126: public String getPagerNumber();
127:
128: /**
129: * Returns a <tt>String</tt> representing the fax
130: * number of this contact.
131: *
132: * @return the fax number of this contact as String.
133: */
134: public String getFaxNumber();
135:
136: /**
137: * Returns a <tt>String</tt> representing the mobile
138: * phone number of this contact.
139: *
140: * @return the mobile phone number of this contact as String.
141: */
142: public String getMobileNumber();
143:
144: /**
145: * Tests if this <tt>JwmaContact</tt> is primary a work
146: * contact.
147: *
148: * @return true if primarily work contact, false otherwise.
149: */
150: public boolean isPrimarilyWorkContact();
151:
152: /**
153: * Returns a <tt>String</tt> representing the
154: * street name of this contact at work.
155: *
156: * @return the street of this contact at work as String.
157: */
158: public String getWorkStreet();
159:
160: /**
161: * Returns a <tt>String</tt> representing the
162: * city of this contact at work.
163: *
164: * @return the city of this contact at work as String.
165: */
166: public String getWorkCity();
167:
168: /**
169: * Returns a <tt>String</tt> representing the
170: * region of this contact at work.
171: *
172: * @return the region of this contact at work as String.
173: */
174: public String getWorkRegion();
175:
176: /**
177: * Returns a <tt>String</tt> representing the
178: * country of this contact at work.
179: *
180: * @return the country of this contact at work as String.
181: */
182: public String getWorkCountry();
183:
184: /**
185: * Returns a <tt>String</tt> representing the
186: * ZIP of this contact at work.
187: *
188: * @return the ZIP of this contact at work as String.
189: */
190: public String getWorkZIP();
191:
192: /**
193: * Returns a <tt>String</tt> representing the
194: * street name of this contact at home.
195: *
196: * @return the street of this contact at home as String.
197: */
198: public String getHomeStreet();
199:
200: /**
201: * Returns a <tt>String</tt> representing the
202: * city of this contact at home.
203: *
204: * @return the city of this contact at home as String.
205: */
206: public String getHomeCity();
207:
208: /**
209: * Returns a <tt>String</tt> representing the
210: * region of this contact at home.
211: *
212: * @return the region of this contact at home as String.
213: */
214: public String getHomeRegion();
215:
216: /**
217: * Returns a <tt>String</tt> representing the
218: * country of this contact at home.
219: *
220: * @return the country of this contact at home as String.
221: */
222: public String getHomeCountry();
223:
224: /**
225: * Returns a <tt>String</tt> representing the
226: * ZIP of this contact at home.
227: *
228: * @return the ZIP of this contact at home as String.
229: */
230: public String getHomeZIP();
231:
232: /**
233: * Returns a <tt>String</tt> representing the email
234: * of this contact object.
235: *
236: * @return the email of this contact as String.
237: */
238: public String getEmail();
239:
240: /**
241: * Returns a <tt>String</tt> representing the altnerate
242: * email of this contact object.
243: *
244: * @return the alternate email of this contact as String.
245: */
246: public String getAlternateEmail();
247:
248: /**
249: * Returns a <tt>String</tt> representing an URL
250: * associated with this contact object.
251: *
252: * @return an URL associated with this contact as String.
253: */
254: public String getURL();
255:
256: /**
257: * Returns a <tt>String</tt> representing the company
258: * URL associated with this contact object.
259: *
260: * @return the company URL associated with this contact as String.
261: */
262: public String getCompanyURL();
263:
264: /**
265: * Returns a <tt>String</tt> representing the comments
266: * of this contact object.
267: *
268: * @return the comments of this contact as String.
269: */
270: public String getComments();
271:
272: /**
273: * Returns the birthdate of this contact as <tt>Date</tt>.
274: *
275: * @return the birthdate as <tt>Date</tt>.
276: */
277: public Date getBirthDate();
278:
279: /**
280: * Tests if this contact represents a frequent
281: * recipient.
282: *
283: * @return true if this contact represents a frequent
284: * recipient, false otherwise.
285: */
286: public boolean isFrequentRecipient();
287:
288: }//interface JwmaContact
|