- Timestamp:
- 2005-05-12T12:24:38+12:00 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/metadata/MetadataXMLFileManager.java
r8783 r9856 7 7 * Author: Michael Dewsnip, NZDL Project, University of Waikato, NZ 8 8 * 9 * Copyright (C) 200 4New Zealand Digital Library Project9 * Copyright (C) 2005 New Zealand Digital Library Project 10 10 * 11 11 * This program is free software; you can redistribute it and/or modify … … 40 40 { 41 41 static private ArrayList metadata_xml_files = new ArrayList(); 42 /** The objects listening for MetadataChanged events. */ 43 static private ArrayList metadata_changed_listeners = new ArrayList(); 42 44 43 45 … … 83 85 } 84 86 } 87 88 // Let any listeners know that the metadata has changed 89 fireMetadataChangedEvent(file_nodes); 90 } 91 92 93 static public void addMetadataChangedListener(MetadataChangedListener metadata_changed_listener) 94 { 95 metadata_changed_listeners.add(metadata_changed_listener); 85 96 } 86 97 … … 89 100 { 90 101 metadata_xml_files.clear(); 102 } 103 104 105 static private void fireMetadataChangedEvent(CollectionTreeNode[] file_nodes) 106 { 107 // Send the event off to all the MetadataChangedListeners 108 for (int i = 0; i < metadata_changed_listeners.size(); i++) { 109 ((MetadataChangedListener) metadata_changed_listeners.get(i)).metadataChanged(file_nodes); 110 } 91 111 } 92 112 … … 254 274 } 255 275 } 276 277 // Let any listeners know that the metadata has changed 278 fireMetadataChangedEvent(file_nodes); 279 } 280 281 282 static public void removeMetadataChangedListener(MetadataChangedListener metadata_changed_listener) 283 { 284 metadata_changed_listeners.remove(metadata_changed_listener); 285 } 286 287 288 static public void replaceMetadata(CollectionTreeNode[] file_nodes, MetadataValue old_metadata_value, MetadataValue new_metadata_value) 289 { 290 // Replace the metadata in each file node in turn 291 for (int i = 0; i < file_nodes.length; i++) { 292 File current_file = file_nodes[i].getFile(); 293 DebugStream.println("Replacing metadata in " + current_file.getAbsolutePath()); 294 295 // Find which metadata.xml file needs editing 296 File current_file_directory = (current_file.isDirectory() ? current_file : current_file.getParentFile()); 297 for (int j = 0; j < metadata_xml_files.size(); j++) { 298 MetadataXMLFile metadata_xml_file = (MetadataXMLFile) metadata_xml_files.get(j); 299 300 // This metadata.xml file is only applicable if it is at the same level as the file 301 if (current_file_directory.getAbsolutePath().equals(metadata_xml_file.getParentFile().getAbsolutePath())) { 302 metadata_xml_file.replaceMetadata(current_file, old_metadata_value, new_metadata_value); 303 } 304 } 305 } 306 307 // Let any listeners know that the metadata has changed 308 fireMetadataChangedEvent(file_nodes); 256 309 } 257 310
Note:
See TracChangeset
for help on using the changeset viewer.