FileDocCategorySizeDatePackage
LandmarkImpl.javaAPI DocphoneME MR2 API (J2ME)12434Wed May 02 18:00:40 BST 2007com.sun.j2me.location

LandmarkImpl.java

/*
 *
 *
 * Copyright  1990-2007 Sun Microsystems, Inc. All Rights Reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
 * 
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License version
 * 2 only, as published by the Free Software Foundation.
 * 
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License version 2 for more details (a copy is
 * included at /legal/license.txt).
 * 
 * You should have received a copy of the GNU General Public License
 * version 2 along with this work; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA
 * 
 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
 * Clara, CA 95054 or visit www.sun.com if you need additional
 * information or have any questions.
 */
package com.sun.j2me.location;

import java.io.*;
import javax.microedition.location.*;

/**
 * This class is an implementation of the <code>Landmark</code> class defined
 * by the JSR-179 specification.
 */ 
// JAVADOC COMMENT ELIDED
public class LandmarkImpl {
    // JAVADOC COMMENT ELIDED
    int recordId = 0;
    // JAVADOC COMMENT ELIDED
    String storeName = null;
    // JAVADOC COMMENT ELIDED
    String name;
    // JAVADOC COMMENT ELIDED
    String description;
    // JAVADOC COMMENT ELIDED
    boolean isCoordinates = false;
    // JAVADOC COMMENT ELIDED
    double latitude;
    // JAVADOC COMMENT ELIDED
    double longitude;
    // JAVADOC COMMENT ELIDED
    float altitude;
    // JAVADOC COMMENT ELIDED
    float horizontalAccuracy;
    // JAVADOC COMMENT ELIDED
    float verticalAccuracy;
    // JAVADOC COMMENT ELIDED
    boolean isAddressInfo = false;
    // JAVADOC COMMENT ELIDED
    int numAddressInfoFields = 0;
    // JAVADOC COMMENT ELIDED
    String AddressInfo_EXTENSION = null;
    // JAVADOC COMMENT ELIDED
    String AddressInfo_STREET = null;
    // JAVADOC COMMENT ELIDED
    String AddressInfo_POSTAL_CODE = null;
    // JAVADOC COMMENT ELIDED
    String AddressInfo_CITY = null;
    // JAVADOC COMMENT ELIDED
    String AddressInfo_COUNTY = null;
    // JAVADOC COMMENT ELIDED
    String AddressInfo_STATE = null;
    // JAVADOC COMMENT ELIDED
    String AddressInfo_COUNTRY = null;
    // JAVADOC COMMENT ELIDED
    String AddressInfo_COUNTRY_CODE = null;
    // JAVADOC COMMENT ELIDED
    String AddressInfo_DISTRICT = null;
    // JAVADOC COMMENT ELIDED
    String AddressInfo_BUILDING_NAME = null;
    // JAVADOC COMMENT ELIDED
    String AddressInfo_BUILDING_FLOOR = null;
    // JAVADOC COMMENT ELIDED
    String AddressInfo_BUILDING_ROOM = null;
    // JAVADOC COMMENT ELIDED
    String AddressInfo_BUILDING_ZONE = null;
    // JAVADOC COMMENT ELIDED
    String AddressInfo_CROSSING1 = null;
    // JAVADOC COMMENT ELIDED
    String AddressInfo_CROSSING2 = null;
    // JAVADOC COMMENT ELIDED
    String AddressInfo_URL = null;
    // JAVADOC COMMENT ELIDED
    String AddressInfo_PHONE_NUMBER = null;

    // JAVADOC COMMENT ELIDED
    public LandmarkImpl(String name, String description, 
		    QualifiedCoordinates coordinates,
		    AddressInfo addressInfo) {
        setName(name);
        this.description = description;
        setQualifiedCoordinates(coordinates);
        setAddressInfo(addressInfo);
    }

    // JAVADOC COMMENT ELIDED
    int getRecordId() {
        return recordId;
    }

    // JAVADOC COMMENT ELIDED
    void setRecordId(int recordId) {
        this.recordId = recordId;
    }

    // JAVADOC COMMENT ELIDED
    String getStoreName() {
        return storeName;
    }

    // JAVADOC COMMENT ELIDED
    void setStoreName(String storeName) {
        this.storeName = storeName;
    }

    // JAVADOC COMMENT ELIDED
    public String getName() {
        return name;
    }

