⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keywordssearcher.java

📁 联合国农粮署牵头开发的geonetwork源代码最新版
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
					sSouth = sLowCorner.substring(sLowCorner.indexOf(' ')).trim();				}				// uppercorner				Value upperCorner = resultsTable.getValue(row, 3);				String sUpperCorner = "";				String sWest = "";				String sNorth = "";				if (upperCorner != null) {					sUpperCorner = upperCorner.toString();					sWest = sUpperCorner.substring(0,							sUpperCorner.indexOf(' ')).trim();					sNorth = sUpperCorner.substring(sUpperCorner.indexOf(' '))							.trim();				}				KeywordBean kb = new KeywordBean(idKeyword, sValue,						sDefinition, sUri, sEast, sWest, sSouth, sNorth,						sThesaurusName, false, _lang);				_results.add(kb);				idKeyword++;			}		}		}	}	public void searchBN(ServiceContext srvContext, Element params, String request)	throws Exception {		// TODO : Add geonetinfo elements.		String id = Util.getParam(params, "id");		String sThesaurusName = Util.getParam(params, "thesaurus");		Thesaurus thesaurus = _tm.getThesaurusByName(sThesaurusName);		String _lang = srvContext.getLanguage();		searchBN(id, sThesaurusName, request, _lang);	}	public void searchBN(String id, String sThesaurusName, String request, String _lang)	throws Exception {		Thesaurus thesaurus = _tm.getThesaurusByName(sThesaurusName);		_results = new ArrayList<KeywordBean>();		String _query = "SELECT prefLab, note, id "			+ " from {id} rdf:type {skos:Concept};"			+ " skos:prefLabel {prefLab};"			+ " [skos:"+request+" {b}];"			+ " [skos:scopeNote {note} WHERE lang(note) LIKE \""+_lang+"\"] "			+ " WHERE lang(prefLab) LIKE \""+_lang+"\""			+ " AND b LIKE \"*"+id+"\""			+ " IGNORE CASE "			+ " USING NAMESPACE skos=<http://www.w3.org/2004/02/skos/core#>, gml=<http://www.opengis.net/gml#> ";		//	Perform request		QueryResultsTable resultsTable = thesaurus.performRequest(_query);		int rowCount = resultsTable.getRowCount();		int idKeyword = 0;		for (int row = 0; row < rowCount; row++) {			// preflab			Value value = resultsTable.getValue(row, 0);			String sValue = "";			if (value != null) {				sValue = value.toString();			}//			 uri (= id in RDF file != id in list)			Value uri = resultsTable.getValue(row, 2);			String sUri = "";			if (uri != null) {				sUri = uri.toString();			}			KeywordBean kb = new KeywordBean(idKeyword, sValue,					"", sUri, "", "", "", "",					sThesaurusName, false, _lang);			_results.add(kb);			idKeyword++;		}	}	public void findEnclosedGeoKeyword(String sKeywordCode){		_query = "SELECT prefLab, note, id, lowc, uppc "			+ " FROM {id} rdf:type {skos:Concept}; "			+ " skos:prefLabel {prefLab};"			+ " [skos:scopeNote {note} WHERE lang(note) LIKE \""+_lang+"\"]; "			+ " [gml:BoundedBy {} gml:lowerCorner {lowc}]; "			+ " [gml:BoundedBy {} gml:upperCorner {uppc}] "			+ " WHERE lang(prefLab) LIKE \""+_lang+"\""			+ " AND prefLab LIKE \""			+ sKeywordCode			+ "*\" "			+ " USING NAMESPACE skos=<http://www.w3.org/2004/02/skos/core#>, gml=<http://www.opengis.net/gml#> ";	}	public int getNbResults() {		return _results.size();	}	public void sortResults(String tri) {		_sortBy = tri;		if ("label".equals(tri)) {			// on tri la collection par code libelle			Collections.sort((List) _results, new Comparator() {				// M閠hode de comparaison				public int compare(final Object o1, final Object o2) {					final KeywordBean kw1 = (KeywordBean) o1;					final KeywordBean kw2 = (KeywordBean) o2;					return kw1.getValue().compareToIgnoreCase(kw2.getValue());				}			});		}		if ("definition".equals(tri)) {			// on tri la collection par code libelle			Collections.sort((List) _results, new Comparator() {				// M閠hode de comparaison				public int compare(final Object o1, final Object o2) {					final KeywordBean kw1 = (KeywordBean) o1;					final KeywordBean kw2 = (KeywordBean) o2;					return kw1.getDefinition().compareToIgnoreCase(							kw2.getDefinition());				}			});		}	}	public Element getResults(Element params) throws Exception {		Element elDescKeys = new Element("descKeys");		// Return only the n first elements according to GUI.		int nbResults = 36000;		// FIXME		if (params.getChild("nbResults") != null)			nbResults = Util.getParam(params, "nbResults", this.getNbResults());		nbResults = (this.getNbResults()<=nbResults?this.getNbResults():nbResults);		//for (int i = from; i <= to; i++) {		for (int i = 0; i <= nbResults - 1; i++) {			KeywordBean kb = (KeywordBean) _results.get(i);			Element elKeyword = new Element("keyword");			Element elSelected = new Element("selected");			// TODO : Add Thesaurus name			if (kb.isSelected()) {				elSelected.addContent("true");			} else {				elSelected.addContent("false");			}			Element elId = new Element("id");			elId.addContent(Integer.toString(kb.getId()));			Element elValue = new Element("value");			elValue.addContent(kb.getValue());			Element elDefiniton = new Element("definition");			elDefiniton.addContent(kb.getDefinition());			Element elUri = new Element("uri");			elUri.addContent(kb.getCode());			elKeyword.addContent(elSelected);			elKeyword.addContent(elId);			elKeyword.addContent(elValue);			elKeyword.addContent(elDefiniton);			elKeyword.addContent(elUri);			elDescKeys.addContent(elKeyword);		}		return elDescKeys;	}	public void selectUnselectKeywords(Element params) {		List listIdKeywordsSelected = params.getChildren("pIdKeyword");		for (int i = 0; i < listIdKeywordsSelected.size(); i++) {			Element el = (Element) listIdKeywordsSelected.get(i);			int keywordId = Integer.decode(el.getTextTrim());			for (int j = 0; j < _results.size(); j++) {				if (((KeywordBean) _results.get(j)).getId() == keywordId) {					((KeywordBean) _results.get(j))							.setSelected(!((KeywordBean) _results.get(j))									.isSelected());				}			}		}	}	/**	 * @return an element describing the list of selected keywords	 */	public Element getSelectedKeywords() {		Element elDescKeys = new Element("descKeys");		int nbSelectedKeywords = 0;		for (int i = 0; i < this.getNbResults(); i++) {			KeywordBean kb = (KeywordBean) _results.get(i);			if (kb.isSelected()) {				Element elKeyword = new Element("keyword");				// keyword type				String thesaurusType = kb.getThesaurus();				thesaurusType = thesaurusType.replace('.', '-');				thesaurusType =  thesaurusType.split("-")[1];				elKeyword.setAttribute("type", thesaurusType);				Element elValue = new Element("value");				elValue.addContent(kb.getValue());				Element elCode = new Element("code");				String code=kb.getRelativeCode();				//code = code.split("#")[1];				elCode.addContent(code);				if (kb.getCoordEast() != null && kb.getCoordWest() != null						&& kb.getCoordSouth() != null						&& kb.getCoordNorth() != null) {					Element elBbox = new Element("geo");					Element elEast = new Element("east");					elEast.addContent(kb.getCoordEast());					Element elWest = new Element("west");					elWest.addContent(kb.getCoordWest());					Element elSouth = new Element("south");					elSouth.addContent(kb.getCoordSouth());					Element elNorth = new Element("north");					elNorth.addContent(kb.getCoordNorth());					elBbox.addContent(elEast);					elBbox.addContent(elWest);					elBbox.addContent(elSouth);					elBbox.addContent(elNorth);					elKeyword.addContent(elBbox);				}				elKeyword.addContent(elCode);				elKeyword.addContent(elValue);				elDescKeys.addContent(elKeyword);				nbSelectedKeywords++;			}		}		Element elNbTot = new Element("nbtot");		elNbTot.addContent(Integer.toString(nbSelectedKeywords));		elDescKeys.addContent(elNbTot);		return elDescKeys;	}	/**	 * @return a collection of descKeys element describing the list of selected keywords	 */	public ArrayList getSelectedKeywordsInDescKeys() {		ArrayList listSelectedKeywords = new ArrayList();		ArrayList listElDescKeys = new ArrayList();		// Reccuperer tous les mots cl

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -