/* * Copyright (c) 2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.wso2.carbon.registry.social.api.people.userprofile.model; //import com.google.common.base.Functions; //import com.google.common.collect.Maps; /** * Base interface for all address objects. */ public interface Address { /** * The fields that represent the address object in json form. */ public static enum Field { /** * the field name for country. */ COUNTRY("country"), /** * the field name for latitude. */ LATITUDE("latitude"), /** * the field name for locality. */ LOCALITY("locality"), /** * the field name for longitude. */ LONGITUDE("longitude"), /** * the field name for postalCode. */ POSTAL_CODE("postalCode"), /** * the field name for region. */ REGION("region"), /** * the feild name for streetAddress this field may be multiple lines. */ STREET_ADDRESS("streetAddress"), /** * the field name for type. */ TYPE("type"), /** * the field name for formatted. */ FORMATTED("formatted"), /** * the field name for primary. */ PRIMARY("primary"); // private static final Map<String, Field> lookup = Maps.uniqueIndex(EnumSet.allOf(Field.class), // Functions.toStringFunction()); /** * The json field that the instance represents. */ private final String jsonString; /** * create a field base on the a json element. * * @param jsonString the name of the element */ private Field(String jsonString) { this.jsonString = jsonString; } /** * emit the field as a json element. * * @return the field name */ @Override public String toString() { return this.jsonString; } // public static Field getField(String jsonString) { // return lookup.get(jsonString); // } } /** * Get the country. * * @return the country */ String getCountry(); /** * Set the country. * * @param country the country */ void setCountry(String country); /** * Get the latitude. * * @return latitude */ Float getLatitude(); /** * Set the latitude. * * @param latitude latitude */ void setLatitude(Float latitude); /** * Get the locality. * * @return the locality */ String getLocality(); /** * Set the locality. * * @param locality the locality */ void setLocality(String locality); /** * Get the longitude of the address in degrees. * * @return the longitude of the address in degrees */ Float getLongitude(); /** * Set the longitude of the address in degrees. * * @param longitude the longitude of the address in degrees. */ void setLongitude(Float longitude); /** * Get the Postal code for the address. * * @return the postal code for the address */ String getPostalCode(); /** * Set the postal code for the address. * * @param postalCode the postal code */ void setPostalCode(String postalCode); /** * Get the region. * * @return the region */ String getRegion(); /** * Set the region. * * @param region the region */ void setRegion(String region); /** * Get the street address. * * @return the street address */ String getStreetAddress(); /** * Set the street address. * * @param streetAddress the street address */ void setStreetAddress(String streetAddress); /** * Get the type of label of the address. * * @return the type or label of the address */ String getType(); /** * Get the type of label of the address. * * @param type the type of label of the address. */ void setType(String type); /** * Get the formatted address. * * @return the formatted address */ String getFormatted(); /** * Set the formatted address. * * @param formatted the formatted address */ void setFormatted(String formatted); /** * <p> * Get a Boolean value indicating whether this instance of the Plural Field is the primary or * preferred value of for this field, e.g. the preferred mailing address. Service Providers MUST * NOT mark more than one instance of the same Plural Field as primary="true", and MAY choose not * to mark any fields as primary, if this information is not available. Introduced in v0.8.1 * </p><p> * The service provider may wish to share the address instance between items and primary related * to the address from which this came, so if the address came from an Organization, primary * relates to the primary address of the organization, and not necessary the primary address of * all addresses. * </p><p> * If the address is not part of a list (eg Person.location ) primary has no meaning. * <p/> * * @return true if the instance if the primary instance. */ Boolean getPrimary(); /** * @param primary set the Primary status of this Address. */ void setPrimary(Boolean primary); }