    // JAVADOC COMMENT ELIDED
    public String getDescription() {
        return description;
    }

    // JAVADOC COMMENT ELIDED
    public QualifiedCoordinates getQualifiedCoordinates() {
        if (isCoordinates) {
            return new QualifiedCoordinates(latitude, longitude, altitude,
                        horizontalAccuracy,  verticalAccuracy);
        }
        return null;
    }

    // JAVADOC COMMENT ELIDED
    public AddressInfo getAddressInfo() {
        if(isAddressInfo) {
            AddressInfo address = new AddressInfo();
            address.setField(AddressInfo.EXTENSION, AddressInfo_EXTENSION);
            address.setField(AddressInfo.STREET, AddressInfo_STREET);
            address.setField(AddressInfo.POSTAL_CODE, AddressInfo_POSTAL_CODE);
            address.setField(AddressInfo.CITY, AddressInfo_CITY);
            address.setField(AddressInfo.COUNTY, AddressInfo_COUNTY);
            address.setField(AddressInfo.STATE, AddressInfo_STATE);
            address.setField(AddressInfo.COUNTRY, AddressInfo_COUNTRY);
            address.setField(AddressInfo.COUNTRY_CODE, 
                            AddressInfo_COUNTRY_CODE);
            address.setField(AddressInfo.DISTRICT, AddressInfo_DISTRICT);
            address.setField(AddressInfo.BUILDING_NAME, 
                            AddressInfo_BUILDING_NAME);
            address.setField(AddressInfo.BUILDING_FLOOR, 
                            AddressInfo_BUILDING_FLOOR);
            address.setField(AddressInfo.BUILDING_ROOM, 
                            AddressInfo_BUILDING_ROOM);
            address.setField(AddressInfo.BUILDING_ZONE, 
                            AddressInfo_BUILDING_ZONE);
            address.setField(AddressInfo.CROSSING1, AddressInfo_CROSSING1);
            address.setField(AddressInfo.CROSSING2, AddressInfo_CROSSING2);
            address.setField(AddressInfo.URL, AddressInfo_URL);
            address.setField(AddressInfo.PHONE_NUMBER, 
                            AddressInfo_PHONE_NUMBER);
            return address;
        }
        return null;
    }

    // JAVADOC COMMENT ELIDED
    public void setName(String name) {
        if (name == null) {
            throw new NullPointerException();
        }
        this.name = name;
    }

    // JAVADOC COMMENT ELIDED
    public void setDescription(String description) {
        this.description = description;
    }

    // JAVADOC COMMENT ELIDED
    public void setQualifiedCoordinates(QualifiedCoordinates coordinates) {
        if (coordinates != null) {
            latitude = coordinates.getLatitude();
            longitude = coordinates.getLongitude();
            altitude = coordinates.getAltitude();
            horizontalAccuracy = coordinates.getHorizontalAccuracy();
            verticalAccuracy = coordinates.getVerticalAccuracy();
            isCoordinates = true;
        } else {
            latitude = 0;
            longitude = 0;
            altitude = 0;
            horizontalAccuracy = 0;
            verticalAccuracy = 0;
            isCoordinates = false;
        }
    }

