Changeset 1914
- Timestamp:
- 04/27/12 12:51:47 (12 years ago)
- Location:
- OAIProvider/trunk/src/main/java/eu/clarin/oai/provider
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/Record.java
r1911 r1914 49 49 */ 50 50 public List<String> getSetSpecs(); 51 52 public void writeRecord(XMLStreamWriter writer) throws XMLStreamException; 51 52 public boolean supportsFormat(MetadataFormat format); 53 54 public void writeRecord(XMLStreamWriter writer, MetadataFormat format) 55 throws XMLStreamException, OAIException; 53 56 } // interface Record -
OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/Repository.java
r1911 r1914 223 223 * <em>ListRecords</em> and <em>ListIdentifiers</em> verbs. 224 224 * 225 * @param prefix225 * @param format 226 226 * requested metadata format (e.g "oai_dc") 227 227 * @param from … … 242 242 * @see RecordList 243 243 */ 244 public RecordList getRecords( String prefix, Date from, Date until,244 public RecordList getRecords(MetadataFormat format, Date from, Date until, 245 245 String set, int offset, int limit) throws OAIException; 246 246 … … 249 249 * <em>ListRecords</em> and <em>ListIdentifiers</em> verbs. 250 250 * 251 * @param prefix251 * @param format 252 252 * requested metadata format (e.g "oai_dc") 253 253 * @param from … … 268 268 * @see RecordList 269 269 */ 270 public RecordList getRecordHeaders( String prefix, Date from, Date until,271 String set, int offset, int limit) throws OAIException;270 public RecordList getRecordHeaders(MetadataFormat format, Date from, 271 Date until, String set, int offset, int limit) throws OAIException; 272 272 273 273 } // interface Repository -
OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/ext/OAIOutputStream.java
r1911 r1914 9 9 import javax.xml.stream.XMLStreamWriter; 10 10 11 import eu.clarin.oai.provider.MetadataFormat; 12 import eu.clarin.oai.provider.OAIException; 11 13 import eu.clarin.oai.provider.Record; 12 14 … … 76 78 public void writeRecordHeader(Record record) throws XMLStreamException; 77 79 78 public void writeRecord(Record record) throws XMLStreamException; 80 public void writeRecord(Record record, MetadataFormat format) 81 throws XMLStreamException, OAIException; 79 82 80 83 } // interface OAIOutputStream -
OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/ext/RepositoryAdapter.java
r1911 r1914 36 36 public Set<MetadataFormat> getMetadataFormats(); 37 37 38 public Set<MetadataFormat> getMetadataFormats(Record record);38 // public Set<MetadataFormat> getMetadataFormats(Record record); 39 39 40 40 public MetadataFormat getMetadataFormatByPrefix(String prefix); … … 52 52 public Record getRecordHeader(Object localId) throws OAIException; 53 53 54 public RecordList getRecords( String prefix, Date from, Date until,54 public RecordList getRecords(MetadataFormat format, Date from, Date until, 55 55 String set, int offset) throws OAIException; 56 56 57 public RecordList getRecordHeaders( String prefix, Date from, Date until,58 String set, int offset) throws OAIException;57 public RecordList getRecordHeaders(MetadataFormat format, Date from, 58 Date until, String set, int offset) throws OAIException; 59 59 60 60 public ResumptionToken createResumptionToken(); -
OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/impl/OAIOutputStreamImpl.java
r1911 r1914 16 16 import org.apache.commons.lang.time.FastDateFormat; 17 17 18 import eu.clarin.oai.provider.MetadataFormat; 19 import eu.clarin.oai.provider.OAIException; 18 20 import eu.clarin.oai.provider.Record; 19 21 import eu.clarin.oai.provider.Repository; … … 253 255 254 256 @Override 255 public void writeRecord(Record record) throws XMLStreamException { 257 public void writeRecord(Record record, MetadataFormat format) 258 throws XMLStreamException, OAIException { 256 259 writer.writeStartElement("record"); 257 260 writeRecordHeader(record); … … 259 262 writer.writeStartElement("metadata"); 260 263 // FIXME: re-work! 261 record.writeRecord(writer );264 record.writeRecord(writer, format); 262 265 writer.writeEndElement(); // metadata element 263 266 } -
OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/impl/RepositoryAdapterImpl.java
r1911 r1914 1 1 package eu.clarin.oai.provider.impl; 2 2 3 import java.util.Collections;4 3 import java.util.Date; 5 4 import java.util.HashSet; … … 151 150 } 152 151 153 @Override154 public Set<MetadataFormat> getMetadataFormats(Record record) {155 // FIXME: re-work156 // final Class<?> clazz = record.getItem().getClass();157 Set<MetadataFormat> result = null;158 // for (MetadataFormat format : metadataFormats) {159 // if (format.canWriteClass(clazz)) {160 // if (result == null) {161 // result = new HashSet<MetadataFormat>();162 // }163 // result.add(format);164 // }165 // }166 if ((result == null) || result.isEmpty()) {167 result = Collections.emptySet();168 }169 return result;170 }152 // @Override 153 // public Set<MetadataFormat> getMetadataFormats(Record record) { 154 // // FIXME: re-work 155 //// final Class<?> clazz = record.getItem().getClass(); 156 // Set<MetadataFormat> result = null; 157 //// for (MetadataFormat format : metadataFormats) { 158 //// if (format.canWriteClass(clazz)) { 159 //// if (result == null) { 160 //// result = new HashSet<MetadataFormat>(); 161 //// } 162 //// result.add(format); 163 //// } 164 //// } 165 // if ((result == null) || result.isEmpty()) { 166 // result = Collections.emptySet(); 167 // } 168 // return result; 169 // } 171 170 172 171 @Override … … 227 226 228 227 @Override 229 public RecordList getRecords( String prefix, Date from, Date until,228 public RecordList getRecords(MetadataFormat format, Date from, Date until, 230 229 String set, int offset) throws OAIException { 231 230 /* … … 237 236 } 238 237 try { 239 return repository.getRecords( prefix, from, until, set, offset, limit);238 return repository.getRecords(format, from, until, set, offset, limit); 240 239 } catch (OAIException e) { 241 240 throw e; … … 246 245 247 246 @Override 248 public RecordList getRecordHeaders( String prefix, Date from, Date until,249 String set, int offset) throws OAIException {247 public RecordList getRecordHeaders(MetadataFormat format, Date from, 248 Date until, String set, int offset) throws OAIException { 250 249 /* 251 250 * XXX: maybe add a OAIProvider defined upper limit? … … 256 255 } 257 256 try { 258 return repository.getRecordHeaders(prefix, from, until, set, offset, limit); 257 return repository.getRecordHeaders(format, from, until, 258 set, offset, limit); 259 259 } catch (OAIException e) { 260 260 throw e; -
OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/impl/VerbEnumerateRecord.java
r1911 r1914 81 81 } else { 82 82 // fetch records 83 final RecordList result = doGetRecords(repository, prefix,83 final RecordList result = doGetRecords(repository, format, 84 84 from, until, set, offset); 85 85 … … 113 113 } 114 114 115 public void writeRecord(XMLStreamWriter writer) 116 throws XMLStreamException { 115 @Override 116 public boolean supportsFormat(MetadataFormat format) { 117 return true; 118 } 119 120 @Override 121 public void writeRecord(XMLStreamWriter writer, 122 MetadataFormat format) 123 throws XMLStreamException, OAIException { 117 124 result.writeRecord(writer); 118 125 } … … 165 172 166 173 protected abstract RecordList doGetRecords(RepositoryAdapter repository, 167 String prefix, Date from, Date until, String set, int offset)174 MetadataFormat format, Date from, Date until, String set, int offset) 168 175 throws OAIException; 169 176 170 177 protected abstract void doWriteRecord(RepositoryAdapter repository, 171 178 OAIOutputStream out, MetadataFormat format, Record record) 172 throws XMLStreamException ;179 throws XMLStreamException, OAIException; 173 180 174 181 } // abstract class VerbEnumerateRecord -
OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/impl/VerbGetRecord.java
r1911 r1914 44 44 (String) ctx.getArgument(DefaultArguments.ARG_METADATAPREFIX); 45 45 MetadataFormat format = null; 46 for (MetadataFormat f : repository.getMetadataFormats(record)) { 47 if (prefix.equals(f.getPrefix())) { 46 // FIXME: re-work 47 for (MetadataFormat f : repository.getMetadataFormats()) { 48 if (f.getPrefix().equals(prefix) && record.supportsFormat(f)) { 48 49 format = f; 49 50 break; 50 51 } 51 52 } 53 52 54 if (format != null) { 53 55 OAIOutputStream out = ctx.getOutputStream(); 54 56 out.writeStartElement("GetRecord"); 55 out.writeRecord(record );57 out.writeRecord(record, format); 56 58 out.writeEndElement(); // GetRecord element 57 59 out.close(); -
OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/impl/VerbListIdentifiers.java
r1911 r1914 21 21 @Override 22 22 protected RecordList doGetRecords(RepositoryAdapter repository, 23 String prefix, Date from, Date until, String set, int offset)23 MetadataFormat format, Date from, Date until, String set, int offset) 24 24 throws OAIException { 25 return repository.getRecordHeaders( prefix, from, until, set, offset);25 return repository.getRecordHeaders(format, from, until, set, offset); 26 26 } 27 27 … … 29 29 protected void doWriteRecord(RepositoryAdapter repository, 30 30 OAIOutputStream out, MetadataFormat format, Record record) 31 throws XMLStreamException {31 throws XMLStreamException, OAIException { 32 32 out.writeRecordHeader(record); 33 33 } -
OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/impl/VerbListRecords.java
r1911 r1914 23 23 @Override 24 24 protected RecordList doGetRecords(RepositoryAdapter repository, 25 String prefix, Date from, Date until, String set, int offset)25 MetadataFormat format, Date from, Date until, String set, int offset) 26 26 throws OAIException { 27 return repository.getRecords( prefix, from, until, set, offset);27 return repository.getRecords(format, from, until, set, offset); 28 28 } 29 29 30 30 31 31 @Override 32 32 protected void doWriteRecord(RepositoryAdapter repository, 33 33 OAIOutputStream out, MetadataFormat format, Record record) 34 throws XMLStreamException { 35 // FIXME: rework (send MetadataFormat?) 36 out.writeRecord(record); 34 throws XMLStreamException, OAIException { 35 out.writeRecord(record, format); 37 36 } 38 37
Note: See TracChangeset
for help on using the changeset viewer.