/**
* Mule Constant Contact Connector
*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
*
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.modules.constantcontact;
import java.util.List;
public class ContactRequestBuilder {
private StringBuilder request;
public ContactRequestBuilder() {
request = new StringBuilder(500);
request.append("<entry xmlns=\"http://www.w3.org/2005/Atom\">\n" +
" <title type=\"text\"> </title>\n" +
" <updated>2008-07-23T14:21:06.407Z</updated>\n" +
" <author></author>\n" +
" <id>data:,none</id>\n" +
" <summary type=\"text\">Contact</summary>\n" +
" <content type=\"application/vnd.ctct+xml\">");
request.append(" <Contact xmlns=\"http://ws.constantcontact.com/ns/1.0/\">");
}
public String build() {
request.append("</Contact>");
request.append("</content>");
request.append("</entry>");
return request.toString();
}
public ContactRequestBuilder setEmailAddress(String emailAddress) {
if (emailAddress != null) {
request.append("<EmailAddress>").append(emailAddress).append("</EmailAddress>");
}
return this;
}
public ContactRequestBuilder setOptInSource(OptInSource optInSource) {
if (optInSource != null) {
request.append("<OptInSource>").append(optInSource).append("</OptInSource>");
}
return this;
}
public ContactRequestBuilder setEmailType(EmailType emailType) {
if (emailType != null) {
request.append("<EmailType>").append(emailType).append("</EmailType>");
}
return this;
}
public ContactRequestBuilder setFirstName(String firstName) {
if (firstName != null) {
request.append("<FirstName>").append(firstName).append("</FirstName>");
}
return this;
}
public ContactRequestBuilder setMiddleName(String middleName) {
if (middleName != null) {
request.append("<MiddleName>").append(middleName).append("</MiddleName>");
}
return this;
}
public ContactRequestBuilder setLastName(String lastName) {
if (lastName != null) {
request.append("<LastName>").append(lastName).append("</LastName>");
}
return this;
}
public ContactRequestBuilder setJobTitle(String jobTitle) {
if (jobTitle != null) {
request.append("<JobTitle>").append(jobTitle).append("</JobTitle>");
}
return this;
}
public ContactRequestBuilder setCompanyName(String companyName) {
if (companyName != null) {
request.append("<CompanyName>").append(companyName).append("</CompanyName>");
}
return this;
}
public ContactRequestBuilder setHomePhone(String homePhone) {
if (homePhone != null) {
request.append("<HomePhone>").append(homePhone).append("</HomePhone>");
}
return this;
}
public ContactRequestBuilder setWorkPhone(String workPhone) {
if (workPhone != null) {
request.append("<WorkPhone>").append(workPhone).append("</WorkPhone>");
}
return this;
}
public ContactRequestBuilder setAddress1(String address1) {
if (address1 != null) {
request.append("<Addr1>").append(address1).append("</Addr1>");
}
return this;
}
public ContactRequestBuilder setAddress2(String address2) {
if (address2 != null) {
request.append("<Addr2>").append(address2).append("</Addr2>");
}
return this;
}
public ContactRequestBuilder setAddress3(String address3) {
if (address3 != null) {
request.append("<Addr3>").append(address3).append("</Addr3>");
}
return this;
}
public ContactRequestBuilder setCity(String city) {
if (city != null) {
request.append("<City>").append(city).append("</City>");
}
return this;
}
public ContactRequestBuilder setStateCode(String stateCode) {
if (stateCode != null) {
request.append("<StateCode>").append(stateCode).append("</StateCode>");
}
return this;
}
public ContactRequestBuilder setStateName(String stateName) {
if (stateName != null) {
request.append("<StateName>").append(stateName).append("</StateName>");
}
return this;
}
public ContactRequestBuilder setCountryCode(String countryCode) {
if (countryCode != null) {
request.append("<CountryCode>").append(countryCode).append("</CountryCode>");
}
return this;
}
public ContactRequestBuilder setCountryName(String countryName) {
if (countryName != null) {
request.append("<CountryName>").append(countryName).append("</CountryName>");
}
return this;
}
public ContactRequestBuilder setPostalCode(String postalCode) {
if (postalCode != null) {
request.append("<PostalCode>").append(postalCode).append("</PostalCode>");
}
return this;
}
public ContactRequestBuilder setSubPostalCode(String subPostalCode) {
if (subPostalCode != null) {
request.append("<SubPostalCode>").append(subPostalCode).append("</SubPostalCode>");
}
return this;
}
public ContactRequestBuilder setNote(String note) {
if (note != null) {
request.append("<Note>").append(note).append("</Note>");
}
return this;
}
public ContactRequestBuilder setCustomFieldValues(List<String> customFieldValues) {
if (customFieldValues != null) {
int i = 1;
for (String customFieldValue : customFieldValues) {
request.append("<CustomField").append(i).append(">").append(customFieldValue).append("</CustomField").append(i).append(">");
}
}
return this;
}
public ContactRequestBuilder setContactLists(List<String> contactLists) {
if (contactLists != null) {
request.append("<ContactLists>");
for (String contactList : contactLists) {
request.append("<ContactList id=\"").append(contactList).append("\"/>");
}
request.append("</ContactLists>");
}
return this;
}
}