    // JAVADOC COMMENT ELIDED
    public void setAddressInfo(AddressInfo address) {
        if (address != null) {
            numAddressInfoFields = 0;
            AddressInfo_EXTENSION = address.getField(AddressInfo.EXTENSION);
            if(AddressInfo_EXTENSION != null) {
                numAddressInfoFields++;
            }
            AddressInfo_STREET = address.getField(AddressInfo.STREET);
            if(AddressInfo_STREET != null) {
                numAddressInfoFields++;
            }
            AddressInfo_POSTAL_CODE = address.getField(AddressInfo.POSTAL_CODE);
            if(AddressInfo_POSTAL_CODE != null) {
                numAddressInfoFields++;
            }
            AddressInfo_CITY = address.getField(AddressInfo.CITY);
            if(AddressInfo_CITY != null) {
                numAddressInfoFields++;
            }
            AddressInfo_COUNTY = address.getField(AddressInfo.COUNTY);
            if(AddressInfo_COUNTY != null) {
                numAddressInfoFields++;
            }
            AddressInfo_STATE = address.getField(AddressInfo.STATE);
            if(AddressInfo_STATE != null) {
                numAddressInfoFields++;
            }
            AddressInfo_COUNTRY = address.getField(AddressInfo.COUNTRY);
            if(AddressInfo_COUNTRY != null) {
                numAddressInfoFields++;
            }
            AddressInfo_COUNTRY_CODE = 
                    address.getField(AddressInfo.COUNTRY_CODE);
            if(AddressInfo_COUNTRY_CODE != null) {
                numAddressInfoFields++;
            }
            AddressInfo_DISTRICT = address.getField(AddressInfo.DISTRICT);
            if(AddressInfo_DISTRICT != null) {
                numAddressInfoFields++;
            }
            AddressInfo_BUILDING_NAME = 
                    address.getField(AddressInfo.BUILDING_NAME);
            if(AddressInfo_BUILDING_NAME != null) {
                numAddressInfoFields++;
            }
            AddressInfo_BUILDING_FLOOR = 
                    address.getField(AddressInfo.BUILDING_FLOOR);
            if(AddressInfo_BUILDING_FLOOR != null) {
                numAddressInfoFields++;
            }
            AddressInfo_BUILDING_ROOM = 
                    address.getField(AddressInfo.BUILDING_ROOM);
            if(AddressInfo_BUILDING_ROOM != null) {
                numAddressInfoFields++;
            }
            AddressInfo_BUILDING_ZONE = 
                    address.getField(AddressInfo.BUILDING_ZONE);
            if(AddressInfo_BUILDING_ZONE != null) {
                numAddressInfoFields++;
            }
            AddressInfo_CROSSING1 = address.getField(AddressInfo.CROSSING1);
            if(AddressInfo_CROSSING1 != null) {
                numAddressInfoFields++;
            }
            AddressInfo_CROSSING2 = address.getField(AddressInfo.CROSSING2);
            if(AddressInfo_CROSSING2 != null) {
                numAddressInfoFields++;
            }
            AddressInfo_URL = address.getField(AddressInfo.URL);
            if(AddressInfo_URL != null) {
                numAddressInfoFields++;
            }
            AddressInfo_PHONE_NUMBER = 
                    address.getField(AddressInfo.PHONE_NUMBER);
            if(AddressInfo_PHONE_NUMBER != null) {
                numAddressInfoFields++;
            }
            isAddressInfo = true;
        } else {
            AddressInfo_EXTENSION = null;
            AddressInfo_STREET = null;
            AddressInfo_POSTAL_CODE = null;
            AddressInfo_CITY = null;
            AddressInfo_COUNTY = null;
            AddressInfo_STATE = null;
            AddressInfo_COUNTRY = null;
            AddressInfo_COUNTRY_CODE = null;
            AddressInfo_DISTRICT = null;
            AddressInfo_BUILDING_NAME = null;
            AddressInfo_BUILDING_FLOOR = null;
            AddressInfo_BUILDING_ROOM = null;
            AddressInfo_BUILDING_ZONE = null;
            AddressInfo_CROSSING1 = null;
            AddressInfo_CROSSING2 = null;
            AddressInfo_URL = null;
            AddressInfo_PHONE_NUMBER = null;
            numAddressInfoFields = 0;
            isAddressInfo = false;
        }
    }

    // JAVADOC COMMENT ELIDED
    String asString() {
        StringBuffer buf = new StringBuffer();
        String coordinates;
        if (isCoordinates) {
            coordinates = "Lat: " + latitude +
		" Lon: " + longitude;
        } else {
            coordinates = "null";
        }
        return "Landmark: { storeName = " + storeName +
	    " recordId = " + recordId +
	    " name = " + name +
	    " description = " + description +
	    " coordinates = " + coordinates +
	    " addressInfo = " + getAddressInfo() + " }";
    }

    // JAVADOC COMMENT ELIDED
    public boolean equals(Object o) {
        if (!(o instanceof LandmarkImpl)) {
            return false;
        }
        if (this == o) {
            return true;
        }
        LandmarkImpl lm = (LandmarkImpl)o;
        boolean idEquals = recordId == lm.recordId;
        boolean storeEquals = (storeName == lm.storeName) ||
	    ((storeName != null) && storeName.equals(lm.storeName));
        return idEquals && storeEquals;
    }

    // JAVADOC COMMENT ELIDED
    static {
        initNativeClass();
    }

    // JAVADOC COMMENT ELIDED
    private native static void initNativeClass();
    
}