diff --git a/Flickr4Java/src/main/java/com/flickr4java/flickr/photos/Photo.java b/Flickr4Java/src/main/java/com/flickr4java/flickr/photos/Photo.java index dfb6aae5..e93f5cbe 100644 --- a/Flickr4Java/src/main/java/com/flickr4java/flickr/photos/Photo.java +++ b/Flickr4Java/src/main/java/com/flickr4java/flickr/photos/Photo.java @@ -5,6 +5,7 @@ import com.flickr4java.flickr.FlickrException; import com.flickr4java.flickr.people.User; +import com.flickr4java.flickr.places.Place; import com.flickr4java.flickr.stats.Stats; import com.flickr4java.flickr.stats.StatsInterface; import com.flickr4java.flickr.tags.Tag; @@ -181,6 +182,14 @@ protected synchronized SimpleDateFormat initialValue() { private boolean hasPeople; + private Place locality; + + private Place county; + + private Place region; + + private Place country; + /** * Stats on views, comments and favorites. Only set on {@link StatsInterface#getPopularPhotos} call. */ @@ -1248,5 +1257,36 @@ public void setIsHasPeople(boolean hasPeople) { this.hasPeople = hasPeople; } + public Place getLocality() { + return locality; + } + + public void setLocality(Place locality) { + this.locality = locality; + } + + public Place getCounty() { + return county; + } + + public void setCounty(Place county) { + this.county = county; + } + + public Place getRegion() { + return region; + } + + public void setRegion(Place region) { + this.region = region; + } + + public Place getCountry() { + return country; + } + + public void setCountry(Place country) { + this.country = country; + } } diff --git a/Flickr4Java/src/main/java/com/flickr4java/flickr/photos/PhotoUtils.java b/Flickr4Java/src/main/java/com/flickr4java/flickr/photos/PhotoUtils.java index f6c4501e..9442fed4 100644 --- a/Flickr4Java/src/main/java/com/flickr4java/flickr/photos/PhotoUtils.java +++ b/Flickr4Java/src/main/java/com/flickr4java/flickr/photos/PhotoUtils.java @@ -8,6 +8,7 @@ import org.w3c.dom.Text; import com.flickr4java.flickr.people.User; +import com.flickr4java.flickr.places.Place; import com.flickr4java.flickr.tags.Tag; import com.flickr4java.flickr.util.XMLUtilities; @@ -416,6 +417,42 @@ public static final Photo createPhoto(Element photoElement, Element defaultEleme } } + try { + Place place = null; + Element element = (Element) photoElement.getElementsByTagName("locality").item(0); + place = new Place(element.getAttribute("place_id"), element.getTextContent(), element.getAttribute("woeid")); + photo.setLocality(place); + } catch(IndexOutOfBoundsException e) { + } catch(NullPointerException e) { + } + + try { + Place place = null; + Element element = (Element) photoElement.getElementsByTagName("county").item(0); + place = new Place(element.getAttribute("place_id"), element.getTextContent(), element.getAttribute("woeid")); + photo.setCounty(place); + } catch(IndexOutOfBoundsException e) { + } catch(NullPointerException e) { + } + + try { + Place place = null; + Element element = (Element) photoElement.getElementsByTagName("region").item(0); + place = new Place(element.getAttribute("place_id"), element.getTextContent(), element.getAttribute("woeid")); + photo.setRegion(place); + } catch(IndexOutOfBoundsException e) { + } catch(NullPointerException e) { + } + + try { + Place place = null; + Element element = (Element) photoElement.getElementsByTagName("country").item(0); + place = new Place(element.getAttribute("place_id"), element.getTextContent(), element.getAttribute("woeid")); + photo.setCountry(place); + } catch(IndexOutOfBoundsException e) { + } catch(NullPointerException e) { + } + return photo; } diff --git a/Flickr4Java/src/main/java/com/flickr4java/flickr/places/Place.java b/Flickr4Java/src/main/java/com/flickr4java/flickr/places/Place.java index d865f1d0..efef1e49 100644 --- a/Flickr4Java/src/main/java/com/flickr4java/flickr/places/Place.java +++ b/Flickr4Java/src/main/java/com/flickr4java/flickr/places/Place.java @@ -62,6 +62,12 @@ public Place(String placeId, String name, int placeType) { this.placeType = placeType; } + public Place(String placeId, String name, String woeId) { + this.name = name; + this.placeId = placeId; + this.woeId = woeId; + } + public String getName() { return name; }