Changeset 6881
- Timestamp:
- 2004-02-24T13:33:28+13:00 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/msm/MetadataXMLFile.java
r6879 r6881 84 84 public void addMetadata(String filename, Metadata metadata, boolean force_accumulate) 85 85 { 86 System.err.println("Add '" + metadata + "' to " + (filename != null ? filename : "directory."));86 // System.err.println("Add '" + metadata + "' to " + (filename != null ? filename : "directory.")); 87 87 try { 88 // Retrieve the document element. 89 Element directorymetadata_element = base_document.getDocumentElement(); 90 // Iterate through the filesets looking for one that matches the given filename. 91 Element fileset_element = null; 92 boolean found = false; 93 NodeList fileset_elements = directorymetadata_element.getElementsByTagName(FILESET_ELEMENT); 94 for(int i = 0; !found && i < fileset_elements.getLength(); i++) { 95 fileset_element = (Element) fileset_elements.item(i); 96 NodeList filename_elements = fileset_element.getElementsByTagName(FILENAME_ELEMENT); 97 for(int j = 0; !found && j < filename_elements.getLength(); j++) { 98 Element filename_element = (Element) filename_elements.item(j); 99 String filename_pattern = MSMUtils.getValue(filename_element); 100 System.err.println("Checking " + filename + " against " + filename_pattern + "|"); 101 // Have we found a match. If so break out of for loop. 102 if (filename != null && filename.matches(filename_pattern) && !filename_pattern.equals(DIRECTORY_FILENAME)) { 103 System.err.println("Adding to existing file fileset!"); 104 found = true; 105 } 106 else if (filename == null && filename_pattern.equals(DIRECTORY_FILENAME)) { 107 System.err.println("Adding to existing folder fileset!"); 108 found = true; 109 } 110 // No match. On to the next one. 111 else { 112 System.err.println("No match at all!"); 113 } 114 filename_pattern = null; 115 filename_element = null; 116 } 117 } 118 fileset_elements = null; 119 // If we still haven't found an existing fileset, then its time to create one. 88 // Retrieve the document element 89 Element gdm_element = base_document.getDocumentElement(); 90 91 // Find the fileset element for the filename 92 Element fileset_element = findFileSetElementForFile(gdm_element, filename); 93 94 // If there is no existing fileset, then create one 120 95 if (fileset_element == null) { 121 System.err.println("Creating a new fileset.");96 // System.err.println("Creating a new fileset."); 122 97 fileset_element = base_document.createElement(FILESET_ELEMENT); 123 98 Element filename_element = base_document.createElement(FILENAME_ELEMENT); … … 126 101 fileset_element.appendChild(description_element); 127 102 Text filename_text = null; 128 // If the filename is null then we add a directory metadata set as directorymetadata_element's first child103 // If the filename is null then we add a directory metadata set as gdm_element's first child 129 104 if (filename == null) { 130 105 filename_text = base_document.createTextNode(DIRECTORY_FILENAME); 131 if ( directorymetadata_element.hasChildNodes()) {132 directorymetadata_element.insertBefore(fileset_element, directorymetadata_element.getFirstChild());106 if (gdm_element.hasChildNodes()) { 107 gdm_element.insertBefore(fileset_element, gdm_element.getFirstChild()); 133 108 } 134 109 else { 135 directorymetadata_element.appendChild(fileset_element);110 gdm_element.appendChild(fileset_element); 136 111 } 137 112 } 138 // Otherwise we append the new fileset to directorymetadata_element's children113 // Otherwise we append the new fileset to gdm_element's children 139 114 else { 140 System.err.println("New fileset for " + filename);115 // System.err.println("New fileset for " + filename); 141 116 filename = Codec.transform(filename, Codec.TEXT_TO_REGEXP); 142 System.err.println("After transform: " + filename);117 // System.err.println("After transform: " + filename); 143 118 filename_text = base_document.createTextNode(filename); 144 directorymetadata_element.appendChild(fileset_element);119 gdm_element.appendChild(fileset_element); 145 120 } 146 121 filename_element.appendChild(filename_text); … … 208 183 description_element = null; 209 184 metadata_element = null; 210 //mode = null;211 185 fileset_element = null; 212 directorymetadata_element = null;186 gdm_element = null; 213 187 up_to_date = false; 214 188 } … … 249 223 return count; 250 224 } 225 226 227 private Element findFileSetElementForFile(Element gdm_element, String filename) 228 { 229 // Iterate through the filesets looking for one that matches the given filename 230 NodeList fileset_elements = gdm_element.getElementsByTagName(FILESET_ELEMENT); 231 for (int i = 0; i < fileset_elements.getLength(); i++) { 232 Element fileset_element = (Element) fileset_elements.item(i); 233 234 NodeList filename_elements = fileset_element.getElementsByTagName(FILENAME_ELEMENT); 235 for (int j = 0; j < filename_elements.getLength(); j++) { 236 Element filename_element = (Element) filename_elements.item(j); 237 String filename_pattern = MSMUtils.getValue(filename_element); 238 239 // System.err.println("Checking " + filename + " against " + filename_pattern); 240 241 // Is this a file match? 242 if (filename != null && filename.matches(filename_pattern) && 243 !filename_pattern.equals(DIRECTORY_FILENAME)) { 244 // System.err.println("Existing file fileset!"); 245 return fileset_element; 246 } 247 // Is this a folder match? 248 else if (filename == null && filename_pattern.equals(DIRECTORY_FILENAME)) { 249 // System.err.println("Existing folder fileset!"); 250 return fileset_element; 251 } 252 } 253 } 254 255 // No match found 256 return null; 257 } 258 251 259 252 260 /** Retrieve the document this class is wrapping. */
Note:
See TracChangeset
for help on using the changeset viewer.