From 2d4ec896fcf2d7f2a175f506217e6fb423b99689 Mon Sep 17 00:00:00 2001 From: nicobo Date: Sat, 10 Nov 2012 12:03:46 +0100 Subject: [PATCH] + findAll( liste des themes ) -> fait toutes les requetes necessaires et retourne la liste des pois --- AndroidManifest.xml | 2 +- bin/AndroidManifest.xml | 2 +- .../dataprovence/DataprovenceFileHelper.class | Bin 1670 -> 1638 bytes .../dataprovence/DataprovenceHelper.class | Bin 4658 -> 8248 bytes .../dataprovence/DataprovenceParserTest.class | Bin 2221 -> 3292 bytes bin/dataprovence.jar | Bin 32550 -> 34728 bytes .../dataprovence/DataprovenceFileHelper.java | 4 +- .../data/dataprovence/DataprovenceHelper.java | 113 ++++++++++++++++-- .../dataprovence/DataprovenceParserTest.java | 58 +++++++-- 9 files changed, 157 insertions(+), 22 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 0754fa9..807c284 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -3,7 +3,7 @@ android:versionCode="1" android:versionName="1.0"> - + - + pd!0jKF+l+Vz#MEHf*6Cq#p6+^`Ep5n_^(cqV;@QAkA8 zEUF*q4;=Ijku8EId#}CDS!?Zm>FZnGkDte902MTDyB#MO$PMWS&58>z_D}Ylv_^wu-s@lozC`&vwv`EVFEd2i%qj&p@@=di!HN^ zX^AQIBtoKs8TBddv?Xmk+57kkLpjp8dL(PY@@?)>A@3vF}+c>!R+&st#wkRWTrjU+i6 zLrC#YhVfa%iEa4Oe9CalqQIm4W^k{H**~)aYM7&Zo;DU4ZiFfpi0Z^;hyguZ5}L%K ZF&{>=j9Eqveb$L)K?RF-_m1O<2G)$>yn zEz^en+x?}jxZPfPA8$5WAtlN#@LwjYA$N(~y8kLU%RNiYefHD-9QWOK|HM3T+d(FH zX2`l@ll3jn-Iw4~*D#h5La~iR@gRxE0BMF4#ABE)^>d+wdey9cW28f_bV^T$$<pBmv&B{DvUh;-)LNWRgbrysk2}k%>@<>>W<*{W}xt_w61j>5DsW1K|r7GEy IWF9a61HgMq+5i9m diff --git a/bin/classes/bma/groomservice/data/dataprovence/DataprovenceHelper.class b/bin/classes/bma/groomservice/data/dataprovence/DataprovenceHelper.class index d5b05fbc1d35bc74d55cbf2f58d1895a012922bc..5daadbe10c4e30a06604fc420bc50779cede841d 100644 GIT binary patch literal 8248 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 literal 4658 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 delta 1052 zcmZ9LT~8BH5Qg8g-Lkb^fi7*KicnCYv|ARj#ZMH3V$~Ku5$hMOrPN|=$#zkRF~n=H zn)3s^G+t=LCwM8>u&_)eIUrOf7rW1a+9N5DknoA2=2Ra!V zGqdK=OWCriFB*E0Lb|Y5LN`NurP=42$QR74A!8r*bImrnqZfS=f(#!1&F-yf}dX&ybcuyEQ~?EAhfxhh+;@Wj3HKO)_jRpT4VCC66{N$+%$8kc!FhleIU664SBmAKlZ8(K-31j@N=(WW$ z!9RBj{}eSx0+TY%;{xxs2OBQQxJ-Jd>}uut z7=LE}-hY>xbU`;V<+yoPH)iw2vITO$fh>djUk6F$Hb-=s(Rl4>pxp*$jgj^pbQ*y` zZ$M+H3TH@RYmh%cSs{x6k7cKLpa~+}*4*KxlU%<6A6n_e(6*iJ7e$L?i*LZ6u3~pG zth6f~YX~f_qesB>2Gq3DU&TO54X@(hWavE<TImWW(~3KyiGofNP;l4Nij!90lB~H<+FMK diff --git a/bin/dataprovence.jar b/bin/dataprovence.jar index f4105d0d1400f1430bd77036e55c1ca798eff274..76394262a0f4567b15bbc730e2e7123bb966ea6e 100644 GIT binary patch delta 6551 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 W9~iVlli*Fpl7J0hBRU8DEBYTvMwx8@ delta 4366 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 e4Lkgb=Mkf>Ch?z(4FDkhlXnRLfP)u*tN#Jt`%@ filters) throws IOException, - ParseException { + protected PoiList parse(Collection filters) throws IOException { InputStream fis = null; try { fis = Thread.currentThread().getContextClassLoader() diff --git a/src/bma/groomservice/data/dataprovence/DataprovenceHelper.java b/src/bma/groomservice/data/dataprovence/DataprovenceHelper.java index a1e3928..afe53a4 100644 --- a/src/bma/groomservice/data/dataprovence/DataprovenceHelper.java +++ b/src/bma/groomservice/data/dataprovence/DataprovenceHelper.java @@ -5,10 +5,15 @@ import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; -import java.text.ParseException; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -23,6 +28,34 @@ public class DataprovenceHelper { Logger logger = LoggerFactory.getLogger(DataprovenceHelper.class); + // + // Constantes des "thèmes" + // + + public static final String THEME_PLEINAIR = "PLEIN AIR"; + public static final String THEME_RESTAURATION = "RESTAURATION"; + public static final String THEME_SPORT = "SPORT"; + public static final String THEME_CULTURE = "CULTURE"; + + public static final Map DATASETS = new HashMap(); + static { + DATASETS.put(THEME_PLEINAIR, new String[] { "ServicesDeGuides", + "LocationDeVelo", "CentresEquestres", + "AccompagnateurDeMoyenneMontagneEtMoniteursDEscalade", + "ParcsAThemesEtAnimaliers", "GolfsEtMinigolfs", + "ParcsAcrobatiquesForestiers", "ParcsEtJardins", + "SitesNaturelsIncontournables", "Plages" }); + DATASETS.put(THEME_RESTAURATION, new String[] { + "RestaurantsGastronomiques", "Restaurants" }); + DATASETS.put(THEME_SPORT, new String[] { "SportNautique", + "LocationDeVelo", "CentresEquestres", + "AccompagnateurDeMoyenneMontagneEtMoniteursDEscalade", + "GolfsEtMinigolfs", "ParcsAcrobatiquesForestiers" }); + DATASETS.put(THEME_CULTURE, new String[] { "ServicesDeGuides", + "SitesNaturelsIncontournables", "Musees", + "MonumentsEtStesCulturels" }); + } + private final String rootUrl; private final String datasetName; private final Collection filters; @@ -43,6 +76,44 @@ public class DataprovenceHelper { datasetName, null); } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((datasetName == null) ? 0 : datasetName.hashCode()); + result = prime * result + ((filters == null) ? 0 : filters.hashCode()); + result = prime * result + ((rootUrl == null) ? 0 : rootUrl.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + DataprovenceHelper other = (DataprovenceHelper) obj; + if (datasetName == null) { + if (other.datasetName != null) + return false; + } else if (!datasetName.equals(other.datasetName)) + return false; + if (filters == null) { + if (other.filters != null) + return false; + } else if (!filters.equals(other.filters)) + return false; + if (rootUrl == null) { + if (other.rootUrl != null) + return false; + } else if (!rootUrl.equals(other.rootUrl)) + return false; + return true; + } + /** * Lit le contenu total du flux dans une {@link String} */ @@ -58,8 +129,7 @@ public class DataprovenceHelper { * Lit un {@link PoiList} depuis un {@link InputStream} donné * Attention à bien fermer l'input stream après. */ - protected PoiList getContent(InputStream is) throws IOException, - ParseException { + protected PoiList getContent(InputStream is) throws IOException { String json = readStream(is); logger.debug("json={}", json); @@ -69,8 +139,7 @@ public class DataprovenceHelper { return all; } - protected PoiList parse(Collection filters) throws IOException, - ParseException { + protected PoiList parse(Collection filters) throws IOException { Collection ff = filters; if (ff == null) { @@ -108,9 +177,39 @@ public class DataprovenceHelper { } } - public List find(Collection filters) throws IOException, - ParseException { + public List find(Collection filters) throws IOException { PoiList gl = parse(filters); return Arrays.asList(gl.d); } + + protected static Collection findHelpers( + Collection tags) { + ArrayList helpers = new ArrayList(); + for (String tag : tags) { + String[] datasets = DATASETS.get(tag); + for (int d = 0; d < datasets.length; d++) { + helpers.add(new DataprovenceHelper(datasets[d])); + } + } + return helpers; + } + + public static List findAll(Collection tags) throws IOException { + + Set helpers = new HashSet(); + helpers.addAll(findHelpers(tags)); + + TreeSet pois = new TreeSet(); + for (DataprovenceHelper helper : findHelpers(tags)) { + pois.addAll(helper.find(null)); + } + + return new ArrayList(pois); + + } + + public static List findAll(String[] tags) throws IOException { + return findAll(Arrays.asList(tags)); + } + } diff --git a/src/bma/groomservice/data/dataprovence/DataprovenceParserTest.java b/src/bma/groomservice/data/dataprovence/DataprovenceParserTest.java index b6e2f35..837fee7 100644 --- a/src/bma/groomservice/data/dataprovence/DataprovenceParserTest.java +++ b/src/bma/groomservice/data/dataprovence/DataprovenceParserTest.java @@ -4,26 +4,38 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; -import junit.framework.TestCase; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import android.test.AndroidTestCase; import bma.groomservice.data.Filter; import bma.groomservice.data.Poi; -public class DataprovenceParserTest extends TestCase { +public class DataprovenceParserTest extends AndroidTestCase { Logger logger = LoggerFactory.getLogger(DataprovenceParserTest.class); + // DataprovenceHelper parser = new DataprovenceHelper( + // "RestaurantsGastronomiques"); + DataprovenceHelper parser; + + @Override + protected void setUp() throws Exception { + super.setUp(); + parser = new DataprovenceFileHelper( + "RestaurantsGastronomiques_cdtRestaurant.json"); + } + + @Override + protected void tearDown() throws Exception { + parser = null; + super.tearDown(); + } + public void testRestaurantsGastronomiques() { Collection filters = new ArrayList(); filters.add(Filter.eq("type", "cdt:Restaurant")); try { - // DataprovenceHelper parser = new DataprovenceHelper( - // "RestaurantsGastronomiques"); - DataprovenceHelper parser = new DataprovenceFileHelper( - "RestaurantsGastronomiques_cdtRestaurant.json"); List gs = parser.find(filters); logger.debug("RestaurantsGastronomiques={}", gs); @@ -35,9 +47,6 @@ public class DataprovenceParserTest extends TestCase { public void testParcsEtJardins() { try { - DataprovenceHelper parser = new DataprovenceHelper("ParcsEtJardins"); - // DataprovenceHelper parser = new DataprovenceFileHelper( - // "ParcsEtJardins.json"); List gs = parser.find(null); logger.debug("ParcsEtJardins={}", gs); @@ -46,4 +55,33 @@ public class DataprovenceParserTest extends TestCase { fail(e.getMessage()); } } + + public void testfindHelpersCulture() { + try { + List pois = DataprovenceHelper + .findAll(new String[] { "CULTURE" }); + assertEquals(4, pois.size()); + assertTrue(pois + .contains(new DataprovenceHelper("ServicesDeGuides"))); + assertTrue(pois.contains(new DataprovenceHelper( + "SitesNaturelsIncontournables"))); + assertTrue(pois.contains(new DataprovenceHelper("Musees"))); + assertTrue(pois.contains(new DataprovenceHelper( + "MonumentsEtStesCulturels"))); + } catch (Exception e) { + e.printStackTrace(System.err); + fail(e.getMessage()); + } + } + + public void testfindHelpersCultureSport() { + try { + List pois = DataprovenceHelper.findAll(new String[] { + "CULTURE", "PLEIN AIR" }); + assertEquals(12, pois.size()); + } catch (Exception e) { + e.printStackTrace(System.err); + fail(e.getMessage()); + } + } }