added user export functionality and refined the user import functionality,
including a lot of functionality associated with VCards
This commit is contained in:
		
							parent
							
								
									e6e94f3427
								
							
						
					
					
						commit
						7061d88b22
					
				@ -9,9 +9,9 @@
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
 * Copyright (C) 2001-02 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 2001-2004 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * 
 | 
			
		||||
 * Contributor(s): 
 | 
			
		||||
 */
 | 
			
		||||
@ -343,6 +343,17 @@ public class StringUtil
 | 
			
		||||
 | 
			
		||||
  } // end isBooleanTrue
 | 
			
		||||
 | 
			
		||||
  public static final boolean areEqual(String s1, String s2)
 | 
			
		||||
  {
 | 
			
		||||
    if (s1==null)
 | 
			
		||||
      return (s2==null);
 | 
			
		||||
    else if (s2==null)
 | 
			
		||||
      return false;
 | 
			
		||||
    else
 | 
			
		||||
      return s1.equals(s2);
 | 
			
		||||
 | 
			
		||||
  } // end areEqual
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Static initializer
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
@ -44,9 +44,9 @@ public interface AdminOperations
 | 
			
		||||
 | 
			
		||||
  public abstract void setProperties(GlobalProperties props) throws DataException;
 | 
			
		||||
 | 
			
		||||
  public abstract AdminUserContext createNewAccount(String username, String password, String reminder,
 | 
			
		||||
						    boolean verify_email, boolean lockout, Role base_role,
 | 
			
		||||
						    String description, boolean auto_join)
 | 
			
		||||
  public abstract AdminUserContext createNewAccount(String username, String password, boolean prehashed,
 | 
			
		||||
						    String reminder, boolean verify_email, boolean lockout,
 | 
			
		||||
						    Role base_role, String description, boolean auto_join)
 | 
			
		||||
      throws DataException, AccessError;
 | 
			
		||||
 | 
			
		||||
  public abstract List getIPBanInfo() throws DataException;
 | 
			
		||||
 | 
			
		||||
@ -9,14 +9,16 @@
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
 * Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 2001-2004 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * 
 | 
			
		||||
 * Contributor(s): 
 | 
			
		||||
 */
 | 
			
		||||
package com.silverwrist.venice.core;
 | 
			
		||||
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.io.Writer;
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import java.util.Locale;
 | 
			
		||||
import java.util.TimeZone;
 | 
			
		||||
@ -73,4 +75,6 @@ public interface AdminUserContext
 | 
			
		||||
 | 
			
		||||
  public abstract void setProperties(AdminUserProperties props) throws DataException;
 | 
			
		||||
 | 
			
		||||
  public abstract void export(Writer xml) throws IOException, DataException;
 | 
			
		||||
 | 
			
		||||
} // end interface AdminUserContext
 | 
			
		||||
 | 
			
		||||
@ -9,9 +9,9 @@
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
 * Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 2001-2004 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * 
 | 
			
		||||
 * Contributor(s): 
 | 
			
		||||
 */
 | 
			
		||||
@ -126,6 +126,8 @@ public interface ContactInfo
 | 
			
		||||
 | 
			
		||||
  public abstract void importVCard(VCard vc);
 | 
			
		||||
 | 
			
		||||
  public abstract VCard exportVCard();
 | 
			
		||||
 | 
			
		||||
  public abstract boolean canSetPhoto();
 | 
			
		||||
 | 
			
		||||
} // end interface ContactInfo
 | 
			
		||||
 | 
			
		||||
@ -9,9 +9,9 @@
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
 * Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 2001-2004 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * 
 | 
			
		||||
 * Contributor(s): 
 | 
			
		||||
 */
 | 
			
		||||
@ -21,6 +21,7 @@ import java.util.Date;
 | 
			
		||||
import com.silverwrist.venice.except.AccessError;
 | 
			
		||||
import com.silverwrist.venice.except.DataException;
 | 
			
		||||
import com.silverwrist.venice.except.EmailException;
 | 
			
		||||
import com.silverwrist.venice.util.VCard;
 | 
			
		||||
 | 
			
		||||
public interface UserProfile
 | 
			
		||||
{
 | 
			
		||||
@ -76,6 +77,8 @@ public interface UserProfile
 | 
			
		||||
 | 
			
		||||
  public abstract boolean isAnonymous();
 | 
			
		||||
 | 
			
		||||
  public abstract VCard getVCard();
 | 
			
		||||
 | 
			
		||||
  public abstract boolean canSendQuickEmail();
 | 
			
		||||
 | 
			
		||||
  public abstract void sendQuickEmail(String subject, String text)
 | 
			
		||||
 | 
			
		||||
@ -276,7 +276,7 @@ class AdminOperationsImpl implements AdminOperations
 | 
			
		||||
 | 
			
		||||
  } // end setProperties
 | 
			
		||||
 | 
			
		||||
  public AdminUserContext createNewAccount(String username, String password, String reminder,
 | 
			
		||||
  public AdminUserContext createNewAccount(String username, String password, boolean prehashed, String reminder,
 | 
			
		||||
					   boolean verify_email, boolean lockout, Role base_role,
 | 
			
		||||
					   String description, boolean auto_join)
 | 
			
		||||
      throws DataException, AccessError
 | 
			
		||||
@ -288,7 +288,7 @@ class AdminOperationsImpl implements AdminOperations
 | 
			
		||||
      base_role = env.getDefaultRole("Global.NewUser");
 | 
			
		||||
 | 
			
		||||
    // Create the user account.
 | 
			
		||||
    ReturnNewUser rnu = UserContextImpl.createAccount(env,env.getRemoteAddress(),username,password,reminder,
 | 
			
		||||
    ReturnNewUser rnu = UserContextImpl.createAccount(env,env.getRemoteAddress(),username,password,prehashed,reminder,
 | 
			
		||||
						      verify_email,lockout,0,base_role,description);
 | 
			
		||||
 | 
			
		||||
    if (auto_join)
 | 
			
		||||
 | 
			
		||||
@ -9,14 +9,15 @@
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
 * Copyright (C) 2001-02 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 2001-2004 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * 
 | 
			
		||||
 * Contributor(s): 
 | 
			
		||||
 */
 | 
			
		||||
package com.silverwrist.venice.core.impl;
 | 
			
		||||
 | 
			
		||||
import java.io.*;
 | 
			
		||||
import java.sql.*;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import org.apache.log4j.*;
 | 
			
		||||
@ -27,6 +28,8 @@ import com.silverwrist.venice.core.internals.*;
 | 
			
		||||
import com.silverwrist.venice.db.*;
 | 
			
		||||
import com.silverwrist.venice.except.*;
 | 
			
		||||
import com.silverwrist.venice.security.*;
 | 
			
		||||
import com.silverwrist.venice.svc.SecurityMonitorEnvironment;
 | 
			
		||||
import com.silverwrist.venice.util.BuildVCard;
 | 
			
		||||
 | 
			
		||||
class AdminUserContextImpl implements AdminUserContext
 | 
			
		||||
{
 | 
			
		||||
@ -621,6 +624,121 @@ class AdminUserContextImpl implements AdminUserContext
 | 
			
		||||
 | 
			
		||||
  } // end setProperties
 | 
			
		||||
 | 
			
		||||
  public void export(Writer xml) throws IOException, DataException
 | 
			
		||||
  {
 | 
			
		||||
    // get the community-level security monitor
 | 
			
		||||
    SecurityMonitorEnvironment sm_env =
 | 
			
		||||
        (SecurityMonitorEnvironment)(env.getGlobalSite().queryService(SecurityMonitorEnvironment.class));
 | 
			
		||||
    SecurityMonitor cmon = sm_env.getMonitor("Community");
 | 
			
		||||
 | 
			
		||||
    // get the contact information
 | 
			
		||||
    ContactInfoImpl ci = new ContactInfoImpl(env,contactid,true);
 | 
			
		||||
 | 
			
		||||
    // some things we need a database connection for...
 | 
			
		||||
    String hash = null, reminder = null;
 | 
			
		||||
    List join_comms = null;
 | 
			
		||||
    Connection conn = null;
 | 
			
		||||
    PreparedStatement stmt = null;
 | 
			
		||||
    ResultSet rs = null;
 | 
			
		||||
    try
 | 
			
		||||
    { // get the password and password reminder
 | 
			
		||||
      conn = env.getConnection();
 | 
			
		||||
      stmt = conn.prepareStatement("SELECT passhash, passreminder FROM users WHERE uid = ?;");
 | 
			
		||||
      stmt.setInt(1,uid);
 | 
			
		||||
      rs = stmt.executeQuery();
 | 
			
		||||
      if (!(rs.next()))
 | 
			
		||||
	throw new DataException("internal error: can\'t find user record for uid " + uid);
 | 
			
		||||
      hash = rs.getString(1);
 | 
			
		||||
      reminder = rs.getString(2);
 | 
			
		||||
 | 
			
		||||
      // get the list of communities of which we're a member
 | 
			
		||||
      rs.close();
 | 
			
		||||
      stmt.close();
 | 
			
		||||
      stmt = conn.prepareStatement("SELECT s.alias, m.granted_lvl FROM sigmember m, sigs s "
 | 
			
		||||
				   + "WHERE s.sigid = m.sigid AND m.uid = ?;");
 | 
			
		||||
      stmt.setInt(1,uid);
 | 
			
		||||
      rs = stmt.executeQuery();
 | 
			
		||||
      while (rs.next())
 | 
			
		||||
      { // load alias and grant levels
 | 
			
		||||
	Role r = cmon.getRoleForLevel(rs.getInt(2));
 | 
			
		||||
	Object[] foo = new Object[] { rs.getString(1), r };
 | 
			
		||||
	if (join_comms==null)
 | 
			
		||||
	  join_comms = new ArrayList();
 | 
			
		||||
	join_comms.add(foo);
 | 
			
		||||
 | 
			
		||||
      } // end while
 | 
			
		||||
 | 
			
		||||
      if (join_comms==null)
 | 
			
		||||
	join_comms = Collections.EMPTY_LIST;
 | 
			
		||||
      
 | 
			
		||||
    } // end try
 | 
			
		||||
    catch (SQLException e)
 | 
			
		||||
    { // translate the SQLException
 | 
			
		||||
      throw new DataException("Database error: " + e.getMessage(),e);
 | 
			
		||||
 | 
			
		||||
    } // end catch
 | 
			
		||||
    finally
 | 
			
		||||
    { // shut down everything
 | 
			
		||||
      SQLUtil.shutdown(rs);
 | 
			
		||||
      SQLUtil.shutdown(stmt);
 | 
			
		||||
      SQLUtil.shutdown(conn);
 | 
			
		||||
 | 
			
		||||
    } // end finally
 | 
			
		||||
 | 
			
		||||
    xml.write("<venice-user id=\"" + uid + "\">\n");
 | 
			
		||||
    xml.write("<username>" + username + "</username>\n");
 | 
			
		||||
    xml.write("<password prehashed=\"true\">" + hash + "</password>\n");
 | 
			
		||||
    xml.write("<password-reminder>" + reminder + "</password-reminder>\n");
 | 
			
		||||
    xml.write("<description>" + description + "</description>\n");
 | 
			
		||||
    xml.write("<options confirmed=\"");
 | 
			
		||||
    xml.write(email_verified ? "true" : "false");
 | 
			
		||||
    xml.write("\" locked=\"");
 | 
			
		||||
    xml.write(lockout ? "true" : "false");
 | 
			
		||||
    xml.write("\" role=\"");
 | 
			
		||||
    xml.write(env.getRoleForLevel(level).getSymbol());
 | 
			
		||||
    xml.write("\" hideaddr=\"");
 | 
			
		||||
    xml.write(ci.getPrivateAddress() ? "true" : "false");
 | 
			
		||||
    xml.write("\" hidephone=\"");
 | 
			
		||||
    xml.write(ci.getPrivatePhone() ? "true" : "false");
 | 
			
		||||
    xml.write("\" hidefax=\"");
 | 
			
		||||
    xml.write(ci.getPrivateFax() ? "true" : "false");
 | 
			
		||||
    xml.write("\" hideemail=\"");
 | 
			
		||||
    xml.write(ci.getPrivateEmail() ? "true" : "false");
 | 
			
		||||
    xml.write("\" autojoin=\"");
 | 
			
		||||
    xml.write(email_verified ? "true" : "false");
 | 
			
		||||
    xml.write("\" postpictures=\"");
 | 
			
		||||
    xml.write(flags.get(UserContextImpl.BF_POSTPICTURES) ? "true" : "false");
 | 
			
		||||
    xml.write("\" optout=\"");
 | 
			
		||||
    xml.write(flags.get(UserContextImpl.BF_ADM_NOPHOTO) ? "true" : "false");
 | 
			
		||||
    xml.write("\" nophoto=\"");
 | 
			
		||||
    xml.write(flags.get(UserContextImpl.BF_MASSMAIL_OPTOUT) ? "true" : "false");
 | 
			
		||||
    xml.write("\" locale=\"");
 | 
			
		||||
    xml.write(my_locale.toString());
 | 
			
		||||
    xml.write("\" zonehint=\"");
 | 
			
		||||
    xml.write(my_tz.getID());
 | 
			
		||||
    xml.write("\" />\n");
 | 
			
		||||
 | 
			
		||||
    // get the vCard info and serialize it
 | 
			
		||||
    BuildVCard bvc = ci.getVCardBuilder();
 | 
			
		||||
    bvc.setTimeZone(my_tz);
 | 
			
		||||
    bvc.create().exportXML(xml);
 | 
			
		||||
 | 
			
		||||
    for (Iterator it=join_comms.iterator(); it.hasNext(); )
 | 
			
		||||
    { // add <join/> elements for communities user is a member of
 | 
			
		||||
      Object[] foo = (Object[])(it.next());
 | 
			
		||||
      xml.write("<join role=\"");
 | 
			
		||||
      xml.write(((Role)(foo[1])).getSymbol());
 | 
			
		||||
      xml.write("\">");
 | 
			
		||||
      xml.write(foo[0].toString());
 | 
			
		||||
      xml.write("</join>\n");
 | 
			
		||||
 | 
			
		||||
    } // end for
 | 
			
		||||
 | 
			
		||||
    // all done!
 | 
			
		||||
    xml.write("</venice-user>\n");
 | 
			
		||||
 | 
			
		||||
  } // end export
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Package-level static operations
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
@ -9,9 +9,9 @@
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
 * Copyright (C) 2001-02 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 2001-2004 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * 
 | 
			
		||||
 * Contributor(s): 
 | 
			
		||||
 */
 | 
			
		||||
@ -923,6 +923,12 @@ class ContactInfoImpl implements ContactInfo, Stashable
 | 
			
		||||
 | 
			
		||||
  } // end importVCard
 | 
			
		||||
 | 
			
		||||
  public VCard exportVCard()
 | 
			
		||||
  {
 | 
			
		||||
    return getVCardBuilder().create();
 | 
			
		||||
 | 
			
		||||
  } // end exportVCard
 | 
			
		||||
 | 
			
		||||
  public boolean canSetPhoto()
 | 
			
		||||
  {
 | 
			
		||||
    return can_set_photo;
 | 
			
		||||
@ -1096,4 +1102,96 @@ class ContactInfoImpl implements ContactInfo, Stashable
 | 
			
		||||
    
 | 
			
		||||
  } // end stash
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * External operations
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  BuildVCard getVCardBuilder()
 | 
			
		||||
  {
 | 
			
		||||
    BuildVCard bvc = new BuildVCard();
 | 
			
		||||
    bvc.setFamilyName(family_name);
 | 
			
		||||
    bvc.setGivenName(given_name);
 | 
			
		||||
    bvc.setMiddleName(new String(new char[] { middle_initial }));
 | 
			
		||||
    bvc.setPrefix(prefix);
 | 
			
		||||
    bvc.setSuffix(suffix);
 | 
			
		||||
    bvc.setOrganizationName(company);
 | 
			
		||||
    bvc.setURL(url);
 | 
			
		||||
 | 
			
		||||
    // add the address to the VCard
 | 
			
		||||
    BuildVCardAddress baddr = new BuildVCardAddress();
 | 
			
		||||
    baddr.setHomeAddress(true);
 | 
			
		||||
    baddr.setWorkAddress(true);
 | 
			
		||||
    baddr.setPreferred(true);
 | 
			
		||||
    if (addr1!=null)
 | 
			
		||||
    { // save off address
 | 
			
		||||
      if (addr2!=null)
 | 
			
		||||
      { // set extension, then street
 | 
			
		||||
	baddr.setExtension(addr1);
 | 
			
		||||
	baddr.setStreet(addr2);
 | 
			
		||||
 | 
			
		||||
      } // end if
 | 
			
		||||
      else // set the street address
 | 
			
		||||
	baddr.setStreet(addr1);
 | 
			
		||||
 | 
			
		||||
    } // end if
 | 
			
		||||
 | 
			
		||||
    baddr.setLocality(locality);
 | 
			
		||||
    baddr.setRegion(region);
 | 
			
		||||
    baddr.setPostalCode(postal_code);
 | 
			
		||||
    baddr.setCountry(country);
 | 
			
		||||
    bvc.addAddress(baddr.create());
 | 
			
		||||
 | 
			
		||||
    // Add phone number.
 | 
			
		||||
    BuildVCardPhone bphone = new BuildVCardPhone();
 | 
			
		||||
    if (phone!=null)
 | 
			
		||||
    { // set attributes and number
 | 
			
		||||
      bphone.setHomePhone(true);
 | 
			
		||||
      bphone.setWorkPhone(true);
 | 
			
		||||
      bphone.setVoicePhone(true);
 | 
			
		||||
      bphone.setNumber(phone);
 | 
			
		||||
      bvc.addPhone(bphone.create());
 | 
			
		||||
      bphone.reset();
 | 
			
		||||
 | 
			
		||||
    } // end if
 | 
			
		||||
 | 
			
		||||
    // Add fax number.
 | 
			
		||||
    if (fax!=null)
 | 
			
		||||
    { // set attributes and number
 | 
			
		||||
      bphone.setHomePhone(true);
 | 
			
		||||
      bphone.setWorkPhone(true);
 | 
			
		||||
      bphone.setFax(true);
 | 
			
		||||
      bphone.setNumber(fax);
 | 
			
		||||
      bvc.addPhone(bphone.create());
 | 
			
		||||
      bphone.reset();
 | 
			
		||||
      
 | 
			
		||||
    } // end if
 | 
			
		||||
 | 
			
		||||
    // Add mobile number.
 | 
			
		||||
    if (mobile!=null)
 | 
			
		||||
    { // set attributes and number
 | 
			
		||||
      bphone.setCellPhone(true);
 | 
			
		||||
      bphone.setPCSPhone(true);
 | 
			
		||||
      bphone.setNumber(mobile);
 | 
			
		||||
      bvc.addPhone(bphone.create());
 | 
			
		||||
 | 
			
		||||
    } // end if
 | 
			
		||||
 | 
			
		||||
    // Add E-mail address.
 | 
			
		||||
    if (email!=null)
 | 
			
		||||
    { // set attributes and address
 | 
			
		||||
      BuildVCardEmail bemail = new BuildVCardEmail();
 | 
			
		||||
      bemail.setHomeEmail(true);
 | 
			
		||||
      bemail.setWorkEmail(true);
 | 
			
		||||
      bemail.setInternetEmail(true);
 | 
			
		||||
      bemail.setPreferred(true);
 | 
			
		||||
      bemail.setAddress(email);
 | 
			
		||||
      bvc.addEmailAddress(bemail.create());
 | 
			
		||||
 | 
			
		||||
    } // end if
 | 
			
		||||
 | 
			
		||||
    return bvc;
 | 
			
		||||
 | 
			
		||||
  } // end getVCardBuilder
 | 
			
		||||
 | 
			
		||||
} // end class ContactInfoImpl
 | 
			
		||||
 | 
			
		||||
