Changeset 5087
- Timestamp:
- 2003-08-04T11:44:06+12:00 (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/cdm/CollectionConfiguration.java
r5037 r5087 224 224 return self.metadataToString(command_element); 225 225 } 226 else if(command_element_name.equals(COLLECTIONMETADATA_CREATOR_ELEMENT)) { 227 return self.metadataToString(command_element); 228 } 229 else if(command_element_name.equals(COLLECTIONMETADATA_MAINTAINER_ELEMENT)) { 230 return self.metadataToString(command_element); 231 } 232 else if(command_element_name.equals(COLLECTIONMETADATA_PUBLIC_ELEMENT)) { 233 return self.metadataToString(command_element); 234 } 235 else if(command_element_name.equals(COLLECTIONMETADATA_BETA_ELEMENT)) { 236 return self.metadataToString(command_element); 237 } 226 238 else if(command_element_name.equals(PLUGIN_ELEMENT)) { 227 239 return self.pluginToString(command_element, show_extracted_namespace); … … 290 302 static final private String EXTRACTED_PREFIX = Utility.EXTRACTED_METADATA_NAMESPACE + MSMUtils.NS_SEP; 291 303 /** Gives the preferred ordering of commands */ 292 static final private String[] COMMAND_ORDER = {StaticStrings.COLLECTIONMETADATA_ ELEMENT, StaticStrings.SEARCHTYPE_ELEMENT, StaticStrings.PLUGIN_ELEMENT, StaticStrings.INDEXES_ELEMENT, StaticStrings.LEVELS_ELEMENT, StaticStrings.INDEX_DEFAULT_ELEMENT, StaticStrings.LANGUAGES_ELEMENT, StaticStrings.LANGUAGE_DEFAULT_ELEMENT, StaticStrings.SUBCOLLECTION_ELEMENT, StaticStrings.SUBCOLLECTION_INDEXES_ELEMENT, StaticStrings.SUBCOLLECTION_DEFAULT_INDEX_ELEMENT, StaticStrings.SUPERCOLLECTION_ELEMENT, StaticStrings.CLASSIFY_ELEMENT, StaticStrings.FORMAT_ELEMENT, StaticStrings.COLLECTIONMETADATA_ELEMENT};304 static final private String[] COMMAND_ORDER = {StaticStrings.COLLECTIONMETADATA_CREATOR_ELEMENT, StaticStrings.COLLECTIONMETADATA_MAINTAINER_ELEMENT, StaticStrings.COLLECTIONMETADATA_PUBLIC_ELEMENT, StaticStrings.COLLECTIONMETADATA_BETA_ELEMENT, StaticStrings.SEARCHTYPE_ELEMENT, StaticStrings.PLUGIN_ELEMENT, StaticStrings.INDEXES_ELEMENT, StaticStrings.LEVELS_ELEMENT, StaticStrings.INDEX_DEFAULT_ELEMENT, StaticStrings.LANGUAGES_ELEMENT, StaticStrings.LANGUAGE_DEFAULT_ELEMENT, StaticStrings.SUBCOLLECTION_ELEMENT, StaticStrings.SUBCOLLECTION_INDEXES_ELEMENT, StaticStrings.SUBCOLLECTION_DEFAULT_INDEX_ELEMENT, StaticStrings.SUPERCOLLECTION_ELEMENT, StaticStrings.CLASSIFY_ELEMENT, StaticStrings.FORMAT_ELEMENT, StaticStrings.COLLECTIONMETADATA_ELEMENT}; 293 305 294 306 /** ************************** Public Data Members ***************************/ … … 335 347 } 336 348 349 public Element getBeta() { 350 Element element = getOrCreateElementByTagName(COLLECTIONMETADATA_BETA_ELEMENT, null, null); 351 element.setAttribute(SPECIAL_ATTRIBUTE, TRUE_STR); 352 return element; 353 } 354 355 public Element getCreator() { 356 Element element = getOrCreateElementByTagName(COLLECTIONMETADATA_CREATOR_ELEMENT, null, null); 357 element.setAttribute(SPECIAL_ATTRIBUTE, TRUE_STR); 358 return element; 359 } 360 337 361 public Element getDocumentElement() { 338 362 return document.getDocumentElement(); … … 352 376 } 353 377 378 public Element getMaintainer() { 379 Element element = getOrCreateElementByTagName(COLLECTIONMETADATA_MAINTAINER_ELEMENT, null, null); 380 element.setAttribute(SPECIAL_ATTRIBUTE, TRUE_STR); 381 return element; 382 } 383 354 384 /** Retrieve or create the indexes Element. Note that this method behaves differently from the other getBlah methods, in that it also has to keep in mind that indexes come in two flavours, MG and MGPP. */ 355 385 public Element getMGIndexes() { … … 361 391 } 362 392 393 public Element getPublic() { 394 Element element = getOrCreateElementByTagName(COLLECTIONMETADATA_PUBLIC_ELEMENT, null, null); 395 element.setAttribute(SPECIAL_ATTRIBUTE, TRUE_STR); 396 return element; 397 } 398 363 399 /** Retrieve or create the searchtype element. */ 364 400 public Element getSearchType() { 365 return getOrCreateElementByTagName(SEARCHTYPE_ELEMENT, null, null); 401 ///ystem.err.println("Get or create element by tag name: " + name); 402 Element document_element = document.getDocumentElement(); 403 NodeList elements = document_element.getElementsByTagName(SEARCHTYPE_ELEMENT); 404 int elements_length = elements.getLength(); 405 if(elements_length > 0) { 406 document_element = null; 407 return (Element) elements.item(0); 408 } 409 // Create the element 410 Element element = document.createElement(SEARCHTYPE_ELEMENT); 411 Node target_node = findInsertionPoint(element); 412 if(target_node != null) { 413 document_element.insertBefore(element, target_node); 414 } 415 else { 416 document_element.appendChild(element); 417 } 418 document_element = null; 419 // Append a default search type node - form 420 Element a_searchtype_element = CollectionDesignManager.collect_config.document.createElement(CollectionConfiguration.CONTENT_ELEMENT); 421 a_searchtype_element.setAttribute(CollectionConfiguration.NAME_ATTRIBUTE, SearchTypeManager.SEARCH_TYPES[0]); 422 element.appendChild(a_searchtype_element); 423 return element; 366 424 } 367 425 … … 415 473 } 416 474 // Anything else we write to file, but only if it has been assigned, the exception being the Indexes element which just get commented if unassigned (a side effect of MG && MGPP compatibility) 417 else if(!command_element.getAttribute(ASSIGNED_ATTRIBUTE).equals(FALSE_STR) || command_element.getNodeName().equals(INDEXES_ELEMENT) ){475 else if(!command_element.getAttribute(ASSIGNED_ATTRIBUTE).equals(FALSE_STR) || command_element.getNodeName().equals(INDEXES_ELEMENT) || command_element.getNodeName().equals(INDEX_DEFAULT_ELEMENT) || command_element.getNodeName().equals(LEVELS_ELEMENT)){ 418 476 String command = toString(command_element, false); 419 477 if(command != null && command.length() > 0) { … … 586 644 587 645 private String indexDefaultToString(Element command_element, boolean show_extracted_namespace) { 588 boolean comment_only = false;589 646 StringBuffer text = new StringBuffer(""); 590 647 if(command_element.getAttribute(ASSIGNED_ATTRIBUTE).equals(FALSE_STR)) { 591 648 text.append("#"); 592 comment_only = true;593 649 } 594 650 text.append(INDEX_DEFAULT_STR); … … 763 819 command_element = parseFormat(command_str); 764 820 } 765 if(command_element == null && command_type.equals(INDEX_STR)) {821 if(command_element == null && (command_type.equals(INDEX_STR) || command_type.equals(COMMENTED_INDEXES_STR))) { 766 822 command_element = parseIndex(command_str); 767 823 } 768 if(command_element == null && command_type.equals(INDEX_DEFAULT_STR)) {824 if(command_element == null && (command_type.equals(INDEX_DEFAULT_STR) || command_type.equals(COMMENTED_INDEX_DEFAULT_STR))) { 769 825 command_element = parseIndexDefault(command_str); 770 826 } … … 775 831 command_element = parseLanguageDefault(command_str); 776 832 } 777 if(command_element == null && command_type.equals(LEVELS_STR)) {833 if(command_element == null && (command_type.equals(LEVELS_STR) || command_type.equals(COMMENTED_LEVELS_STR))) { 778 834 command_element = parseLevels(command_str); 779 835 } … … 908 964 try { 909 965 StringTokenizer tokenizer = new StringTokenizer(command_str); 910 tokenizer.nextToken();966 String command = tokenizer.nextToken(); 911 967 if(tokenizer.hasMoreTokens()) { 912 968 command_element = document.createElement(INDEXES_ELEMENT); 913 969 } 914 boolean first_index = true; 970 command_element.setAttribute(ASSIGNED_ATTRIBUTE, (command.equals(INDEX_STR) ? TRUE_STR : FALSE_STR)); 971 command = null; 915 972 while(tokenizer.hasMoreTokens()) { 916 973 Element index_element = document.createElement(INDEX_ELEMENT); … … 922 979 index_element.setAttribute(LEVEL_ATTRIBUTE, index_str.substring(0, index_str.indexOf(StaticStrings.COLON_CHARACTER))); 923 980 index_str = index_str.substring(index_str.indexOf(StaticStrings.COLON_CHARACTER) + 1); 924 if(first_index) { 925 command_element.setAttribute(MGPP_ATTRIBUTE, FALSE_STR); 926 first_index = false; 927 } 981 command_element.setAttribute(MGPP_ATTRIBUTE, FALSE_STR); 928 982 } 929 983 else { 930 if(first_index) { 931 command_element.setAttribute(MGPP_ATTRIBUTE, TRUE_STR); 932 first_index = false; 933 } 984 command_element.setAttribute(MGPP_ATTRIBUTE, TRUE_STR); 934 985 old_index = false; 935 986 } … … 970 1021 if(tokenizer.countTokens() >= 2) { 971 1022 command_element = document.createElement(INDEX_DEFAULT_ELEMENT); 972 tokenizer.nextToken();1023 command_element.setAttribute(ASSIGNED_ATTRIBUTE, ((tokenizer.nextToken()).equals(INDEX_DEFAULT_STR) ? TRUE_STR : FALSE_STR)); 973 1024 String index_str = tokenizer.nextToken(); 974 1025 command_element.setAttribute(LEVEL_ATTRIBUTE, index_str.substring(0, index_str.indexOf(StaticStrings.COLON_CHARACTER))); … … 1037 1088 StringTokenizer tokenizer = new StringTokenizer(command_str); 1038 1089 // First token is command type (levels) 1039 tokenizer.nextToken();1090 String command = tokenizer.nextToken(); 1040 1091 if(tokenizer.hasMoreTokens()) { 1041 1092 command_element = document.createElement(LEVELS_ELEMENT); 1042 command_element.setAttribute(ASSIGNED_ATTRIBUTE, TRUE_STR);1093 command_element.setAttribute(ASSIGNED_ATTRIBUTE, (command.equals(LEVELS_STR) ? TRUE_STR : FALSE_STR)); 1043 1094 while(tokenizer.hasMoreTokens()) { 1044 1095 Element level_element = document.createElement(CONTENT_ELEMENT); … … 1048 1099 } 1049 1100 } 1101 command = null; 1050 1102 } 1051 1103 catch(Exception exception) { … … 1098 1150 StringTokenizer tokenizer = new StringTokenizer(command_str); 1099 1151 if(tokenizer.countTokens() >= 2) { 1100 command_element = document.createElement(COLLECTIONMETADATA_ELEMENT);1101 1152 String name_str = tokenizer.nextToken(); 1102 1153 String value_str = tokenizer.nextToken(); 1103 command_element.setAttribute(NAME_ATTRIBUTE, name_str); 1104 command_element.setAttribute(LANGUAGE_ATTRIBUTE, ENGLISH_LANGUAGE_STR); 1105 command_element.setAttribute(SPECIAL_ATTRIBUTE, TRUE_STR); 1106 MSMUtils.setValue(command_element, value_str); 1154 if(name_str.equals(COLLECTIONMETADATA_BETA_STR)) { 1155 command_element = document.createElement(COLLECTIONMETADATA_BETA_ELEMENT); 1156 } 1157 else if(name_str.equals(COLLECTIONMETADATA_CREATOR_STR)) { 1158 command_element = document.createElement(COLLECTIONMETADATA_CREATOR_ELEMENT); 1159 } 1160 else if(name_str.equals(COLLECTIONMETADATA_MAINTAINER_STR)) { 1161 command_element = document.createElement(COLLECTIONMETADATA_MAINTAINER_ELEMENT); 1162 } 1163 else if(name_str.equals(COLLECTIONMETADATA_PUBLIC_STR)) { 1164 command_element = document.createElement(COLLECTIONMETADATA_PUBLIC_ELEMENT); 1165 } 1166 if(command_element != null) { 1167 command_element.setAttribute(NAME_ATTRIBUTE, name_str); 1168 command_element.setAttribute(LANGUAGE_ATTRIBUTE, ENGLISH_LANGUAGE_STR); 1169 command_element.setAttribute(SPECIAL_ATTRIBUTE, TRUE_STR); 1170 MSMUtils.setValue(command_element, value_str); 1171 } 1107 1172 value_str = null; 1108 1173 name_str = null;
Note:
See TracChangeset
for help on using the changeset viewer.