package com.ajah.geo; /** * The State interface represents a country subdivision, such as state in the US * or province in Canada. * * @author Eric F. Savage <code@efsavage.com> */ public interface State { /** * The internal ID of the state. Is not dictated by any external/official * nomenclature, although it may match one for the sake of readability. * * Example: The ID of Massachusetts, USA might be "ma". * * @return The internal ID. Should never be null or empty. */ String getId(); /** * The common name of the state. * * Example: The name of Massachusetts, USA would be "Massachusetts", not the * official "The Commonwealth of Massachusetts". * * @return The common name of the state. Should never be null or empty. */ String getName(); /** * The public abbreviation of the state. Should match the official * nomenclature, typically defined by postal services. * * Example: The abbreviation of Massachusetts, USA would be "MA". * * @return The public abbreviation of the state. Should never be null or * empty. */ String getAbbr(); /** * The country of which this state is a part. * * Example: The country of Massachusetts, USA would be ISOCountry.USA * * @return The Country object for this state's nation. Should never be null * or empty. */ Country getCountry(); }