Changeset 5945 for trunk/gsdl3/src/java/org/greenstone/gsdl3/gs3build/metadata/METSStructureSet.java
- Timestamp:
- 2003-11-24T14:26:53+13:00 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl3/src/java/org/greenstone/gsdl3/gs3build/metadata/METSStructureSet.java
r5800 r5945 5 5 import java.util.HashMap; 6 6 import java.util.Map; 7 import java.util.List; 8 import java.util.ArrayList; 7 9 import java.util.Iterator; 10 11 import java.sql.SQLException; 12 import java.sql.ResultSet; 8 13 9 14 import org.greenstone.gsdl3.gs3build.doctypes.DocumentInterface; 10 15 11 16 import org.greenstone.gsdl3.gs3build.util.GS3SQLConnection; 17 import org.greenstone.gsdl3.gs3build.database.*; 12 18 13 19 public class METSStructureSet 14 { 20 { Map children; 15 21 16 17 {this.children = new HashMap();18 22 public METSStructureSet() 23 { this.children = new HashMap(); 24 } 19 25 20 21 {this.children.put(structure.getID(), structure);22 26 public void addStructure(METSStructure structure) 27 { this.children.put(structure.getID(), structure); 28 } 23 29 24 25 {return (METSStructure) this.children.get(name);26 30 public METSStructure getStructure(String name) 31 { return (METSStructure) this.children.get(name); 32 } 27 33 28 public void addDivision(String structureName, METSDivision division) 29 { METSStructure structure = (METSStructure) this.children.get(structureName); 34 /** 35 * Find the divisions that contain a list of given files 36 * 37 * @param <code>List</code> the list of files to find... 38 * @return <code>List</code> the matching divisions. 39 */ 40 public List findDivisionsForFiles(List listOfFileIdentifiers) 41 { List reply = new ArrayList(); 30 42 31 if (structure != null) 32 { structure.addDivision(division); 33 } 34 } 43 // iterate across all the children... 44 Iterator structures = this.children.values().iterator(); 45 46 while (structures.hasNext()) 47 { METSStructure structure = (METSStructure) structures.next(); 35 48 36 public void addSubDivision(String structureName, String divisionID, METSDivision division) 37 { METSStructure structure = (METSStructure) this.children.get(structureName); 49 structure.findDivisionsForFiles(listOfFileIdentifiers, reply); 50 } 51 return reply; 52 } 38 53 39 if (structure != null) 40 { structure.addSubDivision(divisionID, division); 41 } 42 } 54 /** 55 * Add a division to an indicated structure. 56 * 57 * @param <code>String</code> the structure identifier 58 * @param <code>METSDivision</code> the division to be added. 59 */ 60 public void addDivision(String structureName, METSDivision division) 61 { METSStructure structure = (METSStructure) this.children.get(structureName); 43 62 44 public METSDivision getDivision(String structureName, String divisionID) 45 { METSStructure structure = (METSStructure) this.children.get(structureName); 46 47 if (structure != null) 48 { return structure.getDivision(divisionID); 49 } 50 return null; 51 } 52 53 public void write(PrintWriter writer) 54 { Iterator groups = this.children.values().iterator(); 55 56 while (groups.hasNext()) 57 { METSStructure group = (METSStructure) groups.next(); 58 59 group.write(writer); 60 } 61 } 62 63 public void writeSQL(DocumentInterface document, GS3SQLConnection connection) 64 { Iterator groups = this.children.values().iterator(); 65 66 while (groups.hasNext()) 67 { METSStructure group = (METSStructure) groups.next(); 68 69 group.writeSQL(document, connection); 63 if (structure != null) 64 { structure.addDivision(division); 70 65 } 71 66 } 72 67 68 /** 69 * Add a division to an indicated division within structure. 70 * 71 * @param <code>String</code> the structure identifier 72 * @param <code>String</code> the division identifer, within which the division 73 * is to be placed. 74 * @param <code>METSDivision</code> the division to be added. 75 */ 76 public void addSubDivision(String structureName, String divisionID, METSDivision division) 77 { METSStructure structure = (METSStructure) this.children.get(structureName); 78 79 if (structure != null) 80 { structure.addSubDivision(divisionID, division); 81 } 82 } 83 84 public METSDivision getDivision(String structureName, String divisionID) 85 { METSStructure structure = (METSStructure) this.children.get(structureName); 86 87 if (structure != null) 88 { return structure.getDivision(divisionID); 89 } 90 return null; 91 } 92 93 public void write(PrintWriter writer) 94 { Iterator structures = this.children.values().iterator(); 95 96 while (structures.hasNext()) 97 { METSStructure group = (METSStructure) structures.next(); 98 99 group.write(writer); 100 } 101 } 102 103 public boolean writeSQL(DocumentInterface document, GS3SQLConnection connection) 104 { Iterator structures = this.children.values().iterator(); 105 106 while (structures.hasNext()) 107 { METSStructure group = (METSStructure) structures.next(); 108 109 if (!group.writeSQL(document, connection)) 110 { return false; 111 } 112 } 113 return true; 114 } 115 116 public static METSStructureSet readSQL(DocumentInterface document, GS3SQLConnection connection) 117 { 118 METSStructureSet set = new METSStructureSet(); 119 120 GS3SQLSelect select = new GS3SQLSelect("structure"); 121 select.addField("*"); 122 GS3SQLWhereItem whereItem = new GS3SQLWhereItem("DocID", "=", document.getID().toString()); 123 select.setWhere(new GS3SQLWhere(whereItem)); 124 connection.execute(select.toString()); 125 126 // start going through the matching metadata blocks 127 try { 128 ResultSet resultSet = connection.getResultSet(); 129 resultSet.first(); 130 do { 131 METSStructure structure = METSStructure.readSQL(document, connection, resultSet); 132 if (structure != null) { 133 set.addStructure(structure); 134 } 135 } while (resultSet.next()); 136 } 137 catch (SQLException sqlEx) { 138 System.out.println(sqlEx); 139 System.exit(1); 140 } 141 142 return set; 143 } 144 73 145 }
Note:
See TracChangeset
for help on using the changeset viewer.