- Timestamp:
- 2012-05-22T13:01:04+12:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/DocumentAction.java
r25355 r25635 35 35 import java.util.HashSet; 36 36 import java.io.File; 37 import java.io.Serializable; 37 38 38 39 import org.apache.log4j.*; … … 90 91 Element request = (Element) GSXML.getChildByTagName(message, GSXML.REQUEST_ELEM); 91 92 Element cgi_paramList = (Element) GSXML.getChildByTagName(request, GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 92 HashMap params = GSXML.extractParams(cgi_paramList, false);93 HashMap<String, Serializable> params = GSXML.extractParams(cgi_paramList, false); 93 94 94 95 // just in case there are some that need to get passed to the services … … 360 361 // Create a parameter list to specify the required metadata information 361 362 362 HashSet meta_names = new HashSet();363 HashSet<String> meta_names = new HashSet<String>(); 363 364 meta_names.add("Title"); // the default 364 365 if (format_elem != null) … … 722 723 // do the query again to get term info 723 724 Element cgi_param_list = (Element) GSXML.getChildByTagName(request, GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 724 HashMap params = GSXML.extractParams(cgi_param_list, false);725 HashMap<String, Serializable> params = GSXML.extractParams(cgi_param_list, false); 725 726 726 727 HashMap previous_params = (HashMap) params.get("p"); … … 767 768 Element metadata_list = (Element) GSXML.getNodeByPath(mr_query_response, metadata_path); 768 769 769 HashSet query_term_variants = new HashSet();770 HashSet<String> query_term_variants = new HashSet<String>(); 770 771 NodeList equivalent_terms_nodelist = query_term_list_element.getElementsByTagName("equivTermList"); 771 772 if (equivalent_terms_nodelist == null || equivalent_terms_nodelist.getLength() == 0) … … 809 810 } 810 811 811 ArrayList phrase_query_term_variants_hierarchy = new ArrayList();812 ArrayList<ArrayList<HashSet<String>>> phrase_query_term_variants_hierarchy = new ArrayList<ArrayList<HashSet<String>>>(); 812 813 813 814 Element query_element = GSXML.getNamedElement(metadata_list, GSXML.METADATA_ELEM, GSXML.NAME_ATT, "query"); 814 815 String performed_query = GSXML.getNodeText(query_element) + " "; 815 816 816 ArrayList phrase_query_p_term_variants_list = new ArrayList();817 ArrayList<HashSet<String>> phrase_query_p_term_variants_list = new ArrayList<HashSet<String>>(); 817 818 int term_start = 0; 818 819 boolean in_term = false; … … 840 841 { 841 842 842 HashSet phrase_query_p_term_x_variants = new HashSet();843 HashSet<String> phrase_query_p_term_x_variants = new HashSet<String>(); 843 844 844 845 NodeList term_equivalent_terms_nodelist = term_element.getElementsByTagName("equivTermList"); … … 879 880 { 880 881 phrase_query_term_variants_hierarchy.add(phrase_query_p_term_variants_list); 881 phrase_query_p_term_variants_list = new ArrayList ();882 phrase_query_p_term_variants_list = new ArrayList<HashSet<String>>(); 882 883 } 883 884 } … … 898 899 } 899 900 900 phrase_query_p_term_variants_list = new ArrayList ();901 phrase_query_p_term_variants_list = new ArrayList<HashSet<String>>(); 901 902 } 902 903 } … … 908 909 * Highlights query terms in a piece of text. 909 910 */ 910 private Element highlightQueryTermsInternal(String content, HashSet query_term_variants, ArrayListphrase_query_term_variants_hierarchy)911 private Element highlightQueryTermsInternal(String content, HashSet<String> query_term_variants, ArrayList<ArrayList<HashSet<String>>> phrase_query_term_variants_hierarchy) 911 912 { 912 913 // Convert the content string to an array of characters for speed … … 915 916 916 917 // Now skim through the content, identifying word matches 917 ArrayList word_matches = new ArrayList();918 ArrayList<WordMatch> word_matches = new ArrayList<WordMatch>(); 918 919 int word_start = 0; 919 920 boolean in_word = false; … … 978 979 } 979 980 980 ArrayList highlight_start_positions = new ArrayList();981 ArrayList highlight_end_positions = new ArrayList();981 ArrayList<Integer> highlight_start_positions = new ArrayList<Integer>(); 982 ArrayList<Integer> highlight_end_positions = new ArrayList<Integer>(); 982 983 983 984 // Deal with phrases now 984 ArrayList partial_phrase_matches = new ArrayList();985 ArrayList<PartialPhraseMatch> partial_phrase_matches = new ArrayList<PartialPhraseMatch>(); 985 986 for (int i = 0; i < word_matches.size(); i++) 986 987 { 987 WordMatch word_match = (WordMatch)word_matches.get(i);988 WordMatch word_match = word_matches.get(i); 988 989 989 990 // See if any partial phrase matches are extended by this word … … 992 993 for (int j = partial_phrase_matches.size() - 1; j >= 0; j--) 993 994 { 994 PartialPhraseMatch partial_phrase_match = (PartialPhraseMatch)partial_phrase_matches.remove(j);995 ArrayList phrase_query_p_term_variants_list = (ArrayList)phrase_query_term_variants_hierarchy.get(partial_phrase_match.query_phrase_number);995 PartialPhraseMatch partial_phrase_match = partial_phrase_matches.remove(j); 996 ArrayList phrase_query_p_term_variants_list = phrase_query_term_variants_hierarchy.get(partial_phrase_match.query_phrase_number); 996 997 HashSet phrase_query_p_term_x_variants = (HashSet) phrase_query_p_term_variants_list.get(partial_phrase_match.num_words_matched); 997 998 if (phrase_query_p_term_x_variants.contains(word_match.word)) … … 1006 1007 { 1007 1008 int last_highlight_index = highlight_end_positions.size() - 1; 1008 int last_highlight_end = ((Integer) highlight_end_positions.get(last_highlight_index)).intValue();1009 int last_highlight_end = highlight_end_positions.get(last_highlight_index).intValue(); 1009 1010 if (last_highlight_end > partial_phrase_match.start_position) 1010 1011 { 1011 1012 // There is an overlap, so remove the previous phrase match 1012 int last_highlight_start = ((Integer) highlight_start_positions.remove(last_highlight_index)).intValue();1013 int last_highlight_start = highlight_start_positions.remove(last_highlight_index).intValue(); 1013 1014 highlight_end_positions.remove(last_highlight_index); 1014 1015 partial_phrase_match.start_position = last_highlight_start; … … 1035 1036 for (int p = 0; p < phrase_query_term_variants_hierarchy.size(); p++) 1036 1037 { 1037 ArrayList phrase_query_p_term_variants_list = (ArrayList)phrase_query_term_variants_hierarchy.get(p);1038 ArrayList phrase_query_p_term_variants_list = phrase_query_term_variants_hierarchy.get(p); 1038 1039 HashSet phrase_query_p_term_1_variants = (HashSet) phrase_query_p_term_variants_list.get(0); 1039 1040 if (phrase_query_p_term_1_variants.contains(word_match.word)) … … 1060 1061 for (int i = 0; i < highlight_start_positions.size(); i++) 1061 1062 { 1062 int highlight_start = ((Integer) highlight_start_positions.get(i)).intValue();1063 int highlight_end = ((Integer) highlight_end_positions.get(i)).intValue();1063 int highlight_start = highlight_start_positions.get(i).intValue(); 1064 int highlight_end = highlight_end_positions.get(i).intValue(); 1064 1065 1065 1066 // Print anything before the highlight range
Note:
See TracChangeset
for help on using the changeset viewer.