Changeset 9126
- Timestamp:
- 2005-02-22T10:58:15+13:00 (19 years ago)
- Location:
- trunk/gli/src/org/greenstone/gatherer
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/cdm/Argument.java
r8313 r9126 530 530 text.append(value); 531 531 return text.toString(); 532 } 532 } 533 534 /** parse the <Option> XML from eg import.pl -xml or pluginfo.pl -xml */ 535 public void parseXML(Element option) { 536 537 for(Node node = option.getFirstChild(); node != null; node = node.getNextSibling()) { 538 String node_name = node.getNodeName(); 539 if(node_name.equals("Name")) { 540 setName(XMLTools.getValue(node)); 541 } 542 else if(node_name.equals("Desc")) { 543 setDescription(XMLTools.getValue(node)); 544 } 545 else if(node_name.equals("Type")) { 546 setType(XMLTools.getValue(node)); 547 } 548 else if(node_name.equals("Default")) { 549 setDefaultValue(XMLTools.getValue(node)); 550 } 551 else if(node_name.equals("Required")) { 552 String v = XMLTools.getValue(node); 553 if(v != null && v.equals("yes")) { 554 setRequired(true); 555 } 556 } 557 else if(node_name.equals("List")) { 558 // Two final loops are required to parse lists. 559 for(Node value = node.getFirstChild(); value != null; value = value.getNextSibling()) { 560 if(value.getNodeName().equals("Value")) { 561 String key = null; 562 String desc = ""; 563 for(Node subvalue = value.getFirstChild(); subvalue != null; subvalue = subvalue.getNextSibling()) { 564 node_name = subvalue.getNodeName(); 565 if(node_name.equals("Name")) { 566 key = XMLTools.getValue(subvalue); 567 } 568 else if(node_name.equals("Desc")) { 569 desc = XMLTools.getValue(subvalue); 570 } 571 } 572 if(key != null) { 573 addOption(key, desc); 574 } 575 } 576 } 577 } 578 else if(node_name.equals("Range")) { 579 String range_raw = XMLTools.getValue(node); 580 int index = -1; 581 if((index = range_raw.indexOf(StaticStrings.COMMA_CHARACTER)) != -1) { 582 if(index > 0) { 583 try { 584 String first_number = range_raw.substring(0, index); 585 setMinimum(Integer.parseInt(first_number)); 586 first_number = null; 587 } 588 catch(Exception exception) { 589 } 590 } 591 592 if(index + 1 < range_raw.length()) { 593 try { 594 String second_number = range_raw.substring(index + 1); 595 setMaximum(Integer.parseInt(second_number)); 596 second_number = null; 597 } 598 catch(Exception exception) { 599 } 600 } 601 } 602 // Else it wasn't a valid range anyway, so ignore it 603 } 604 else if(node_name.equals("HiddenGLI")) { 605 setHiddenGLI(); 606 } 607 else if(node_name.equals("ModeGLI")) { 608 String mode_level_str = XMLTools.getValue(node); 609 try { 610 int mode_level = Integer.parseInt(mode_level_str); 611 setModeLevel(mode_level); 612 } 613 catch(Exception exception) { 614 DebugStream.println("Exception in Argument.parseXML() - Unexpected but non-fatal"); 615 DebugStream.printStackTrace(exception); 616 } 617 } 618 619 } // for each option 620 621 } // parseXML 533 622 } -
trunk/gli/src/org/greenstone/gatherer/cdm/ClassifierManager.java
r8782 r9126 511 511 if(node_name.equals("Option")) { 512 512 Argument argument = new Argument(); 513 // If its an option we parse the multitude of details an options might have. 514 for(Node det = arg.getFirstChild(); det != null; det = det.getNextSibling()) { 515 node_name = det.getNodeName(); 516 if(node_name.equals("Name")) { 517 argument.setName(XMLTools.getValue(det)); 518 } 519 else if(node_name.equals("Desc")) { 520 argument.setDescription(XMLTools.getValue(det)); 521 } 522 else if(node_name.equals("Type")) { 523 argument.setType(XMLTools.getValue(det)); 524 } 525 else if(node_name.equals("Default")) { 526 argument.setDefaultValue(XMLTools.getValue(det)); 527 } 528 else if(node_name.equals("List")) { 529 // Two final loops are required to parse lists. 530 for(Node value = det.getFirstChild(); value != null; value = value.getNextSibling()) { 531 if(value.getNodeName().equals("Value")) { 532 String key = null; 533 String desc = ""; 534 for(Node subvalue = value.getFirstChild(); subvalue != null; subvalue = subvalue.getNextSibling()) { 535 node_name = subvalue.getNodeName(); 536 if(node_name.equals("Name")) { 537 key = XMLTools.getValue(subvalue); 538 } 539 else if(node_name.equals("Desc")) { 540 desc = XMLTools.getValue(subvalue); 541 } 542 } 543 if(key != null) { 544 argument.addOption(key, desc); 545 } 546 } 547 } 548 } 549 else if(node_name.equals("Required")) { 550 String v = XMLTools.getValue(det); 551 ///ystem.err.println("Required = " + v); 552 if(v.equalsIgnoreCase("yes")) { 553 ///ystem.err.println("Setting required to true."); 554 argument.setRequired(true); 555 } 556 } 557 else if(node_name.equals(StaticStrings.RANGE_ELEMENT)) { 558 String range_raw = XMLTools.getValue(det); 559 int index = -1; 560 if((index = range_raw.indexOf(StaticStrings.COMMA_CHARACTER)) != -1) { 561 if(index > 0) { 562 try { 563 String first_number = range_raw.substring(0, index); 564 argument.setMinimum(Integer.parseInt(first_number)); 565 first_number = null; 566 } 567 catch(Exception exception) { 568 } 569 } 570 571 if(index + 1 < range_raw.length()) { 572 try { 573 String second_number = range_raw.substring(index + 1); 574 argument.setMaximum(Integer.parseInt(second_number)); 575 second_number = null; 576 577 } 578 catch(Exception exception) { 579 } 580 } 581 582 } 583 // Else it wasn't a valid range anyway, so ignore it 584 } 585 } 513 argument.parseXML((Element)arg); 586 514 classifier.addArgument(argument); 587 515 } -
trunk/gli/src/org/greenstone/gatherer/cdm/Plugin.java
r9020 r9126 163 163 public boolean doesExplodeMetadataDatabases() 164 164 { 165 return false; 166 // Plugin base_plugin = CollectionDesignManager.plugin_manager.getBasePlugin(getName()); 167 // return base_plugin.does_explode_metadata_databases; 165 Plugin base_plugin = CollectionDesignManager.plugin_manager.getBasePlugin(getName()); 166 if (base_plugin == null) { 167 return false; 168 } 169 return base_plugin.does_explode_metadata_databases; 168 170 } 169 171 -
trunk/gli/src/org/greenstone/gatherer/cdm/PluginManager.java
r9105 r9126 171 171 public boolean isFileExplodable(File file) 172 172 { 173 // Temporary hack to test the rest of this, the correct code is below 174 if (file.isFile() && file.getName().endsWith(".mst")) { 175 return true; 176 } 177 178 // for (int i = 0; i < library.getSize(); i++) { 179 // Plugin plugin = (Plugin) library.get(i); 180 // if (plugin.doesProcessFile(file) == true && plugin.doesExplodeMetadataDatabases() == true) { 181 // return true; 182 // } 183 // } 173 174 for (int i = 0; i < library.size(); i++) { 175 Plugin plugin = (Plugin) library.get(i); 176 if (plugin.doesProcessFile(file) == true && plugin.doesExplodeMetadataDatabases() == true) { 177 return true; 178 } 179 } 184 180 185 181 return false; 186 182 } 187 183 188 public StringgetExploderPlugin(File file)184 public Plugin getExploderPlugin(File file) 189 185 { 190 // Temporary hack 191 if (file.isFile() && file.getName().endsWith(".mst")) { 192 return "ISISPlug"; 186 for (int i = 0; i < library.size(); i++) { 187 Plugin plugin = (Plugin) library.get(i); 188 if (plugin.doesProcessFile(file) == true && plugin.doesExplodeMetadataDatabases() == true) { 189 return plugin; 190 } 193 191 } 194 192 return null; 193 195 194 } 196 195 … … 653 652 else if (node_name.equalsIgnoreCase("Explodes")) { 654 653 plugin.setDoesExplodeMetadataDatabases(XMLTools.getValue(node).equalsIgnoreCase(StaticStrings.YES_STR)); 655 System.err.println("Plugin " + plugin.getName() + " explodes metadata databases: " + plugin.doesExplodeMetadataDatabases());654 //System.err.println("Plugin " + plugin.getName() + " explodes metadata databases: " + plugin.doesExplodeMetadataDatabases()); 656 655 } 657 656 // Parse the multitude of arguments … … 662 661 if(node_name.equalsIgnoreCase("Option")) { 663 662 Argument argument = new Argument(); 664 // If its an option we parse the multitude of details an options might have. 665 for(Node det = arg.getFirstChild(); det != null; det = det.getNextSibling()) { 666 node_name = det.getNodeName(); 667 if(node_name.equalsIgnoreCase("Name")) { 668 argument.setName(XMLTools.getValue(det)); 669 } 670 else if(node_name.equalsIgnoreCase("Desc")) { 671 argument.setDescription(XMLTools.getValue(det)); 672 } 673 else if(node_name.equalsIgnoreCase("Type")) { 674 argument.setType(XMLTools.getValue(det)); 675 } 676 else if(node_name.equalsIgnoreCase("Default")) { 677 argument.setDefaultValue(XMLTools.getValue(det)); 678 } 679 else if(node_name.equalsIgnoreCase("List")) { 680 // Two final loops are required to parse lists. 681 for(Node value = det.getFirstChild(); value != null; value = value.getNextSibling()) { 682 if(value.getNodeName().equalsIgnoreCase("Value")) { 683 String key = null; 684 String desc = ""; 685 for(Node subvalue = value.getFirstChild(); subvalue != null; subvalue = subvalue.getNextSibling()) { 686 node_name = subvalue.getNodeName(); 687 if(node_name.equalsIgnoreCase("Name")) { 688 key = XMLTools.getValue(subvalue); 689 } 690 else if(node_name.equalsIgnoreCase("Desc")) { 691 desc = XMLTools.getValue(subvalue); 692 } 693 } 694 if(key != null) { 695 argument.addOption(key, desc); 696 } 697 } 698 } 699 } 700 else if(node_name.equalsIgnoreCase("Required")) { 701 String v = XMLTools.getValue(det); 702 if(v != null && v.equalsIgnoreCase("yes")) { 703 argument.setRequired(true); 704 } 705 } 706 else if(node_name.equals(StaticStrings.RANGE_ELEMENT)) { 707 String range_raw = XMLTools.getValue(det); 708 int index = -1; 709 if((index = range_raw.indexOf(StaticStrings.COMMA_CHARACTER)) != -1) { 710 if(index > 0) { 711 try { 712 String first_number = range_raw.substring(0, index); 713 argument.setMinimum(Integer.parseInt(first_number)); 714 first_number = null; 715 } 716 catch(Exception exception) { 717 } 718 } 719 720 if(index + 1 < range_raw.length()) { 721 try { 722 String second_number = range_raw.substring(index + 1); 723 argument.setMaximum(Integer.parseInt(second_number)); 724 second_number = null; 725 } 726 catch(Exception exception) { 727 } 728 } 729 } 730 // Else it wasn't a valid range anyway, so ignore it 731 } 732 } 663 argument.parseXML((Element)arg); 733 664 plugin.addArgument(argument); 734 665 } -
trunk/gli/src/org/greenstone/gatherer/collection/BuildOptions.java
r9036 r9126 217 217 removeValue(import_values_element, name); 218 218 } 219 219 220 220 /** Retrieve the indexth element from the given set of arguments. */ 221 221 private Argument getArgument(Element arguments_element, int index) { 222 Argument argument = null; 223 try { 224 NodeList option_list = arguments_element.getElementsByTagName(OPTION); 225 if(0 <= index && index < option_list.getLength()) { 226 // Retrieve the appropriate argument 227 Element option = (Element) option_list.item(index); 228 // Iterate through this option elements children, making note of any details we find. 229 argument = new Argument(); 230 for(Node node = option.getFirstChild(); node != null; node = node.getNextSibling()) { 231 String node_name = node.getNodeName(); 232 if(node_name.equals("Name")) { 233 argument.setName(XMLTools.getValue(node)); 234 } 235 else if(node_name.equals("Desc")) { 236 argument.setDescription(XMLTools.getValue(node)); 237 } 238 else if(node_name.equals("Type")) { 239 argument.setType(XMLTools.getValue(node)); 240 } 241 else if(node_name.equals("Default")) { 242 argument.setDefaultValue(XMLTools.getValue(node)); 243 } 244 else if(node_name.equals("List")) { 245 // Two final loops are required to parse lists. 246 for(Node value = node.getFirstChild(); value != null; value = value.getNextSibling()) { 247 if(value.getNodeName().equals("Value")) { 248 String key = null; 249 String desc = ""; 250 for(Node subvalue = value.getFirstChild(); subvalue != null; subvalue = subvalue.getNextSibling()) { 251 node_name = subvalue.getNodeName(); 252 if(node_name.equals("Name")) { 253 key = XMLTools.getValue(subvalue); 254 } 255 else if(node_name.equals("Desc")) { 256 desc = XMLTools.getValue(subvalue); 257 } 258 } 259 if(key != null) { 260 argument.addOption(key, desc); 261 } 262 } 263 } 264 } 265 else if(node_name.equals("Required")) { 266 String v = XMLTools.getValue(node); 267 if(v != null && v.equals("yes")) { 268 argument.setRequired(true); 269 } 270 } 271 else if(node_name.equals(StaticStrings.RANGE_ELEMENT)) { 272 String range_raw = XMLTools.getValue(node); 273 int comma_index = -1; 274 if((comma_index = range_raw.indexOf(StaticStrings.COMMA_CHARACTER)) != -1) { 275 if(comma_index > 0) { 276 try { 277 String first_number = range_raw.substring(0, comma_index); 278 argument.setMinimum(Integer.parseInt(first_number)); 279 first_number = null; 280 } 281 catch(Exception exception) { 282 } 283 } 284 285 if(comma_index + 1 < range_raw.length()) { 286 try { 287 String second_number = range_raw.substring(comma_index + 1); 288 argument.setMaximum(Integer.parseInt(second_number)); 289 second_number = null; 290 } 291 catch(Exception exception) { 292 } 293 } 294 } 295 // Else it wasn't a valid range anyway, so ignore it 296 range_raw = null; 297 } 298 else if(node_name.equals(StaticStrings.HIDDENGLI_ELEMENT)) { 299 argument.setHiddenGLI(); 300 } 301 else if(node_name.equals(StaticStrings.MODEGLI_ELEMENT)) { 302 String mode_level_str = XMLTools.getValue(node); 303 try { 304 int mode_level = Integer.parseInt(mode_level_str); 305 argument.setModeLevel(mode_level); 306 } 307 catch(Exception exception) { 308 DebugStream.println("Exception in BuildOptions.getArgument() - Unexpected but non-fatal"); 309 DebugStream.printStackTrace(exception); 310 } 311 } 312 } 313 } 314 } 315 catch (Exception error) { 316 DebugStream.println("Error in BuildOptions.getArgument(): " + error); 317 DebugStream.printStackTrace(error); 318 } 319 return argument; 222 NodeList option_list = arguments_element.getElementsByTagName(OPTION); 223 if(0 <= index && index < option_list.getLength()) { 224 Argument argument = new Argument(); 225 argument.parseXML((Element) option_list.item(index)); 226 return argument; 227 } 228 return null; // no arg at this position 320 229 } 321 230
Note:
See TracChangeset
for help on using the changeset viewer.