/******************************************************************************* * Gisgraphy Project * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA * * Copyright 2008 Gisgraphy project * David Masclet <davidmasclet@gisgraphy.com> * * *******************************************************************************/ package com.gisgraphy.street; import com.gisgraphy.domain.geoloc.entity.AlternateName; import com.gisgraphy.domain.geoloc.entity.AlternateOsmName; import com.gisgraphy.domain.geoloc.entity.OpenStreetMap; import com.gisgraphy.domain.geoloc.entity.Street; /** * Factory to create a street from an openstreetMap entity * * @author <a href="mailto:david.masclet@gisgraphy.com">David Masclet</a> * */ public class StreetFactory implements IStreetFactory { /* (non-Javadoc) * @see com.gisgraphy.domain.geoloc.service.geoloc.street.IStreetFactory#create(com.gisgraphy.domain.geoloc.entity.OpenStreetMap) */ public Street create(OpenStreetMap openstreetmap){ if (openstreetmap !=null){ Street street = new Street(); street.setOpenstreetmapId(openstreetmap.getOpenstreetmapId()); street.setFeatureId(openstreetmap.getGid()); street.setName(openstreetmap.getName()); street.setLocation(openstreetmap.getLocation()); street.setCountryCode(openstreetmap.getCountryCode()); street.setStreetType(openstreetmap.getStreetType()); street.setStreetRef(openstreetmap.getStreetRef()); street.setLength(openstreetmap.getLength()); street.setOneWay(openstreetmap.isOneWay()); street.setIsIn(openstreetmap.getIsIn()); street.setIsInPlace(openstreetmap.getIsInPlace()); street.setIsInZip(openstreetmap.getIsInZip()); street.setZipCode(openstreetmap.getZipCode()); street.setIsInAdm(openstreetmap.getIsInAdm()); street.setAdm1Name(openstreetmap.getAdm1Name()); street.setAdm2Name(openstreetmap.getAdm2Name()); street.setAdm3Name(openstreetmap.getAdm3Name()); street.setAdm4Name(openstreetmap.getAdm4Name()); street.setAdm5Name(openstreetmap.getAdm5Name()); street.setFullyQualifiedName(openstreetmap.getFullyQualifiedName()); street.setPopulation(openstreetmap.getPopulation()); street.setHouseNumbers(openstreetmap.getHouseNumbers()); street.setLanes(openstreetmap.getLanes()); street.setToll(openstreetmap.isToll()); street.setSurface(openstreetmap.getSurface()); street.setMaxSpeed(openstreetmap.getMaxSpeed()); street.setSpeedMode(openstreetmap.getSpeedMode()); street.setMaxSpeedBackward(openstreetmap.getMaxSpeedBackward()); street.setAzimuthStart(openstreetmap.getAzimuthStart()); street.setAzimuthEnd(openstreetmap.getAzimuthEnd()); street.setLabel(openstreetmap.getLabel()); street.setLabelPostal(openstreetmap.getLabelPostal()); if (openstreetmap.getAlternateLabels()!=null){ street.addAlternateLabels(openstreetmap.getAlternateLabels()); } if (openstreetmap.getAlternateNames()!=null){ for (AlternateOsmName alternateOsmName : openstreetmap.getAlternateNames()){ street.addAlternateName(new AlternateName(alternateOsmName.getName(),alternateOsmName.getSource())); } } if (openstreetmap.getIsInCityAlternateNames()!=null){ street.addIsInCitiesAlternateNames(openstreetmap.getIsInCityAlternateNames()); } return street; } return null; } }