/*
 * 
 * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
 * 
 * The contents of this file are subject to the Sun Community Source
 * License v3.0/Jini Technology Specific Attachment v 1.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://wwws.sun.com/software/jini/licensing/SCSL3_JiniTSA1.html.
 * 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 Reference Code is Jini Technology Core Platform code, v2.0. The
 * Developer of the Reference Code is Sun Microsystems, Inc.
 * 
 * Contributor(s): Sun Microsystems, Inc.
 * 
 * The contents of this file comply with the Jini Technology Core
 * Platform Compatibility Kit, v2.0A.
 * 
 * Tester(s): Sun Microsystems, Inc.
 * 
 * Test Platform(s):
 * Java 2 SDK, Standard Edition, Version 1.4.2_03 for Solaris(TM)SPARC/x86
 * Java 2 SDK, Standard Edition, Version 1.4.2_03 for Linux (Intel x86)
 * Java 2 SDK, Standard Edition, Version 1.4.2_03 for Windows (Intel Platform)
 * 
 */
package net.jini.lookup.entry;

import net.jini.entry.AbstractEntry;

/**
 * The address of the physical component of a service.  This is
 * distinct from the Location class in that it is intended for use
 * with the Location class in geographically dispersed organizations.
 * 
 * @author Sun Microsystems, Inc.
 *
 * @see Location
 * @see AddressBean
 */
public class Address extends AbstractEntry {
    private static final long serialVersionUID = 2896136903322046578L;

    /**
     * Construct an empty instance of this class.
     */
    public Address() {
    }

    /**
     * Construct an instance of this class, with all fields
     * initialized appropriately.
     *
     * @param street              a String representing the street address
     * @param organization        a String representing the organization
     * @param organizationalUnit  a String representing the organizational unit
     * @param locality            a String representing the locality
     * @param stateOrProvince     a String representing the state or province
     * @param postalCode          a String representing the postal code
     * @param country             a String representing the country
     */
    public Address(String street, String organization,
		   String organizationalUnit, String locality,
		   String stateOrProvince, String postalCode, String country)
    {
	this.street = street;
	this.organization = organization;
	this.organizationalUnit = organizationalUnit;
	this.locality = locality;
	this.stateOrProvince = stateOrProvince;
	this.postalCode = postalCode;
	this.country = country;
    }
    
    /**
     * Street address.  For example, "901&nbsp;San Antonio Road".
     *
     * @serial
     */
    public String street;

    /**
     * Name of the company or organization that provides this service.
     * For example, "Sun Microsystems".
     *
     * @serial
     */
    public String organization;

    /**
     * The unit within the organization that provides this service.
     * For example, "Information Services".
     *
     * @serial
     */
    public String organizationalUnit;

    /**
     * City or locality name.  For example, "Palo Alto".
     *
     * @serial
     */
    public String locality;

    /**
     * Full name or standard postal abbreviation of a state or
     * province.  For example, "CA" (for California).
     *
     * @serial
     */
    public String stateOrProvince;

    /**
     * Postal code.  For example, in the United States, this is a ZIP
     * code; in Ireland, it might be either empty or a postal district
     * of Dublin.
     *
     * @serial
     */
    public String postalCode;

    /**
     * Country name.
     *
     * @serial
     */
    public String country;
}