@ -9,9 +9,9 @@
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
 * Copyright (C) 2001-02 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 2001-2004 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * 
 | 
			
		||||
 * Contributor(s): 
 | 
			
		||||
 */
 | 
			
		||||
@ -1802,7 +1802,7 @@ class UserContextImpl implements UserContext, ServiceProvider, PropertyProvider
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  static final ReturnNewUser createAccount(EnvEngine env, String remote_addr, String username, String password,
 | 
			
		||||
					   String reminder, boolean verify_email, boolean lockout,
 | 
			
		||||
					   boolean prehashed, String reminder, boolean verify_email, boolean lockout,
 | 
			
		||||
					   int confirm_num, Role base_role, String description)
 | 
			
		||||
      throws AccessError, DataException
 | 
			
		||||
  {
 | 
			
		||||
@ -1833,7 +1833,7 @@ class UserContextImpl implements UserContext, ServiceProvider, PropertyProvider
 | 
			
		||||
	SQLUtil.shutdown(rs);
 | 
			
		||||
 | 
			
		||||
	// Insert a new record for this user 
 | 
			
		||||
	String hash_value = Generator.hashPassword(password);
 | 
			
		||||
	String hash_value = (prehashed ? password : Generator.hashPassword(password));
 | 
			
		||||
	StringBuffer sql =
 | 
			
		||||
	  new StringBuffer("INSERT INTO users (username, passhash, verify_email, lockout, email_confnum, "
 | 
			
		||||
			   + "base_lvl, created, lastaccess, passreminder, description) VALUES ('");
 | 
			
		||||
 | 
			
		||||
@ -9,9 +9,9 @@
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
 * Copyright (C) 2001-02 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 2001-2004 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * 
 | 
			
		||||
 * Contributor(s): 
 | 
			
		||||
 */
 | 
			
		||||
@ -25,7 +25,7 @@ import com.silverwrist.venice.core.*;
 | 
			
		||||
import com.silverwrist.venice.core.internals.*;
 | 
			
		||||
import com.silverwrist.venice.db.*;
 | 
			
		||||
import com.silverwrist.venice.except.*;
 | 
			
		||||
import com.silverwrist.venice.util.MailSend;
 | 
			
		||||
import com.silverwrist.venice.util.*;
 | 
			
		||||
 | 
			
		||||
class UserProfileImpl implements UserProfile
 | 
			
		||||
{
 | 
			
		||||
@ -435,6 +435,95 @@ class UserProfileImpl implements UserProfile
 | 
			
		||||
 | 
			
		||||
  } // end isAnonymous
 | 
			
		||||
 | 
			
		||||
  public VCard getVCard()
 | 
			
		||||
  {
 | 
			
		||||
    BuildVCard bvc = new BuildVCard();
 | 
			
		||||
    bvc.setFamilyName(family_name);
 | 
			
		||||
    bvc.setGivenName(given_name);
 | 
			
		||||
    bvc.setMiddleName(new String(new char[] { middle_initial }));
 | 
			
		||||
    bvc.setPrefix(prefix);
 | 
			
		||||
    bvc.setSuffix(suffix);
 | 
			
		||||
    bvc.setNickname(username);
 | 
			
		||||
    bvc.setOrganizationName(company);
 | 
			
		||||
    bvc.setNote(descr);
 | 
			
		||||
    bvc.setURL(url);
 | 
			
		||||
 | 
			
		||||
    // add the address to the VCard
 | 
			
		||||
    BuildVCardAddress baddr = new BuildVCardAddress();
 | 
			
		||||
    baddr.setHomeAddress(true);
 | 
			
		||||
    baddr.setWorkAddress(true);
 | 
			
		||||
    baddr.setPreferred(true);
 | 
			
		||||
    if (addr1!=null)
 | 
			
		||||
    { // save off address
 | 
			
		||||
      if (addr2!=null)
 | 
			
		||||
      { // set extension, then street
 | 
			
		||||
	baddr.setExtension(addr1);
 | 
			
		||||
	baddr.setStreet(addr2);
 | 
			
		||||
 | 
			
		||||
      } // end if
 | 
			
		||||
      else // set the street address
 | 
			
		||||
	baddr.setStreet(addr1);
 | 
			
		||||
 | 
			
		||||
    } // end if
 | 
			
		||||
 | 
			
		||||
    baddr.setLocality(locality);
 | 
			
		||||
    baddr.setRegion(region);
 | 
			
		||||
    baddr.setPostalCode(postal_code);
 | 
			
		||||
    baddr.setCountry(country);
 | 
			
		||||
    bvc.addAddress(baddr.create());
 | 
			
		||||
 | 
			
		||||
    // Add phone number.
 | 
			
		||||
    BuildVCardPhone bphone = new BuildVCardPhone();
 | 
			
		||||
    if (phone!=null)
 | 
			
		||||
    { // set attributes and number
 | 
			
		||||
      bphone.setHomePhone(true);
 | 
			
		||||
      bphone.setWorkPhone(true);
 | 
			
		||||
      bphone.setVoicePhone(true);
 | 
			
		||||
      bphone.setNumber(phone);
 | 
			
		||||
      bvc.addPhone(bphone.create());
 | 
			
		||||
      bphone.reset();
 | 
			
		||||
 | 
			
		||||
    } // end if
 | 
			
		||||
 | 
			
		||||
    // Add fax number.
 | 
			
		||||
    if (fax!=null)
 | 
			
		||||
    { // set attributes and number
 | 
			
		||||
      bphone.setHomePhone(true);
 | 
			
		||||
      bphone.setWorkPhone(true);
 | 
			
		||||
      bphone.setFax(true);
 | 
			
		||||
      bphone.setNumber(fax);
 | 
			
		||||
      bvc.addPhone(bphone.create());
 | 
			
		||||
      bphone.reset();
 | 
			
		||||
      
 | 
			
		||||
    } // end if
 | 
			
		||||
 | 
			
		||||
    // Add mobile number.
 | 
			
		||||
    if (mobile!=null)
 | 
			
		||||
    { // set attributes and number
 | 
			
		||||
      bphone.setCellPhone(true);
 | 
			
		||||
      bphone.setPCSPhone(true);
 | 
			
		||||
      bphone.setNumber(mobile);
 | 
			
		||||
      bvc.addPhone(bphone.create());
 | 
			
		||||
 | 
			
		||||
    } // end if
 | 
			
		||||
 | 
			
		||||
    // Add E-mail address.
 | 
			
		||||
    if (email!=null)
 | 
			
		||||
    { // set attributes and address
 | 
			
		||||
      BuildVCardEmail bemail = new BuildVCardEmail();
 | 
			
		||||
      bemail.setHomeEmail(true);
 | 
			
		||||
      bemail.setWorkEmail(true);
 | 
			
		||||
      bemail.setInternetEmail(true);
 | 
			
		||||
      bemail.setPreferred(true);
 | 
			
		||||
      bemail.setAddress(email);
 | 
			
		||||
      bvc.addEmailAddress(bemail.create());
 | 
			
		||||
 | 
			
		||||
    } // end if
 | 
			
		||||
 | 
			
		||||
    return bvc.create();
 | 
			
		||||
 | 
			
		||||
  } // end getVCard
 | 
			
		||||
 | 
			
		||||
  public boolean canSendQuickEmail()
 | 
			
		||||
  {
 | 
			
		||||
    return !is_anon && !(env.isAnonymous());
 | 
			
		||||
 | 
			
		||||
@ -871,7 +871,7 @@ public class VeniceEngineImpl implements VeniceEngine, ServiceProvider, EngineBa
 | 
			
		||||
      logger.debug("createNewAccount(\"" + username + "\",<password>,<reminder>)...");
 | 
			
		||||
 | 
			
		||||
    // Create the user account.
 | 
			
		||||
    ReturnNewUser rnu = UserContextImpl.createAccount(env,remote_addr,username,password,reminder,false,
 | 
			
		||||
    ReturnNewUser rnu = UserContextImpl.createAccount(env,remote_addr,username,password,false,reminder,false,
 | 
			
		||||
						      false,confirm_num,new_role,null);
 | 
			
		||||
 | 
			
		||||
    // create a new context for the user (they're now effectively logged in)
 | 
			
		||||
 | 
			
		||||
@ -9,9 +9,9 @@
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
 * Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 2001-2004 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * 
 | 
			
		||||
 * Contributor(s): 
 | 
			
		||||
 */
 | 
			
		||||
@ -89,10 +89,11 @@ public class ImportHelper
 | 
			
		||||
	DOMElementHelper h = new DOMElementHelper((Element)n);
 | 
			
		||||
	String id = h.getElement().getAttribute("id");
 | 
			
		||||
	String username = null, password = null, reminder = null, description = null;
 | 
			
		||||
	String zonehint = null;
 | 
			
		||||
	String zonehint = null, locale = "en_US";
 | 
			
		||||
	Role r = default_role;
 | 
			
		||||
	boolean confirm = false, locked = false, hideaddr = false, hidephone = false, hidefax = false;
 | 
			
		||||
	boolean hideemail = false, autojoin = true;
 | 
			
		||||
	boolean hideemail = false, autojoin = true, prehashed = false, post_pics = false, opt_out = false;
 | 
			
		||||
	boolean no_photo = false;
 | 
			
		||||
	VCard vcard = null;
 | 
			
		||||
	ArrayList join_list = null;
 | 
			
		||||
 | 
			
		||||
@ -105,10 +106,15 @@ public class ImportHelper
 | 
			
		||||
	  username = username.trim();
 | 
			
		||||
	  if (!(IDUtils.isValidVeniceID(username)))
 | 
			
		||||
	    throw new ValidationException("<username/> \"" + username + "\" is not a valid Venice ID");
 | 
			
		||||
	  password = h.getSubElementText("password");
 | 
			
		||||
	  Element pelt = h.getSubElement("password");
 | 
			
		||||
	  if (pelt==null)
 | 
			
		||||
	    throw new ValidationException("no <password/> element found");
 | 
			
		||||
	  DOMElementHelper hh = new DOMElementHelper(pelt);
 | 
			
		||||
	  password = hh.getElementText();
 | 
			
		||||
	  if (password==null)
 | 
			
		||||
	    throw new ValidationException("no <password/> element found");
 | 
			
		||||
	  password = password.trim();
 | 
			
		||||
	  prehashed = loader.loadGetAttributeBoolean(pelt,"prehashed",prehashed);
 | 
			
		||||
	  reminder = h.getSubElementText("password-reminder");
 | 
			
		||||
	  if (reminder!=null)
 | 
			
		||||
	    reminder = reminder.trim();
 | 
			
		||||
@ -134,6 +140,11 @@ public class ImportHelper
 | 
			
		||||
	    hidefax = loader.loadGetAttributeBoolean(opts,"hidefax",hidefax);
 | 
			
		||||
	    hideemail = loader.loadGetAttributeBoolean(opts,"hideemail",hideemail);
 | 
			
		||||
	    autojoin = loader.loadGetAttributeBoolean(opts,"autojoin",autojoin);
 | 
			
		||||
	    post_pics = loader.loadGetAttributeBoolean(opts,"postpictures",post_pics);
 | 
			
		||||
	    opt_out = loader.loadGetAttributeBoolean(opts,"optout",opt_out);
 | 
			
		||||
	    no_photo = loader.loadGetAttributeBoolean(opts,"nophoto",no_photo);
 | 
			
		||||
	    if (hopts.hasAttribute("locale"))
 | 
			
		||||
	      locale = opts.getAttribute("locale").trim();
 | 
			
		||||
	    if (hopts.hasAttribute("zonehint"))
 | 
			
		||||
	      zonehint = opts.getAttribute("zonehint").trim();
 | 
			
		||||
 | 
			
		||||
@ -229,7 +240,7 @@ public class ImportHelper
 | 
			
		||||
	// EXECUTE PHASE - make this user go!
 | 
			
		||||
	try
 | 
			
		||||
	{ // create the user context
 | 
			
		||||
	  AdminUserContext uc = adm.createNewAccount(username,password,reminder,confirm,locked,r,
 | 
			
		||||
	  AdminUserContext uc = adm.createNewAccount(username,password,prehashed,reminder,confirm,locked,r,
 | 
			
		||||
						     description,autojoin);
 | 
			
		||||
 | 
			
		||||
	  // set up the contact info
 | 
			
		||||
@ -241,6 +252,11 @@ public class ImportHelper
 | 
			
		||||
	  ci.importVCard(vcard);
 | 
			
		||||
	  uc.putContactInfo(ci);
 | 
			
		||||
 | 
			
		||||
	  // set up the locale
 | 
			
		||||
	  Locale l = International.get().createLocale(locale);
 | 
			
		||||
	  if (l!=null)
 | 
			
		||||
	    uc.setLocale(l);
 | 
			
		||||
 | 
			
		||||
	  // set up the timezone
 | 
			
		||||
	  String tmp = vcard.getTimeZone();
 | 
			
		||||
	  if (tmp!=null)
 | 
			
		||||
@ -268,6 +284,13 @@ public class ImportHelper
 | 
			
		||||
 | 
			
		||||
	  } // end if
 | 
			
		||||
 | 
			
		||||
	  // set the user properties
 | 
			
		||||
	  AdminUserProperties props = uc.getProperties();
 | 
			
		||||
	  props.setDisplayPostPictures(post_pics);
 | 
			
		||||
	  props.setMassMailOptOut(opt_out);
 | 
			
		||||
	  props.setDisallowPhoto(no_photo);
 | 
			
		||||
	  uc.setProperties(props);
 | 
			
		||||
 | 
			
		||||
	  if (join_list!=null)
 | 
			
		||||
	  { // set up the community membership
 | 
			
		||||
	    for (int j=0; j<join_list.size(); j+=2)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										102
									
								
								src/com/silverwrist/venice/ui/helpers/UserExportHelper.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								src/com/silverwrist/venice/ui/helpers/UserExportHelper.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,102 @@
 | 
			
		||||
/*
 | 
			
		||||
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 | 
			
		||||
 * (the "License"); you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
 | 
			
		||||
 * 
 | 
			
		||||
 * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
 | 
			
		||||
 * WARRANTY OF ANY KIND, either express or implied. See the License for the specific
 | 
			
		||||
 * language governing rights and limitations under the License.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
 * Copyright (C) 2004 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * 
 | 
			
		||||
 * Contributor(s): 
 | 
			
		||||
 */
 | 
			
		||||
package com.silverwrist.venice.ui.helpers;
 | 
			
		||||
 | 
			
		||||
import java.io.*;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import com.silverwrist.venice.core.*;
 | 
			
		||||
import com.silverwrist.venice.except.DataException;
 | 
			
		||||
import com.silverwrist.venice.except.InternalStateError;
 | 
			
		||||
import com.silverwrist.venice.ui.ContentExecute;
 | 
			
		||||
import com.silverwrist.venice.ui.RequestExec;
 | 
			
		||||
 | 
			
		||||
public class UserExportHelper implements ContentExecute
 | 
			
		||||
{
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Attributes
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  private int m_length;
 | 
			
		||||
  private InputStream m_stm;
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Constructor
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  public UserExportHelper(AdminOperations adm, Collection userdata) throws DataException, IOException
 | 
			
		||||
  {
 | 
			
		||||
    // Start by normalizing the user data.
 | 
			
		||||
    ArrayList tmp = new ArrayList(userdata.size());
 | 
			
		||||
    Iterator it;
 | 
			
		||||
    for (it=userdata.iterator(); it.hasNext(); )
 | 
			
		||||
    { // morph all the objects...
 | 
			
		||||
      Object o = it.next();
 | 
			
		||||
      if (o==null)
 | 
			
		||||
	continue;
 | 
			
		||||
      if (o instanceof AdminUserContext)
 | 
			
		||||
	tmp.add((AdminUserContext)o);
 | 
			
		||||
      else if (o instanceof UserContext)
 | 
			
		||||
	tmp.add(adm.getUserContext(((UserContext)o).getUID()));
 | 
			
		||||
      else if (o instanceof UserProfile)
 | 
			
		||||
	tmp.add(adm.getUserContext(((UserProfile)o).getUID()));
 | 
			
		||||
      else if (o instanceof Number)
 | 
			
		||||
	tmp.add(adm.getUserContext(((Number)o).intValue()));
 | 
			
		||||
      else
 | 
			
		||||
	tmp.add(adm.getUserContext(o.toString()));
 | 
			
		||||
 | 
			
		||||
    } // end for
 | 
			
		||||
 | 
			
		||||
    StringWriter wr = new StringWriter();
 | 
			
		||||
    wr.write("<?xml version=\"1.0\"?>\n<venice-import-users>\n");
 | 
			
		||||
    for (it=tmp.iterator(); it.hasNext(); )
 | 
			
		||||
    { // get each user and export it
 | 
			
		||||
      AdminUserContext uc = (AdminUserContext)(it.next());
 | 
			
		||||
      uc.export(wr);
 | 
			
		||||
 | 
			
		||||
    } // end for
 | 
			
		||||
 | 
			
		||||
    wr.write("</venice-import-users>\n");
 | 
			
		||||
    try
 | 
			
		||||
    { // convert the output so it acts like an attachment
 | 
			
		||||
      byte[] ary = wr.toString().getBytes("UTF-8");
 | 
			
		||||
      m_length = ary.length;
 | 
			
		||||
      m_stm = new ByteArrayInputStream(ary);
 | 
			
		||||
 | 
			
		||||
    } // end try
 | 
			
		||||
    catch (UnsupportedEncodingException e)
 | 
			
		||||
    { // this is not supposed to happen
 | 
			
		||||
      throw new InternalStateError("encoding not found?!?!?!?");
 | 
			
		||||
 | 
			
		||||
    } // end catch
 | 
			
		||||
 | 
			
		||||
  } // end constructor
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Implementations from interface ContentExecute
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  public void execute(RequestExec req) throws IOException
 | 
			
		||||
  {
 | 
			
		||||
    req.sendBinary("text/xml","export-data.xml",m_length,m_stm);
 | 
			
		||||
 | 
			
		||||
  } // end execute
 | 
			
		||||
 | 
			
		||||
} // end class UserExportHelper
 | 
			
		||||
							
								
								
									
										429
									
								
								src/com/silverwrist/venice/util/BuildVCard.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										429
									
								
								src/com/silverwrist/venice/util/BuildVCard.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,429 @@
 | 
			
		||||
/*
 | 
			
		||||
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 | 
			
		||||
 * (the "License"); you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
 | 
			
		||||
 * 
 | 
			
		||||
 * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
 | 
			
		||||
 * WARRANTY OF ANY KIND, either express or implied. See the License for the specific
 | 
			
		||||
 * language governing rights and limitations under the License.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
 * Copyright (C) 2004 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * 
 | 
			
		||||
 * Contributor(s): 
 | 
			
		||||
 */
 | 
			
		||||
package com.silverwrist.venice.util;
 | 
			
		||||
 | 
			
		||||
import java.util.*;
 | 
			
		||||
 | 
			
		||||
public class BuildVCard
 | 
			
		||||
{
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Attributes
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  private String formatted_name = null;
 | 
			
		||||
  private String family_name = null;
 | 
			
		||||
  private String given_name = null;
 | 
			
		||||
  private String middle_name = null;
 | 
			
		||||
  private String prefix = null;
 | 
			
		||||
  private String suffix = null;
 | 
			
		||||
  private String nickname = null;
 | 
			
		||||
  private HashSet addresses = new HashSet();
 | 
			
		||||
  private HashSet phones = new HashSet();
 | 
			
		||||
  private HashSet email_addresses = new HashSet();
 | 
			
		||||
  private String mailer = null;
 | 
			
		||||
  private String timezone = null;
 | 
			
		||||
  private String title = null;
 | 
			
		||||
  private String role = null;
 | 
			
		||||
  private String orgname = null;
 | 
			
		||||
  private String note = null;
 | 
			
		||||
  private String sort_string = null;
 | 
			
		||||
  private String url = null;
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Constructor
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  public BuildVCard()
 | 
			
		||||
  { // do nothing
 | 
			
		||||
  } // end constructor
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Internal operations
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  private final String realFormattedName()
 | 
			
		||||
  {
 | 
			
		||||
    if (formatted_name!=null)
 | 
			
		||||
      return formatted_name;
 | 
			
		||||
    StringBuffer buf = new StringBuffer();
 | 
			
		||||
    if (prefix!=null)
 | 
			
		||||
      buf.append(prefix).append(' ');
 | 
			
		||||
    if (given_name!=null)
 | 
			
		||||
      buf.append(given_name);
 | 
			
		||||
    if ((middle_name!=null) || (family_name!=null))
 | 
			
		||||
      buf.append(' ');
 | 
			
		||||
    if (middle_name!=null)
 | 
			
		||||
    { // figure out the middle name
 | 
			
		||||
      buf.append(middle_name);
 | 
			
		||||
      if (middle_name.length()==1)
 | 
			
		||||
	buf.append('.');
 | 
			
		||||
      if (family_name!=null)
 | 
			
		||||
	buf.append(' ');
 | 
			
		||||
 | 
			
		||||
    } // end if
 | 
			
		||||
 | 
			
		||||
    if (family_name!=null)
 | 
			
		||||
      buf.append(family_name);
 | 
			
		||||
    if (suffix!=null)
 | 
			
		||||
      buf.append(' ').append(suffix);
 | 
			
		||||
    String s = buf.toString();
 | 
			
		||||
    if (s.length()==0)
 | 
			
		||||
      return null;
 | 
			
		||||
    return s;
 | 
			
		||||
 | 
			
		||||
  } // end realFormattedName
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Public getters/setters
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  public final String getFormattedName()
 | 
			
		||||
  {
 | 
			
		||||
    return formatted_name;
 | 
			
		||||
 | 
			
		||||
  } // end getFormattedName
 | 
			
		||||
 | 
			
		||||
  public final void setFormattedName(String s)
 | 
			
		||||
  {
 | 
			
		||||
    formatted_name = s;
 | 
			
		||||
 | 
			
		||||
  } // end setFormattedName
 | 
			
		||||
 | 
			
		||||
  public final String getFamilyName()
 | 
			
		||||
  {
 | 
			
		||||
    return family_name;
 | 
			
		||||
 | 
			
		||||
  } // end getFamilyName
 | 
			
		||||
 | 
			
		||||
  public final void setFamilyName(String s)
 | 
			
		||||
  {
 | 
			
		||||
    family_name = s;
 | 
			
		||||
 | 
			
		||||
  } // end setFamilyName
 | 
			
		||||
 | 
			
		||||
  public final String getGivenName()
 | 
			
		||||
  {
 | 
			
		||||
    return given_name;
 | 
			
		||||
 | 
			
		||||
  } // end getGivenName
 | 
			
		||||
 | 
			
		||||
  public final void setGivenName(String s)
 | 
			
		||||
  {
 | 
			
		||||
    given_name = s;
 | 
			
		||||
 | 
			
		||||
  } // end setGivenName
 | 
			
		||||
 | 
			
		||||
  public final String getMiddleName()
 | 
			
		||||
  {
 | 
			
		||||
    return middle_name;
 | 
			
		||||
 | 
			
		||||
  } // end getMiddleName
 | 
			
		||||
 | 
			
		||||
  public final void setMiddleName(String s)
 | 
			
		||||
  {
 | 
			
		||||
    middle_name = s;
 | 
			
		||||
 | 
			
		||||
  } // end setMiddleName
 | 
			
		||||
 | 
			
		||||
  public final String getPrefix()
 | 
			
		||||
  {
 | 
			
		||||
    return prefix;
 | 
			
		||||
 | 
			
		||||
  } // end getPrefix
 | 
			
		||||
 | 
			
		||||
  public final void setPrefix(String s)
 | 
			
		||||
  {
 | 
			
		||||
    prefix = s;
 | 
			
		||||
 | 
			
		||||
  } // end setPrefix
 | 
			
		||||
 | 
			
		||||
  public final String getSuffix()
 | 
			
		||||
  {
 | 
			
		||||
    return suffix;
 | 
			
		||||
 | 
			
		||||
  } // end getSuffix
 | 
			
		||||
 | 
			
		||||
  public final void setSuffix(String s)
 | 
			
		||||
  {
 | 
			
		||||
    suffix = s;
 | 
			
		||||
 | 
			
		||||
  } // end setSuffix
 | 
			
		||||
 | 
			
		||||
  public final String getNickname()
 | 
			
		||||
  {
 | 
			
		||||
    return nickname;
 | 
			
		||||
 | 
			
		||||
  } // end getNickname
 | 
			
		||||
 | 
			
		||||
  public final void setNickname(String s)
 | 
			
		||||
  {
 | 
			
		||||
    nickname = s;
 | 
			
		||||
 | 
			
		||||
  } // end setNickname
 | 
			
		||||
 | 
			
		||||
  public final String getMailer()
 | 
			
		||||
  {
 | 
			
		||||
    return mailer;
 | 
			
		||||
 | 
			
		||||
  } // end getMailer
 | 
			
		||||
 | 
			
		||||
  public final void setMailer(String s)
 | 
			
		||||
  {
 | 
			
		||||
    mailer = s;
 | 
			
		||||
 | 
			
		||||
  } // end setMailer
 | 
			
		||||
 | 
			
		||||
  public final String getTimeZone()
 | 
			
		||||
  {
 | 
			
		||||
    return timezone;
 | 
			
		||||
 | 
			
		||||
  } // end getTimeZone
 | 
			
		||||
 | 
			
		||||
  public final void setTimeZone(String s)
 | 
			
		||||
  {
 | 
			
		||||
    if ((s!=null) && !VCard.validateTZText(s))
 | 
			
		||||
      throw new IllegalArgumentException("not a valid timezone string");
 | 
			
		||||
    timezone = s;
 | 
			
		||||
 | 
			
		||||
  } // end setTimeZone
 | 
			
		||||
 | 
			
		||||
  public final void setTimeZone(TimeZone tz)
 | 
			
		||||
  {
 | 
			
		||||
    int ofs = tz.getRawOffset();
 | 
			
		||||
    StringBuffer buf = new StringBuffer();
 | 
			
		||||
    if (ofs<0)
 | 
			
		||||
    { // negative offset
 | 
			
		||||
      buf.append('-');
 | 
			
		||||
      ofs = -ofs;
 | 
			
		||||
 | 
			
		||||
    } // end if
 | 
			
		||||
    else // positive offset
 | 
			
		||||
      buf.append('+');
 | 
			
		||||
 | 
			
		||||
    ofs /= 60000; // convert to minutes
 | 
			
		||||
    int hrs = ofs / 60;  // get hours
 | 
			
		||||
    if (hrs>=10)
 | 
			
		||||
      buf.append(hrs);
 | 
			
		||||
    else
 | 
			
		||||
      buf.append('0').append(hrs);
 | 
			
		||||
    buf.append(':');
 | 
			
		||||
    ofs -= (hrs * 60);  // get minutes
 | 
			
		||||
    if (ofs>=10)
 | 
			
		||||
      buf.append(ofs);
 | 
			
		||||
    else
 | 
			
		||||
      buf.append('0').append(ofs);
 | 
			
		||||
    timezone = buf.toString();
 | 
			
		||||
 | 
			
		||||
  } // end setTimeZone
 | 
			
		||||
 | 
			
		||||
  public final String getTitle()
 | 
			
		||||
  {
 | 
			
		||||
    return title;
 | 
			
		||||
 | 
			
		||||
  } // end getTitle
 | 
			
		||||
 | 
			
		||||
  public final void setTitle(String s)
 | 
			
		||||
  {
 | 
			
		||||
    title = s;
 | 
			
		||||
 | 
			
		||||
  } // end setTitle
 | 
			
		||||
 | 
			
		||||
  public final String getRole()
 | 
			
		||||
  {
 | 
			
		||||
    return role;
 | 
			
		||||
 | 
			
		||||
  } // end getRole
 | 
			
		||||
 | 
			
		||||
  public final void setRole(String s)
 | 
			
		||||
  {
 | 
			
		||||
    role = s;
 | 
			
		||||
 | 
			
		||||
  } // end setRole
 | 
			
		||||
 | 
			
		||||
  public final String getOrganizationName()
 | 
			
		||||
  {
 | 
			
		||||
    return orgname;
 | 
			
		||||
 | 
			
		||||
  } // end getOrganizationName
 | 
			
		||||
 | 
			
		||||
  public final void setOrganizationName(String s)
 | 
			
		||||
  {
 | 
			
		||||
    orgname = s;
 | 
			
		||||
 | 
			
		||||
  } // end setOrganizationName
 | 
			
		||||
 | 
			
		||||
  public final String getNote()
 | 
			
		||||
  {
 | 
			
		||||
    return note;
 | 
			
		||||
 | 
			
		||||
  } // end getNode
 | 
			
		||||
 | 
			
		||||
  public final void setNote(String s)
 | 
			
		||||
  {
 | 
			
		||||
    note = s;
 | 
			
		||||
 | 
			
		||||
  } // end setNote
 | 
			
		||||
 | 
			
		||||
  public final String getSortString()
 | 
			
		||||
  {
 | 
			
		||||
    return sort_string;
 | 
			
		||||
 | 
			
		||||
  } // end getSortString
 | 
			
		||||
 | 
			
		||||
  public final void setSortString(String s)
 | 
			
		||||
  {
 | 
			
		||||
    sort_string = s;
 | 
			
		||||
 | 
			
		||||
  } // end sort_string
 | 
			
		||||
 | 
			
		||||
  public final String getURL()
 | 
			
		||||
  {
 | 
			
		||||
    return url;
 | 
			
		||||
 | 
			
		||||
  } // end getURL
 | 
			
		||||
 | 
			
		||||
  public final void setURL(String s)
 | 
			
		||||
  {
 | 
			
		||||
    url = s;
 | 
			
		||||
 | 
			
		||||
  } // end setURL
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * External operations
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  public void reset()
 | 
			
		||||
  {
 | 
			
		||||
    formatted_name = null;
 | 
			
		||||
    family_name = null;
 | 
			
		||||
    given_name = null;
 | 
			
		||||
    middle_name = null;
 | 
			
		||||
    prefix = null;
 | 
			
		||||
    suffix = null;
 | 
			
		||||
    nickname = null;
 | 
			
		||||
    addresses.clear();
 | 
			
		||||
    phones.clear();
 | 
			
		||||
    email_addresses.clear();
 | 
			
		||||
    mailer = null;
 | 
			
		||||
    timezone = null;
 | 
			
		||||
    title = null;
 | 
			
		||||
    role = null;
 | 
			
		||||
    orgname = null;
 | 
			
		||||
    note = null;
 | 
			
		||||
    sort_string = null;
 | 
			
		||||
    url = null;
 | 
			
		||||
 | 
			
		||||
  } // end reset
 | 
			
		||||
 | 
			
		||||
  public VCard create()
 | 
			
		||||
  {
 | 
			
		||||
    return new VCard(realFormattedName(),family_name,given_name,middle_name,prefix,suffix,nickname,addresses,phones,
 | 
			
		||||
		     email_addresses,mailer,timezone,title,role,orgname,note,sort_string,url);
 | 
			
		||||
 | 
			
		||||
  } // end create
 | 
			
		||||
 | 
			
		||||
  public final List getAddresses()
 | 
			
		||||
  {
 | 
			
		||||
    if (addresses.isEmpty())
 | 
			
		||||
      return Collections.EMPTY_LIST;
 | 
			
		||||
    ArrayList rc = new ArrayList(addresses);
 | 
			
		||||
    rc.trimToSize();
 | 
			
		||||
    return Collections.unmodifiableList(rc);
 | 
			
		||||
 | 
			
		||||
  } // end getAddresses
 | 
			
		||||
 | 
			
		||||
  public final List getPhones()
 | 
			
		||||
  {
 | 
			
		||||
    if (phones.isEmpty())
 | 
			
		||||
      return Collections.EMPTY_LIST;
 | 
			
		||||
    ArrayList rc = new ArrayList(phones);
 | 
			
		||||
    rc.trimToSize();
 | 
			
		||||
    return Collections.unmodifiableList(rc);
 | 
			
		||||
 | 
			
		||||
  } // end getPhones
 | 
			
		||||
 | 
			
		||||
  public final List getEmailAddresses()
 | 
			
		||||
  {
 | 
			
		||||
    if (email_addresses.isEmpty())
 | 
			
		||||
      return Collections.EMPTY_LIST;
 | 
			
		||||
    ArrayList rc = new ArrayList(email_addresses);
 | 
			
		||||
    rc.trimToSize();
 | 
			
		||||
    return Collections.unmodifiableList(rc);
 | 
			
		||||
 | 
			
		||||
  } // end getEmailAddresses
 | 
			
		||||
 | 
			
		||||
  public final void addAddress(VCardAddress addr)
 | 
			
		||||
  {
 | 
			
		||||
    addresses.add(addr);
 | 
			
		||||
 | 
			
		||||
  } // end addAddress
 | 
			
		||||
 | 
			
		||||
  public final void removeAddress(VCardAddress addr)
 | 
			
		||||
  {
 | 
			
		||||
    addresses.remove(addr);
 | 
			
		||||
 | 
			
		||||
  } // end removeAddress
 | 
			
		||||
 | 
			
		||||
  public final void removeAllAddresses()
 | 
			
		||||
  {
 | 
			
		||||
    addresses.clear();
 | 
			
		||||
 | 
			
		||||
  } // end removeAllAddresses
 | 
			
		||||
 | 
			
		||||
  public final void addPhone(VCardPhone phone)
 | 
			
		||||
  {
 | 
			
		||||
    phones.add(phone);
 | 
			
		||||
 | 
			
		||||
  } // end addPhone
 | 
			
		||||
 | 
			
		||||
  public final void removePhone(VCardPhone phone)
 | 
			
		||||
  {
 | 
			
		||||
    phones.remove(phone);
 | 
			
		||||
 | 
			
		||||
  } // end removePhone
 | 
			
		||||
 | 
			
		||||
  public final void removeAllPhones()
 | 
			
		||||
  {
 | 
			
		||||
    phones.clear();
 | 
			
		||||
 | 
			
		||||
  } // end removeAllPhones
 | 
			
		||||
 | 
			
		||||
  public final void addEmailAddress(VCardEmail email)
 | 
			
		||||
  {
 | 
			
		||||
    email_addresses.add(email);
 | 
			
		||||
 | 
			
		||||
  } // end addEmailAddress
 | 
			
		||||
 | 
			
		||||
  public final void removeEmailAddress(VCardEmail email)
 | 
			
		||||
  {
 | 
			
		||||
    email_addresses.remove(email);
 | 
			
		||||
 | 
			
		||||
  } // end removeEmailAddress
 | 
			
		||||
 | 
			
		||||
  public final void removeAllEmailAddresses()
 | 
			
		||||
  {
 | 
			
		||||
    email_addresses.clear();
 | 
			
		||||
 | 
			
		||||
  } // end removeAllEmailAddresses
 | 
			
		||||
 | 
			
		||||
} // end class BuildVCard
 | 
			
		||||
							
								
								
									
										259
									
								
								src/com/silverwrist/venice/util/BuildVCardAddress.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										259
									
								
								src/com/silverwrist/venice/util/BuildVCardAddress.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,259 @@
 | 
			
		||||
/*
 | 
			
		||||
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 | 
			
		||||
 * (the "License"); you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
 | 
			
		||||
 * 
 | 
			
		||||
 * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
 | 
			
		||||
 * WARRANTY OF ANY KIND, either express or implied. See the License for the specific
 | 
			
		||||
 * language governing rights and limitations under the License.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
 * Copyright (C) 2004 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * 
 | 
			
		||||
 * Contributor(s): 
 | 
			
		||||
 */
 | 
			
		||||
package com.silverwrist.venice.util;
 | 
			
		||||
 | 
			
		||||
public class BuildVCardAddress
 | 
			
		||||
{
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Attributes
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  private boolean home_adr = false;
 | 
			
		||||
  private boolean work_adr = false;
 | 
			
		||||
  private boolean postal_adr = false;
 | 
			
		||||
  private boolean parcel_adr = false;
 | 
			
		||||
  private boolean domestic_adr = false;
 | 
			
		||||
  private boolean intl_adr = false;
 | 
			
		||||
  private boolean preferred = false;
 | 
			
		||||
  private String pobox = null;
 | 
			
		||||
  private String ext_address = null;
 | 
			
		||||
  private String street = null;
 | 
			
		||||
  private String locality = null;
 | 
			
		||||
  private String region = null;
 | 
			
		||||
  private String postal_code = null;
 | 
			
		||||
  private String country = null;
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Constructor
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  public BuildVCardAddress()
 | 
			
		||||
  { // do nothing
 | 
			
		||||
  } // end constructor
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Public getters/setters
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  public final boolean isHomeAddress()
 | 
			
		||||
  {
 | 
			
		||||
    return home_adr;
 | 
			
		||||
 | 
			
		||||
  } // end isHomeAddress
 | 
			
		||||
 | 
			
		||||
  public final void setHomeAddress(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    home_adr = f;
 | 
			
		||||
 | 
			
		||||
  } // end setHomeAddress
 | 
			
		||||
 | 
			
		||||
  public final boolean isWorkAddress()
 | 
			
		||||
  {
 | 
			
		||||
    return work_adr;
 | 
			
		||||
 | 
			
		||||
  } // end isWorkAddress
 | 
			
		||||
 | 
			
		||||
  public final void setWorkAddress(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    work_adr = f;
 | 
			
		||||
 | 
			
		||||
  } // end setWorkAddress
 | 
			
		||||
 | 
			
		||||
  public final boolean isPostalAddress()
 | 
			
		||||
  {
 | 
			
		||||
    return postal_adr;
 | 
			
		||||
 | 
			
		||||
  } // end isPostalAddress
 | 
			
		||||
 | 
			
		||||
  public final void setPostalAddress(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    postal_adr = f;
 | 
			
		||||
 | 
			
		||||
  } // end setPostalAddress
 | 
			
		||||
 | 
			
		||||
  public final boolean isParcelAddress()
 | 
			
		||||
  {
 | 
			
		||||
    return parcel_adr;
 | 
			
		||||
 | 
			
		||||
  } // end isParcelAddress
 | 
			
		||||
 | 
			
		||||
  public final void setParcelAddress(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    parcel_adr = f;
 | 
			
		||||
 | 
			
		||||
  } // end setParcelAddress
 | 
			
		||||
 | 
			
		||||
  public final boolean isDomesticAddress()
 | 
			
		||||
  {
 | 
			
		||||
    return domestic_adr;
 | 
			
		||||
 | 
			
		||||
  } // end isDomesticAddress
 | 
			
		||||
 | 
			
		||||
  public final void setDomesticAddress(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    domestic_adr = f;
 | 
			
		||||
    if (domestic_adr && intl_adr)
 | 
			
		||||
      intl_adr = false;
 | 
			
		||||
 | 
			
		||||
  } // end setDomesticAddress
 | 
			
		||||
 | 
			
		||||
  public final boolean isInternationalAddress()
 | 
			
		||||
  {
 | 
			
		||||
    return intl_adr;
 | 
			
		||||
 | 
			
		||||
  } // end isInternationalAddress
 | 
			
		||||
 | 
			
		||||
  public final void setInternationalAddress(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    intl_adr = f;
 | 
			
		||||
    if (domestic_adr && intl_adr)
 | 
			
		||||
      domestic_adr = false;
 | 
			
		||||
 | 
			
		||||
  } // end setInternationalAddress
 | 
			
		||||
 | 
			
		||||
  public final boolean isPreferred()
 | 
			
		||||
  {
 | 
			
		||||
    return preferred;
 | 
			
		||||
 | 
			
		||||
  } // end isPreferred
 | 
			
		||||
 | 
			
		||||
  public final void setPreferred(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    preferred = f;
 | 
			
		||||
 | 
			
		||||
  } // end setPreferred
 | 
			
		||||
 | 
			
		||||
  public final String getPOBox()
 | 
			
		||||
  {
 | 
			
		||||
    return pobox;
 | 
			
		||||
 | 
			
		||||
  } // end getPOBox
 | 
			
		||||
 | 
			
		||||
  public final void setPOBox(String s)
 | 
			
		||||
  {
 | 
			
		||||
    pobox = s;
 | 
			
		||||
 | 
			
		||||
  } // end setPOBox
 | 
			
		||||
 | 
			
		||||
  public final String getExtension()
 | 
			
		||||
  {
 | 
			
		||||
    return ext_address;
 | 
			
		||||
 | 
			
		||||
  } // end getExtension
 | 
			
		||||
 | 
			
		||||
  public final void setExtension(String s)
 | 
			
		||||
  {
 | 
			
		||||
    ext_address = s;
 | 
			
		||||
 | 
			
		||||
  } // end setExtension
 | 
			
		||||
 | 
			
		||||
  public final String getStreet()
 | 
			
		||||
  {
 | 
			
		||||
    return street;
 | 
			
		||||
 | 
			
		||||
  } // end getStreet
 | 
			
		||||
 | 
			
		||||
  public final void setStreet(String s)
 | 
			
		||||
  {
 | 
			
		||||
    street = s;
 | 
			
		||||
 | 
			
		||||
  } // end setStreet
 | 
			
		||||
 | 
			
		||||
  public final String getLocality()
 | 
			
		||||
  {
 | 
			
		||||
    return locality;
 | 
			
		||||
 | 
			
		||||
  } // end getLocality
 | 
			
		||||
 | 
			
		||||
  public final void setLocality(String s)
 | 
			
		||||
  {
 | 
			
		||||
    locality = s;
 | 
			
		||||
 | 
			
		||||
  } // end setLocality
 | 
			
		||||
 | 
			
		||||
  public final String getRegion()
 | 
			
		||||
  {
 | 
			
		||||
    return region;
 | 
			
		||||
 | 
			
		||||
  } // end getRegion
 | 
			
		||||
 | 
			
		||||
  public final void setRegion(String s)
 | 
			
		||||
  {
 | 
			
		||||
    region = s;
 | 
			
		||||
 | 
			
		||||
  } // end setRegion
 | 
			
		||||
 | 
			
		||||
  public final String getPostalCode()
 | 
			
		||||
  {
 | 
			
		||||
    return postal_code;
 | 
			
		||||
 | 
			
		||||
  } // end getPostalCode
 | 
			
		||||
 | 
			
		||||
  public final void setPostalCode(String s)
 | 
			
		||||
  {
 | 
			
		||||
    postal_code = s;
 | 
			
		||||
 | 
			
		||||
  } // end setPostalCode
 | 
			
		||||
 | 
			
		||||
  public final String getCountry()
 | 
			
		||||
  {
 | 
			
		||||
    return country;
 | 
			
		||||
 | 
			
		||||
  } // end getCountry
 | 
			
		||||
 | 
			
		||||
  public final void setCountry(String s)
 | 
			
		||||
  {
 | 
			
		||||
    country = s;
 | 
			
		||||
 | 
			
		||||
  } // end setCountry
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * External operations
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  public void reset()
 | 
			
		||||
  {
 | 
			
		||||
    home_adr = false;
 | 
			
		||||
    work_adr = false;
 | 
			
		||||
    postal_adr = false;
 | 
			
		||||
    parcel_adr = false;
 | 
			
		||||
    domestic_adr = false;
 | 
			
		||||
    intl_adr = false;
 | 
			
		||||
    preferred = false;
 | 
			
		||||
    pobox = null;
 | 
			
		||||
    ext_address = null;
 | 
			
		||||
    street = null;
 | 
			
		||||
    locality = null;
 | 
			
		||||
    region = null;
 | 
			
		||||
    postal_code = null;
 | 
			
		||||
    country = null;
 | 
			
		||||
 | 
			
		||||
  } // end reset
 | 
			
		||||
 | 
			
		||||
  public VCardAddress create()
 | 
			
		||||
  {
 | 
			
		||||
    return new VCardAddress(home_adr,work_adr,postal_adr,parcel_adr,domestic_adr,intl_adr,preferred,pobox,ext_address,
 | 
			
		||||
			    street,locality,region,postal_code,country);
 | 
			
		||||
 | 
			
		||||
  } // end create
 | 
			
		||||
 | 
			
		||||
} // end class BuildVCardAddress
 | 
			
		||||
							
								
								
									
										142
									
								
								src/com/silverwrist/venice/util/BuildVCardEmail.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								src/com/silverwrist/venice/util/BuildVCardEmail.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,142 @@
 | 
			
		||||
/*
 | 
			
		||||
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 | 
			
		||||
 * (the "License"); you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
 | 
			
		||||
 * 
 | 
			
		||||
 * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
 | 
			
		||||
 * WARRANTY OF ANY KIND, either express or implied. See the License for the specific
 | 
			
		||||
 * language governing rights and limitations under the License.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
 * Copyright (C) 2004 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * 
 | 
			
		||||
 * Contributor(s): 
 | 
			
		||||
 */
 | 
			
		||||
package com.silverwrist.venice.util;
 | 
			
		||||
 | 
			
		||||
public class BuildVCardEmail
 | 
			
		||||
{
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Attributes
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  private boolean home_email = false;
 | 
			
		||||
  private boolean work_email = false;
 | 
			
		||||
  private boolean internet_email = false;
 | 
			
		||||
  private boolean x400_email = false;
 | 
			
		||||
  private boolean preferred = false;
 | 
			
		||||
  private String address = null;
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Constructor
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  public BuildVCardEmail()
 | 
			
		||||
  { // do nothing
 | 
			
		||||
  } // end constructor
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Public getters/setters
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  public final boolean isHomeEmail()
 | 
			
		||||
  {
 | 
			
		||||
    return home_email;
 | 
			
		||||
 | 
			
		||||
  } // end isHomeEmail
 | 
			
		||||
 | 
			
		||||
  public final void setHomeEmail(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    home_email = f;
 | 
			
		||||
 | 
			
		||||
  } // end setHomeEmail
 | 
			
		||||
 | 
			
		||||
  public final boolean isWorkEmail()
 | 
			
		||||
  {
 | 
			
		||||
    return work_email;
 | 
			
		||||
 | 
			
		||||
  } // end isHomeEmail
 | 
			
		||||
 | 
			
		||||
  public final void setWorkEmail(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    work_email = f;
 | 
			
		||||
 | 
			
		||||
  } // end setWorkEmail
 | 
			
		||||
 | 
			
		||||
  public final boolean isInternetEmail()
 | 
			
		||||
  {
 | 
			
		||||
    return internet_email;
 | 
			
		||||
 | 
			
		||||
  } // end isInternetEmail
 | 
			
		||||
 | 
			
		||||
  public final void setInternetEmail(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    internet_email = f;
 | 
			
		||||
 | 
			
		||||
  } // end setInternetEmail
 | 
			
		||||
 | 
			
		||||
  public final boolean isX400Email()
 | 
			
		||||
  {
 | 
			
		||||
    return x400_email;
 | 
			
		||||
 | 
			
		||||
  } // end isX400Email
 | 
			
		||||
 | 
			
		||||
  public final void setX400Email(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    x400_email = f;
 | 
			
		||||
 | 
			
		||||
  } // end setX400Email
 | 
			
		||||
 | 
			
		||||
  public final boolean isPreferred()
 | 
			
		||||
  {
 | 
			
		||||
    return preferred;
 | 
			
		||||
 | 
			
		||||
  } // end isPreferred
 | 
			
		||||
 | 
			
		||||
  public final void setPreferred(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    preferred = f;
 | 
			
		||||
 | 
			
		||||
  } // end setPreferred
 | 
			
		||||
 | 
			
		||||
  public final String getAddress()
 | 
			
		||||
  {
 | 
			
		||||
    return address;
 | 
			
		||||
 | 
			
		||||
  } // end getAddress
 | 
			
		||||
 | 
			
		||||
  public final void setAddress(String s)
 | 
			
		||||
  {
 | 
			
		||||
    address = s;
 | 
			
		||||
 | 
			
		||||
  } // end setAddress
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * External operations
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  public void reset()
 | 
			
		||||
  {
 | 
			
		||||
    home_email = false;
 | 
			
		||||
    work_email = false;
 | 
			
		||||
    internet_email = false;
 | 
			
		||||
    x400_email = false;
 | 
			
		||||
    preferred = false;
 | 
			
		||||
    address = null;
 | 
			
		||||
 | 
			
		||||
  } // end reset
 | 
			
		||||
 | 
			
		||||
  public VCardEmail create()
 | 
			
		||||
  {
 | 
			
		||||
    return new VCardEmail(home_email,work_email,internet_email,x400_email,preferred,address);
 | 
			
		||||
 | 
			
		||||
  } // end create
 | 
			
		||||
 | 
			
		||||
} // end class BuildVCardEmail
 | 
			
		||||
							
								
								
									
										255
									
								
								src/com/silverwrist/venice/util/BuildVCardPhone.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										255
									
								
								src/com/silverwrist/venice/util/BuildVCardPhone.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,255 @@
 | 
			
		||||
/*
 | 
			
		||||
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 | 
			
		||||
 * (the "License"); you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
 | 
			
		||||
 * 
 | 
			
		||||
 * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
 | 
			
		||||
 * WARRANTY OF ANY KIND, either express or implied. See the License for the specific
 | 
			
		||||
 * language governing rights and limitations under the License.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
 * Copyright (C) 2004 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * 
 | 
			
		||||
 * Contributor(s): 
 | 
			
		||||
 */
 | 
			
		||||
package com.silverwrist.venice.util;
 | 
			
		||||
 | 
			
		||||
public class BuildVCardPhone
 | 
			
		||||
{
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Attributes
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  private boolean home_phone = false;
 | 
			
		||||
  private boolean work_phone = false;
 | 
			
		||||
  private boolean voice_phone = false;
 | 
			
		||||
  private boolean fax_phone = false;
 | 
			
		||||
  private boolean pager = false;
 | 
			
		||||
  private boolean message = false;
 | 
			
		||||
  private boolean cell_phone = false;
 | 
			
		||||
  private boolean video_phone = false;
 | 
			
		||||
  private boolean bbs_phone = false;
 | 
			
		||||
  private boolean modem_phone = false;
 | 
			
		||||
  private boolean isdn_phone = false;
 | 
			
		||||
  private boolean pcs_phone = false;
 | 
			
		||||
  private boolean preferred = false;
 | 
			
		||||
  private String number = null;
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Constructor
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  public BuildVCardPhone()
 | 
			
		||||
  { // do nothing
 | 
			
		||||
  } // end constructor
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Public getters/setters
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  public final boolean isHomePhone()
 | 
			
		||||
  {
 | 
			
		||||
    return home_phone;
 | 
			
		||||
 | 
			
		||||
  } // end isHomePhone
 | 
			
		||||
 | 
			
		||||
  public final void setHomePhone(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    home_phone = f;
 | 
			
		||||
 | 
			
		||||
  } // end setHomePhone
 | 
			
		||||
 | 
			
		||||
  public final boolean isWorkPhone()
 | 
			
		||||
  {
 | 
			
		||||
    return work_phone;
 | 
			
		||||
 | 
			
		||||
  } // end isWorkPhone
 | 
			
		||||
 | 
			
		||||
  public final void setWorkPhone(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    work_phone = f;
 | 
			
		||||
 | 
			
		||||
  } // end setWorkPhone
 | 
			
		||||
 | 
			
		||||
  public final boolean isVoicePhone()
 | 
			
		||||
  {
 | 
			
		||||
    return voice_phone;
 | 
			
		||||
 | 
			
		||||
  } // end isVoicePhone
 | 
			
		||||
 
 | 
			
		||||
  public final void setVoicePhone(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    voice_phone = f;
 | 
			
		||||
 | 
			
		||||
  } // end setVoicePhone
 | 
			
		||||
 | 
			
		||||
  public final boolean isFax()
 | 
			
		||||
  {
 | 
			
		||||
    return fax_phone;
 | 
			
		||||
 | 
			
		||||
  } // end isFax
 | 
			
		||||
 | 
			
		||||
  public final void setFax(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    fax_phone = f;
 | 
			
		||||
 | 
			
		||||
  } // end setFax
 | 
			
		||||
 | 
			
		||||
  public final boolean isPager()
 | 
			
		||||
  {
 | 
			
		||||
    return pager;
 | 
			
		||||
 | 
			
		||||
  } // end isPager
 | 
			
		||||
 | 
			
		||||
  public final void setPager(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    pager = f;
 | 
			
		||||
 | 
			
		||||
  } // end setPager
 | 
			
		||||
 | 
			
		||||
  public final boolean isMessage()
 | 
			
		||||
  {
 | 
			
		||||
    return message;
 | 
			
		||||
 | 
			
		||||
  } // end isMessage
 | 
			
		||||
 | 
			
		||||
  public final void setMessage(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    message = f;
 | 
			
		||||
 | 
			
		||||
  } // end setMessage
 | 
			
		||||
 | 
			
		||||
  public final boolean isCellPhone()
 | 
			
		||||
  {
 | 
			
		||||
    return cell_phone;
 | 
			
		||||
 | 
			
		||||
  } // end isCellPhone
 | 
			
		||||
 | 
			
		||||
  public final void setCellPhone(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    cell_phone = f;
 | 
			
		||||
 | 
			
		||||
  } // end setCellPhone
 | 
			
		||||
 | 
			
		||||
  public final boolean isVideoPhone()
 | 
			
		||||
  {
 | 
			
		||||
    return video_phone;
 | 
			
		||||
 | 
			
		||||
  } // end isVideoPhone
 | 
			
		||||
 | 
			
		||||
  public final void setVideoPhone(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    video_phone = f;
 | 
			
		||||
 | 
			
		||||
  } // end setVideoPhone
 | 
			
		||||
 | 
			
		||||
  public final boolean isBBS()
 | 
			
		||||
  {
 | 
			
		||||
    return bbs_phone;
 | 
			
		||||
 | 
			
		||||
  } // end isBBS
 | 
			
		||||
 | 
			
		||||
  public final void setBBS(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    bbs_phone = f;
 | 
			
		||||
 | 
			
		||||
  } // end setBBS
 | 
			
		||||
 | 
			
		||||
  public final boolean isModemPhone()
 | 
			
		||||
  {
 | 
			
		||||
    return modem_phone;
 | 
			
		||||
 | 
			
		||||
  } // end isModemPhone
 | 
			
		||||
 | 
			
		||||
  public final void setModemPhone(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    modem_phone = f;
 | 
			
		||||
 | 
			
		||||
  } // end setModemPhone
 | 
			
		||||
 | 
			
		||||
  public final boolean isISDNPhone()
 | 
			
		||||
  {
 | 
			
		||||
    return isdn_phone;
 | 
			
		||||
 | 
			
		||||
  } // end isISDNPhone
 | 
			
		||||
 | 
			
		||||
  public final void setISDNPhone(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    isdn_phone = f;
 | 
			
		||||
 | 
			
		||||
  } // end setISDNPhone
 | 
			
		||||
 | 
			
		||||
  public final boolean isPCSPhone()
 | 
			
		||||
  {
 | 
			
		||||
    return pcs_phone;
 | 
			
		||||
 | 
			
		||||
  } // end isPCSPhone
 | 
			
		||||
 | 
			
		||||
  public final void setPCSPhone(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    pcs_phone = f;
 | 
			
		||||
 | 
			
		||||
  } // end setPCSPhone
 | 
			
		||||
 | 
			
		||||
  public final boolean isPreferred()
 | 
			
		||||
  {
 | 
			
		||||
    return preferred;
 | 
			
		||||
 | 
			
		||||
  } // end isPreferred
 | 
			
		||||
 | 
			
		||||
  public final void setPreferred(boolean f)
 | 
			
		||||
  {
 | 
			
		||||
    preferred = f;
 | 
			
		||||
 | 
			
		||||
  } // end setPreferred
 | 
			
		||||
 | 
			
		||||
  public final String getNumber()
 | 
			
		||||
  {
 | 
			
		||||
    return number;
 | 
			
		||||
 | 
			
		||||
  } // end getNumber
 | 
			
		||||
 | 
			
		||||
  public final void setNumber(String s)
 | 
			
		||||
  {
 | 
			
		||||
    number = s;
 | 
			
		||||
 | 
			
		||||
  } // end setNumber
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * External operations
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  public void reset()
 | 
			
		||||
  {
 | 
			
		||||
    home_phone = false;
 | 
			
		||||
    work_phone = false;
 | 
			
		||||
    voice_phone = false;
 | 
			
		||||
    fax_phone = false;
 | 
			
		||||
    pager = false;
 | 
			
		||||
    message = false;
 | 
			
		||||
    cell_phone = false;
 | 
			
		||||
    video_phone = false;
 | 
			
		||||
    bbs_phone = false;
 | 
			
		||||
    modem_phone = false;
 | 
			
		||||
    isdn_phone = false;
 | 
			
		||||
    pcs_phone = false;
 | 
			
		||||
    preferred = false;
 | 
			
		||||
    number = null;
 | 
			
		||||
 | 
			
		||||
  } // end reset
 | 
			
		||||
 | 
			
		||||
  public VCardPhone create()
 | 
			
		||||
  {
 | 
			
		||||
    return new VCardPhone(home_phone,work_phone,voice_phone,fax_phone,pager,message,cell_phone,video_phone,bbs_phone,
 | 
			
		||||
			  modem_phone,isdn_phone,pcs_phone,preferred,number);
 | 
			
		||||
 | 
			
		||||
  } // end create
 | 
			
		||||
 | 
			
		||||
} // end class BuildVCardPhone
 | 
			
		||||
@ -9,14 +9,15 @@
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
 * Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 2001-2004 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * 
 | 
			
		||||
 * Contributor(s): 
 | 
			
		||||
 */
 | 
			
		||||
package com.silverwrist.venice.util;
 | 
			
		||||
 | 
			
		||||
import java.io.*;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import org.apache.log4j.*;
 | 
			
		||||
import org.w3c.dom.*;
 | 
			
		||||
@ -57,10 +58,35 @@ public class VCard
 | 
			
		||||
  private String url = null;
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Constructor
 | 
			
		||||
   * Constructors
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  VCard(String formatted_name, String family_name, String given_name, String middle_name, String prefix, String suffix,
 | 
			
		||||
	String nickname, Collection addresses, Collection phones, Collection email_addresses, String mailer,
 | 
			
		||||
	String timezone, String title, String role, String orgname, String note, String sort_string, String url)
 | 
			
		||||
  {
 | 
			
		||||
    this.formatted_name = formatted_name;
 | 
			
		||||
    this.family_name = family_name;
 | 
			
		||||
    this.given_name = given_name;
 | 
			
		||||
    this.middle_name = middle_name;
 | 
			
		||||
    this.prefix = prefix;
 | 
			
		||||
    this.suffix = suffix;
 | 
			
		||||
    this.nickname = nickname;
 | 
			
		||||
    this.addresses.addAll(addresses);
 | 
			
		||||
    this.phones.addAll(phones);
 | 
			
		||||
    this.email_addresses.addAll(email_addresses);
 | 
			
		||||
    this.mailer = mailer;
 | 
			
		||||
    this.timezone = timezone;
 | 
			
		||||
    this.title = title;
 | 
			
		||||
    this.role = role;
 | 
			
		||||
    this.orgname = orgname;
 | 
			
		||||
    this.note = note;
 | 
			
		||||
    this.sort_string = sort_string;
 | 
			
		||||
    this.url = url;
 | 
			
		||||
 | 
			
		||||
  } // end constructor
 | 
			
		||||
 | 
			
		||||
  public VCard(Element xml) throws ValidationException
 | 
			
		||||
  {
 | 
			
		||||
    if (!(xml.getTagName().equals("vCard")))
 | 
			
		||||
@ -183,6 +209,35 @@ public class VCard
 | 
			
		||||
 | 
			
		||||
  } // end cleanup
 | 
			
		||||
 | 
			
		||||
  static final boolean validateTZText(String s)
 | 
			
		||||
  {
 | 
			
		||||
    if (s.equals("Z") || s.equals("z"))
 | 
			
		||||
      return true;
 | 
			
		||||
 | 
			
		||||
    // validate the offset string
 | 
			
		||||
    boolean valid = (s.length()>=3) && ((s.charAt(0)=='+') || (s.charAt(0)=='-'));
 | 
			
		||||
    if (valid)
 | 
			
		||||
      valid = ((s.charAt(1)>='0') && (s.charAt(1)<='9'));
 | 
			
		||||
    if (valid)
 | 
			
		||||
      valid = ((s.charAt(2)>='0') && (s.charAt(2)<='9'));
 | 
			
		||||
    if (!valid)
 | 
			
		||||
      return false;
 | 
			
		||||
    if (s.length()>3)
 | 
			
		||||
    { // validate the last bit of the string
 | 
			
		||||
      if (s.charAt(3)==':')  // +hh:mm or -hh:mm
 | 
			
		||||
	valid = (   (s.length()==6) && (s.charAt(4)>='0') && (s.charAt(4)<='9') && (s.charAt(5)>='0')
 | 
			
		||||
		 && (s.charAt(5)<='9'));
 | 
			
		||||
      else  // +hhmm or -hhmm
 | 
			
		||||
	valid = (   (s.length()==5) && (s.charAt(3)>='0') && (s.charAt(3)<='9') && (s.charAt(4)>='0')
 | 
			
		||||
		 && (s.charAt(4)<='9'));
 | 
			
		||||
 | 
			
		||||
    } // end if
 | 
			
		||||
    // else it's just a +hh or -hh notation
 | 
			
		||||
 | 
			
		||||
    return valid;
 | 
			
		||||
 | 
			
		||||
  } // end validateTZText
 | 
			
		||||
 | 
			
		||||
  private static final String readElemText(Element elt)
 | 
			
		||||
  {
 | 
			
		||||
    DOMElementHelper h = new DOMElementHelper(elt);
 | 
			
		||||
@ -199,31 +254,7 @@ public class VCard
 | 
			
		||||
    s = s.trim();
 | 
			
		||||
 | 
			
		||||
    // Validate that this is a proper ISO 8601 time zone offset.
 | 
			
		||||
    boolean valid;
 | 
			
		||||
    if (s.equals("Z") || s.equals("z"))
 | 
			
		||||
      valid = true;  // "Z" = Zulu time!
 | 
			
		||||
    else
 | 
			
		||||
    { // validate the offset string
 | 
			
		||||
      valid = (s.length()>=3) && ((s.charAt(0)=='+') || (s.charAt(0)=='-'));
 | 
			
		||||
      if (valid)
 | 
			
		||||
	valid = ((s.charAt(1)>='0') && (s.charAt(1)<='9'));
 | 
			
		||||
      if (valid)
 | 
			
		||||
	valid = ((s.charAt(2)>='0') && (s.charAt(2)<='9'));
 | 
			
		||||
      if (s.length()>3)
 | 
			
		||||
      { // validate the last bit of the string
 | 
			
		||||
	if (s.charAt(3)==':')  // +hh:mm or -hh:mm
 | 
			
		||||
	  valid = (   (s.length()==6) && (s.charAt(4)>='0') && (s.charAt(4)<='9') && (s.charAt(5)>='0')
 | 
			
		||||
		   && (s.charAt(5)<='9'));
 | 
			
		||||
	else  // +hhmm or -hhmm
 | 
			
		||||
	  valid = (   (s.length()==5) && (s.charAt(3)>='0') && (s.charAt(3)<='9') && (s.charAt(4)>='0')
 | 
			
		||||
		   && (s.charAt(4)<='9'));
 | 
			
		||||
 | 
			
		||||
      } // end if
 | 
			
		||||
      // else it's just a +hh or -hh notation
 | 
			
		||||
 | 
			
		||||
    } // end else
 | 
			
		||||
 | 
			
		||||
    if (!valid)
 | 
			
		||||
    if (!validateTZText(s))
 | 
			
		||||
    { // the time zone text is not valid
 | 
			
		||||
      logger.error("<TZ/> text invalid (" + s + ")");
 | 
			
		||||
      throw new ValidationException("<TZ/> value is not a valid ISO 8601 time zone offset");
 | 
			
		||||
@ -379,6 +410,36 @@ public class VCard
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  public final List getAddresses()
 | 
			
		||||
  {
 | 
			
		||||
    if (addresses.isEmpty())
 | 
			
		||||
      return Collections.EMPTY_LIST;
 | 
			
		||||
    ArrayList rc = new ArrayList(addresses);
 | 
			
		||||
    rc.trimToSize();
 | 
			
		||||
    return Collections.unmodifiableList(rc);
 | 
			
		||||
 | 
			
		||||
  } // end getAddresses
 | 
			
		||||
 | 
			
		||||
  public final List getPhones()
 | 
			
		||||
  {
 | 
			
		||||
    if (phones.isEmpty())
 | 
			
		||||
      return Collections.EMPTY_LIST;
 | 
			
		||||
    ArrayList rc = new ArrayList(phones);
 | 
			
		||||
    rc.trimToSize();
 | 
			
		||||
    return Collections.unmodifiableList(rc);
 | 
			
		||||
 | 
			
		||||
  } // end getPhones
 | 
			
		||||
 | 
			
		||||
  public final List getEmailAddresses()
 | 
			
		||||
  {
 | 
			
		||||
    if (email_addresses.isEmpty())
 | 
			
		||||
      return Collections.EMPTY_LIST;
 | 
			
		||||
    ArrayList rc = new ArrayList(email_addresses);
 | 
			
		||||
    rc.trimToSize();
 | 
			
		||||
    return Collections.unmodifiableList(rc);
 | 
			
		||||
 | 
			
		||||
  } // end getEmailAddresses
 | 
			
		||||
 | 
			
		||||
  public final VCardAddress getPreferredAddress()
 | 
			
		||||
  {
 | 
			
		||||
    return findAddress(new VCardAddress.Predicate(){
 | 
			
		||||
@ -524,4 +585,71 @@ public class VCard
 | 
			
		||||
 | 
			
		||||
  } // end getInternetEmail
 | 
			
		||||
 | 
			
		||||
  public final void exportXML(Writer xml_writer) throws IOException
 | 
			
		||||
  {
 | 
			
		||||
    xml_writer.write("<vCard xmlns=\"vcard-temp\">\n<VERSION>2.0</VERSION>\n");
 | 
			
		||||
    if (formatted_name!=null)
 | 
			
		||||
      xml_writer.write("<FN>" + formatted_name + "</FN>\n");
 | 
			
		||||
    if ((family_name!=null) || (given_name!=null) || (middle_name!=null) || (prefix!=null) || (suffix!=null))
 | 
			
		||||
    { // write out the "N" block
 | 
			
		||||
      xml_writer.write("<N>");
 | 
			
		||||
      if (family_name!=null)
 | 
			
		||||
	xml_writer.write("<FAMILY>" + family_name + "</FAMILY>");
 | 
			
		||||
      if (given_name!=null)
 | 
			
		||||
	xml_writer.write("<GIVEN>" + given_name + "</GIVEN>");
 | 
			
		||||
      if (middle_name!=null)
 | 
			
		||||
	xml_writer.write("<MIDDLE>" + middle_name + "</MIDDLE>");
 | 
			
		||||
      if (prefix!=null)
 | 
			
		||||
	xml_writer.write("<PREFIX>" + prefix + "</PREFIX>");
 | 
			
		||||
      if (suffix!=null)
 | 
			
		||||
	xml_writer.write("<SUFFIX>" + suffix + "</SUFFIX>");
 | 
			
		||||
      xml_writer.write("</N>\n");
 | 
			
		||||
 | 
			
		||||
    } // end if
 | 
			
		||||
 | 
			
		||||
    if (nickname!=null)
 | 
			
		||||
      xml_writer.write("<NICKNAME>" + nickname + "</NICKNAME>\n");
 | 
			
		||||
 | 
			
		||||
    Iterator it;
 | 
			
		||||
    for (it=addresses.iterator(); it.hasNext(); )
 | 
			
		||||
    { // get each address and output it
 | 
			
		||||
      VCardAddress addr = (VCardAddress)(it.next());
 | 
			
		||||
      addr.exportXML(xml_writer);
 | 
			
		||||
 | 
			
		||||
    } // end for
 | 
			
		||||
 | 
			
		||||
    for (it=phones.iterator(); it.hasNext(); )
 | 
			
		||||
    { // get each phone number and output it
 | 
			
		||||
      VCardPhone phone = (VCardPhone)(it.next());
 | 
			
		||||
      phone.exportXML(xml_writer);
 | 
			
		||||
 | 
			
		||||
    } // end for
 | 
			
		||||
 | 
			
		||||
    for (it=email_addresses.iterator(); it.hasNext(); )
 | 
			
		||||
    { // get each E-mail address and output it
 | 
			
		||||
      VCardEmail addr = (VCardEmail)(it.next());
 | 
			
		||||
      addr.exportXML(xml_writer);
 | 
			
		||||
 | 
			
		||||
    } // end for
 | 
			
		||||
 | 
			
		||||
    if (mailer!=null)
 | 
			
		||||
      xml_writer.write("<MAILER>" + mailer + "</MAILER>\n");
 | 
			
		||||
    if (timezone!=null)
 | 
			
		||||
      xml_writer.write("<TZ>" + timezone + "</TZ>\n");
 | 
			
		||||
    if (title!=null)
 | 
			
		||||
      xml_writer.write("<TITLE>" + title + "</TITLE>\n");
 | 
			
		||||
    if (role!=null)
 | 
			
		||||
      xml_writer.write("<ROLE>" + role + "</ROLE>\n");
 | 
			
		||||
    if (orgname!=null)
 | 
			
		||||
      xml_writer.write("<ORG><ORGNAME>" + orgname + "</ORGNAME></ORG>\n");
 | 
			
		||||
    if (note!=null)
 | 
			
		||||
      xml_writer.write("<NOTE>" + note + "</NOTE>\n");
 | 
			
		||||
    if (sort_string!=null)
 | 
			
		||||
      xml_writer.write("<SORTSTR>" + sort_string + "</SORTSTR>\n");
 | 
			
		||||
    if (url!=null)
 | 
			
		||||
      xml_writer.write("<URL>" + url + "</URL>\n");
 | 
			
		||||
    xml_writer.write("</vCard>\n");
 | 
			
		||||
 | 
			
		||||
  } // end exportXML
 | 
			
		||||
 | 
			
		||||
} // end class VCard
 | 
			
		||||
 | 
			
		||||
@ -9,14 +9,15 @@
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
 * Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 2001-2004 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * 
 | 
			
		||||
 * Contributor(s): 
 | 
			
		||||
 */
 | 
			
		||||
package com.silverwrist.venice.util;
 | 
			
		||||
 | 
			
		||||
import java.io.*;
 | 
			
		||||
import org.w3c.dom.*;
 | 
			
		||||
import com.silverwrist.util.*;
 | 
			
		||||
import com.silverwrist.venice.except.*;
 | 
			
		||||
@ -55,10 +56,31 @@ public class VCardAddress
 | 
			
		||||
  private String country;
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Constructor
 | 
			
		||||
   * Constructors
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  VCardAddress(boolean home_adr, boolean work_adr, boolean postal_adr, boolean parcel_adr, boolean domestic_adr,
 | 
			
		||||
	       boolean intl_adr, boolean preferred, String pobox, String ext_address, String street, String locality,
 | 
			
		||||
	       String region, String postal_code, String country)
 | 
			
		||||
  {
 | 
			
		||||
    this.home_adr = home_adr;
 | 
			
		||||
    this.work_adr = work_adr;
 | 
			
		||||
    this.postal_adr = postal_adr;
 | 
			
		||||
    this.parcel_adr = parcel_adr;
 | 
			
		||||
    this.domestic_adr = domestic_adr;
 | 
			
		||||
    this.intl_adr = intl_adr;
 | 
			
		||||
    this.preferred = preferred;
 | 
			
		||||
    this.pobox = pobox;
 | 
			
		||||
    this.ext_address = ext_address;
 | 
			
		||||
    this.street = street;
 | 
			
		||||
    this.locality = locality;
 | 
			
		||||
    this.region = region;
 | 
			
		||||
    this.postal_code = postal_code;
 | 
			
		||||
    this.country = country;
 | 
			
		||||
 | 
			
		||||
  } // end constructor
 | 
			
		||||
 | 
			
		||||
  VCardAddress(Element adr) throws ValidationException
 | 
			
		||||
  {
 | 
			
		||||
    DOMElementHelper h = new DOMElementHelper(adr);
 | 
			
		||||
@ -81,6 +103,119 @@ public class VCardAddress
 | 
			
		||||
 | 
			
		||||
  } // end constructor
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Internal operations
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  final void exportXML(Writer xml_writer) throws IOException
 | 
			
		||||
  {
 | 
			
		||||
    xml_writer.write("<ADR>");
 | 
			
		||||
    if (home_adr)
 | 
			
		||||
      xml_writer.write("<HOME/>");
 | 
			
		||||
    if (work_adr)
 | 
			
		||||
      xml_writer.write("<WORK/>");
 | 
			
		||||
    if (postal_adr)
 | 
			
		||||
      xml_writer.write("<POSTAL/>");
 | 
			
		||||
    if (parcel_adr)
 | 
			
		||||
      xml_writer.write("<PARCEL/>");
 | 
			
		||||
    if (domestic_adr)
 | 
			
		||||
      xml_writer.write("<DOM/>");
 | 
			
		||||
    if (intl_adr)
 | 
			
		||||
      xml_writer.write("<INTL/>");
 | 
			
		||||
    if (preferred)
 | 
			
		||||
      xml_writer.write("<PREF/>");
 | 
			
		||||
    xml_writer.write("\n");
 | 
			
		||||
    if (pobox!=null)
 | 
			
		||||
      xml_writer.write("<POBOX>" + pobox + "</POBOX>\n");
 | 
			
		||||
    if (ext_address!=null)
 | 
			
		||||
      xml_writer.write("<EXTADR>" + ext_address + "</EXTADR>\n");
 | 
			
		||||
    if (street!=null)
 | 
			
		||||
      xml_writer.write("<STREET>" + street + "</STREET>\n");
 | 
			
		||||
    if (locality!=null)
 | 
			
		||||
      xml_writer.write("<LOCALITY>" + locality + "</LOCALITY>\n");
 | 
			
		||||
    if (region!=null)
 | 
			
		||||
      xml_writer.write("<REGION>" + region + "</REGION>\n");
 | 
			
		||||
    if (postal_code!=null)
 | 
			
		||||
      xml_writer.write("<PCODE>" + postal_code + "</PCODE>\n");
 | 
			
		||||
    if (country!=null)
 | 
			
		||||
      xml_writer.write("<CTRY>" + country + "</CTRY>\n");
 | 
			
		||||
    xml_writer.write("</ADR>\n");
 | 
			
		||||
 | 
			
		||||
  } // end exportXML
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Overrides from class Object
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  public boolean equals(Object o)
 | 
			
		||||
  {
 | 
			
		||||
    if ((o==null) || !(o instanceof VCardAddress))
 | 
			
		||||
      return false;
 | 
			
		||||
    VCardAddress other = (VCardAddress)o;
 | 
			
		||||
    if (   (home_adr!=other.home_adr) || (work_adr!=other.work_adr) || (postal_adr!=other.postal_adr)
 | 
			
		||||
	|| (parcel_adr!=other.parcel_adr) || (domestic_adr!=other.domestic_adr) || (intl_adr!=other.intl_adr)
 | 
			
		||||
	|| (preferred!=other.preferred))
 | 
			
		||||
      return false;
 | 
			
		||||
    if (!StringUtil.areEqual(pobox,other.pobox))
 | 
			
		||||
      return false;
 | 
			
		||||
    if (!StringUtil.areEqual(ext_address,other.ext_address))
 | 
			
		||||
      return false;
 | 
			
		||||
    if (!StringUtil.areEqual(street,other.street))
 | 
			
		||||
      return false;
 | 
			
		||||
    if (!StringUtil.areEqual(locality,other.locality))
 | 
			
		||||
      return false;
 | 
			
		||||
    if (!StringUtil.areEqual(region,other.region))
 | 
			
		||||
      return false;
 | 
			
		||||
    if (!StringUtil.areEqual(postal_code,other.postal_code))
 | 
			
		||||
      return false;
 | 
			
		||||
    return StringUtil.areEqual(country,other.country);
 | 
			
		||||
 | 
			
		||||
  } // end equals
 | 
			
		||||
 | 
			
		||||
  public int hashCode()
 | 
			
		||||
  {
 | 
			
		||||
    int rc = 0;
 | 
			
		||||
    int mask = 0x40000000;
 | 
			
		||||
    if (home_adr)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (work_adr)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (postal_adr)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (parcel_adr)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (domestic_adr)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (intl_adr)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (preferred)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    if (pobox!=null)
 | 
			
		||||
      rc ^= pobox.hashCode();
 | 
			
		||||
    if (ext_address!=null)
 | 
			
		||||
      rc ^= ext_address.hashCode();
 | 
			
		||||
    if (street!=null)
 | 
			
		||||
      rc ^= street.hashCode();
 | 
			
		||||
    if (locality!=null)
 | 
			
		||||
      rc ^= locality.hashCode();
 | 
			
		||||
    if (region!=null)
 | 
			
		||||
      rc ^= region.hashCode();
 | 
			
		||||
    if (postal_code!=null)
 | 
			
		||||
      rc ^= postal_code.hashCode();
 | 
			
		||||
    if (country!=null)
 | 
			
		||||
      rc ^= country.hashCode();
 | 
			
		||||
    return rc;
 | 
			
		||||
 | 
			
		||||
  } // end hashCode
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * External getters/setters
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
@ -9,14 +9,15 @@
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
 * Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 2001-2004 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * 
 | 
			
		||||
 * Contributor(s): 
 | 
			
		||||
 */
 | 
			
		||||
package com.silverwrist.venice.util;
 | 
			
		||||
 | 
			
		||||
import java.io.*;
 | 
			
		||||
import org.w3c.dom.*;
 | 
			
		||||
import com.silverwrist.util.*;
 | 
			
		||||
import com.silverwrist.venice.except.*;
 | 
			
		||||
@ -47,10 +48,22 @@ public class VCardEmail
 | 
			
		||||
  private String address;
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Constructor
 | 
			
		||||
   * Constructors
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  VCardEmail(boolean home_email, boolean work_email, boolean internet_email, boolean x400_email, boolean preferred,
 | 
			
		||||
	     String address)
 | 
			
		||||
  {
 | 
			
		||||
    this.home_email = home_email;
 | 
			
		||||
    this.work_email = work_email;
 | 
			
		||||
    this.internet_email = internet_email;
 | 
			
		||||
    this.x400_email = x400_email;
 | 
			
		||||
    this.preferred = preferred;
 | 
			
		||||
    this.address = address;
 | 
			
		||||
 | 
			
		||||
  } // end constructor
 | 
			
		||||
 | 
			
		||||
  VCardEmail(Element elt)
 | 
			
		||||
  {
 | 
			
		||||
    DOMElementHelper h = new DOMElementHelper(elt);
 | 
			
		||||
@ -67,6 +80,71 @@ public class VCardEmail
 | 
			
		||||
 | 
			
		||||
  } // end constructor
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Internal operations
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  final void exportXML(Writer xml_writer) throws IOException
 | 
			
		||||
  {
 | 
			
		||||
    xml_writer.write("<EMAIL>");
 | 
			
		||||
    if (home_email)
 | 
			
		||||
      xml_writer.write("<HOME/>");
 | 
			
		||||
    if (work_email)
 | 
			
		||||
      xml_writer.write("<WORK/>");
 | 
			
		||||
    if (internet_email)
 | 
			
		||||
      xml_writer.write("<INTERNET/>");
 | 
			
		||||
    if (x400_email)
 | 
			
		||||
      xml_writer.write("<X400/>");
 | 
			
		||||
    if (preferred)
 | 
			
		||||
      xml_writer.write("<PREF/>");
 | 
			
		||||
    if (address!=null)
 | 
			
		||||
      xml_writer.write("<USERID>" + address + "</USERID>");
 | 
			
		||||
    xml_writer.write("</EMAIL>\n");
 | 
			
		||||
 | 
			
		||||
  } // end exportXML
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Overrides from class Object
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  public boolean equals(Object o)
 | 
			
		||||
  {
 | 
			
		||||
    if ((o==null) || !(o instanceof VCardEmail))
 | 
			
		||||
      return false;
 | 
			
		||||
    VCardEmail other = (VCardEmail)o;
 | 
			
		||||
    if (   (home_email!=other.home_email) || (work_email!=other.work_email) || (internet_email!=other.internet_email)
 | 
			
		||||
	|| (x400_email!=other.x400_email) || (preferred!=other.preferred))
 | 
			
		||||
      return false;
 | 
			
		||||
    return StringUtil.areEqual(address,other.address);
 | 
			
		||||
 | 
			
		||||
  } // end equals
 | 
			
		||||
 | 
			
		||||
  public int hashCode()
 | 
			
		||||
  {
 | 
			
		||||
    int rc = 0;
 | 
			
		||||
    int mask = 0x40000000;
 | 
			
		||||
    if (home_email)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (work_email)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (internet_email)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (x400_email)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (preferred)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    if (address!=null)
 | 
			
		||||
      rc ^= address.hashCode();
 | 
			
		||||
    return rc;
 | 
			
		||||
 | 
			
		||||
  } // end hashCode
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * External getters/setters
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
@ -9,14 +9,15 @@
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
 * Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 2001-2004 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.
 | 
			
		||||
 * 
 | 
			
		||||
 * Contributor(s): 
 | 
			
		||||
 */
 | 
			
		||||
package com.silverwrist.venice.util;
 | 
			
		||||
 | 
			
		||||
import java.io.*;
 | 
			
		||||
import org.w3c.dom.*;
 | 
			
		||||
import com.silverwrist.util.*;
 | 
			
		||||
import com.silverwrist.venice.except.*;
 | 
			
		||||
@ -55,10 +56,31 @@ public class VCardPhone
 | 
			
		||||
  private String number;
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Constructor
 | 
			
		||||
   * Constructors
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  VCardPhone(boolean home_phone, boolean work_phone, boolean voice_phone, boolean fax_phone, boolean pager,
 | 
			
		||||
	     boolean message, boolean cell_phone, boolean video_phone, boolean bbs_phone, boolean modem_phone,
 | 
			
		||||
	     boolean isdn_phone, boolean pcs_phone, boolean preferred, String number)
 | 
			
		||||
  {
 | 
			
		||||
    this.home_phone = home_phone;
 | 
			
		||||
    this.work_phone = work_phone;
 | 
			
		||||
    this.voice_phone = voice_phone;
 | 
			
		||||
    this.fax_phone = fax_phone;
 | 
			
		||||
    this.pager = pager;
 | 
			
		||||
    this.message = message;
 | 
			
		||||
    this.cell_phone = cell_phone;
 | 
			
		||||
    this.video_phone = video_phone;
 | 
			
		||||
    this.bbs_phone = bbs_phone;
 | 
			
		||||
    this.modem_phone = modem_phone;
 | 
			
		||||
    this.isdn_phone = isdn_phone;
 | 
			
		||||
    this.pcs_phone = pcs_phone;
 | 
			
		||||
    this.preferred = preferred;
 | 
			
		||||
    this.number = number;
 | 
			
		||||
 | 
			
		||||
  } // end constructor
 | 
			
		||||
 | 
			
		||||
  VCardPhone(Element elt)
 | 
			
		||||
  {
 | 
			
		||||
    DOMElementHelper h = new DOMElementHelper(elt);
 | 
			
		||||
@ -81,6 +103,114 @@ public class VCardPhone
 | 
			
		||||
 | 
			
		||||
  } // end constructor
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Internal operations
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  final void exportXML(Writer xml_writer) throws IOException
 | 
			
		||||
  {
 | 
			
		||||
    xml_writer.write("<TEL>");
 | 
			
		||||
    if (home_phone)
 | 
			
		||||
      xml_writer.write("<HOME/>");
 | 
			
		||||
    if (work_phone)
 | 
			
		||||
      xml_writer.write("<WORK/>");
 | 
			
		||||
    if (voice_phone)
 | 
			
		||||
      xml_writer.write("<VOICE/>");
 | 
			
		||||
    if (fax_phone)
 | 
			
		||||
      xml_writer.write("<FAX/>");
 | 
			
		||||
    if (pager)
 | 
			
		||||
      xml_writer.write("<PAGER/>");
 | 
			
		||||
    if (message)
 | 
			
		||||
      xml_writer.write("<MSG/>");
 | 
			
		||||
    if (cell_phone)
 | 
			
		||||
      xml_writer.write("<CELL/>");
 | 
			
		||||
    if (video_phone)
 | 
			
		||||
      xml_writer.write("<VIDEO/>");
 | 
			
		||||
    if (bbs_phone)
 | 
			
		||||
      xml_writer.write("<BBS/>");
 | 
			
		||||
    if (modem_phone)
 | 
			
		||||
      xml_writer.write("<MODEM/>");
 | 
			
		||||
    if (isdn_phone)
 | 
			
		||||
      xml_writer.write("<ISDN/>");
 | 
			
		||||
    if (pcs_phone)
 | 
			
		||||
      xml_writer.write("<PCS/>");
 | 
			
		||||
    if (preferred)
 | 
			
		||||
      xml_writer.write("<PREF/>");
 | 
			
		||||
    if (number!=null)
 | 
			
		||||
      xml_writer.write("<NUMBER>" + number + "</NUMBER>");
 | 
			
		||||
    xml_writer.write("</TEL>\n");
 | 
			
		||||
 | 
			
		||||
  } // end exportXML
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * Overrides from class Object
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  public boolean equals(Object o)
 | 
			
		||||
  {
 | 
			
		||||
    if ((o==null) || !(o instanceof VCardPhone))
 | 
			
		||||
      return false;
 | 
			
		||||
    VCardPhone other = (VCardPhone)o;
 | 
			
		||||
    if (   (home_phone!=other.home_phone) || (work_phone!=other.work_phone) || (voice_phone!=other.voice_phone)
 | 
			
		||||
        || (fax_phone!=other.fax_phone) || (pager!=other.pager) || (message!=other.message)
 | 
			
		||||
        || (cell_phone!=other.cell_phone) || (video_phone!=other.video_phone) || (bbs_phone!=other.bbs_phone)
 | 
			
		||||
        || (modem_phone!=other.modem_phone) || (isdn_phone!=other.isdn_phone) || (pcs_phone!=other.pcs_phone)
 | 
			
		||||
        || (preferred==other.preferred))
 | 
			
		||||
      return false;
 | 
			
		||||
    return StringUtil.areEqual(number,other.number);
 | 
			
		||||
 | 
			
		||||
  } // end equals
 | 
			
		||||
 | 
			
		||||
  public int hashCode()
 | 
			
		||||
  {
 | 
			
		||||
    int rc = 0;
 | 
			
		||||
    int mask = 0x40000000;
 | 
			
		||||
    if (home_phone)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (work_phone)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (voice_phone)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (fax_phone)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (pager)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (message)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (cell_phone)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (video_phone)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (bbs_phone)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (modem_phone)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (isdn_phone)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (pcs_phone)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    mask >>= 1;
 | 
			
		||||
    if (preferred)
 | 
			
		||||
      rc |= mask;
 | 
			
		||||
    if (number!=null)
 | 
			
		||||
      rc ^= number.hashCode();
 | 
			
		||||
    return rc;
 | 
			
		||||
 | 
			
		||||
  } // end hashCode
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------------------------------------------
 | 
			
		||||
   * External getters/setters
 | 
			
		||||
   *--------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user