I have coded the below to represent addresses in Spain. Let me know if there are better ways of doing this or if there is already a open source library dealing with i18n addresses.
/**
* From <a href="http://www.addressdoctor.com/en/countries_data/sampleaddress.asp?code=ESP%2BSpain}">Address doctor</a>
* <p>
* Format
* </p>
*
* <pre>
* Line 1: RECIPIENT
* Line 2: [URBANISATION]
* Line 3: STREET_TYPE STREET_NAME, HOUSE_NUMBER [FLOOR] [APARTMENT]
* Line 4: POSTAL_CODE LOCALITY
* Line 5: SPAIN
* </pre>
*
* Example
*
* <pre>
* Isidre Varo
* Avenida de Canillejas a Vicalvaro 82 piso 4
* 28022 MADRID
* SPAIN
* </pre>
*
* @author Aravind R Yarram
*
*/
public interface SpainAddress
{
/**
* E.g road types would be Calle (Street)
* <p>
* TODO may be an enumeration
* </p>
*/
String getStreetType();
String getStreetName();
String getHouseNumber();
String getFloorNumber();
/**
* <p>
* TODO need validation
* </p>
*/
String getPostalCode();
/**
* Poblacion
*/
String getCity();
/**
* Also known as province
*/
String getLocality();
}