*/
	@Override
	public List<ICanton> rechercher(CantonCritere critere) {
		if (null == critere) return Collections.emptyList();
		if (null != critere.getCodeISO2()) {
			return Collections.<ICanton>singletonList(mapParCodeIso.get(critere.getCodeISO2().toUpperCase()));
		}
		if (StringUtils.hasText(critere.getNom())) {
			String critereNom = critere.getNom().trim();
			List<ICanton> liste = new ArrayList<ICanton>();
			for (Canton canton : mapParId.values()) {
				int longueurChaine = critereNom.length();
				String[] nomCantons = canton.getNom().split("/");
				boolean nonTrouve = true;
				for (String nomCanton : nomCantons) {
					String nomCantonTrim = nomCanton.trim();
					if (nonTrouve && nomCantonTrim.length() >= longueurChaine) {
						if (critereNom.toUpperCase().equals(nomCantonTrim.substring(0,longueurChaine).toUpperCase())) {
							liste.add(canton);
							nonTrouve = false;
						}
					}
				}
			}
			return liste;
		}
		return Collections.emptyList();
	}