Changeset 1914


Ignore:
Timestamp:
04/27/12 12:51:47 (12 years ago)
Author:
oschonef
Message:
  • more refactoring
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  
    4949     */
    5050    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;
    5356} // interface Record
  • OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/Repository.java

    r1911 r1914  
    223223     * <em>ListRecords</em> and <em>ListIdentifiers</em> verbs.
    224224     *
    225      * @param prefix
     225     * @param format
    226226     *            requested metadata format (e.g "oai_dc")
    227227     * @param from
     
    242242     * @see RecordList
    243243     */
    244     public RecordList getRecords(String prefix, Date from, Date until,
     244    public RecordList getRecords(MetadataFormat format, Date from, Date until,
    245245            String set, int offset, int limit) throws OAIException;
    246246
     
    249249     * <em>ListRecords</em> and <em>ListIdentifiers</em> verbs.
    250250     *
    251      * @param prefix
     251     * @param format
    252252     *            requested metadata format (e.g "oai_dc")
    253253     * @param from
     
    268268     * @see RecordList
    269269     */
    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;
    272272
    273273} // interface Repository
  • OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/ext/OAIOutputStream.java

    r1911 r1914  
    99import javax.xml.stream.XMLStreamWriter;
    1010
     11import eu.clarin.oai.provider.MetadataFormat;
     12import eu.clarin.oai.provider.OAIException;
    1113import eu.clarin.oai.provider.Record;
    1214
     
    7678    public void writeRecordHeader(Record record) throws XMLStreamException;
    7779   
    78     public void writeRecord(Record record) throws XMLStreamException;
     80    public void writeRecord(Record record, MetadataFormat format)
     81            throws XMLStreamException, OAIException;
    7982
    8083} // interface OAIOutputStream
  • OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/ext/RepositoryAdapter.java

    r1911 r1914  
    3636    public Set<MetadataFormat> getMetadataFormats();
    3737
    38     public Set<MetadataFormat> getMetadataFormats(Record record);
     38//    public Set<MetadataFormat> getMetadataFormats(Record record);
    3939
    4040    public MetadataFormat getMetadataFormatByPrefix(String prefix);
     
    5252    public Record getRecordHeader(Object localId) throws OAIException;
    5353
    54     public RecordList getRecords(String prefix, Date from, Date until,
     54    public RecordList getRecords(MetadataFormat format, Date from, Date until,
    5555            String set, int offset) throws OAIException;
    5656
    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;
    5959
    6060    public ResumptionToken createResumptionToken();
  • OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/impl/OAIOutputStreamImpl.java

    r1911 r1914  
    1616import org.apache.commons.lang.time.FastDateFormat;
    1717
     18import eu.clarin.oai.provider.MetadataFormat;
     19import eu.clarin.oai.provider.OAIException;
    1820import eu.clarin.oai.provider.Record;
    1921import eu.clarin.oai.provider.Repository;
     
    253255
    254256    @Override
    255     public void writeRecord(Record record) throws XMLStreamException {
     257    public void writeRecord(Record record, MetadataFormat format)
     258            throws XMLStreamException, OAIException {
    256259        writer.writeStartElement("record");
    257260        writeRecordHeader(record);
     
    259262            writer.writeStartElement("metadata");
    260263            // FIXME: re-work!
    261             record.writeRecord(writer);
     264            record.writeRecord(writer, format);
    262265            writer.writeEndElement(); // metadata element
    263266        }
  • OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/impl/RepositoryAdapterImpl.java

    r1911 r1914  
    11package eu.clarin.oai.provider.impl;
    22
    3 import java.util.Collections;
    43import java.util.Date;
    54import java.util.HashSet;
     
    151150    }
    152151
    153     @Override
    154     public Set<MetadataFormat> getMetadataFormats(Record record) {
    155         // FIXME: re-work
    156 //        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//    }
    171170
    172171    @Override
     
    227226
    228227    @Override
    229     public RecordList getRecords(String prefix, Date from, Date until,
     228    public RecordList getRecords(MetadataFormat format, Date from, Date until,
    230229            String set, int offset) throws OAIException {
    231230        /*
     
    237236        }
    238237        try {
    239             return repository.getRecords(prefix, from, until, set, offset, limit);
     238            return repository.getRecords(format, from, until, set, offset, limit);
    240239        } catch (OAIException e) {
    241240            throw e;
     
    246245
    247246    @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 {
    250249        /*
    251250         * XXX: maybe add a OAIProvider defined upper limit?
     
    256255        }
    257256        try {
    258             return repository.getRecordHeaders(prefix, from, until, set, offset, limit);
     257            return repository.getRecordHeaders(format, from, until,
     258                    set, offset, limit);
    259259        } catch (OAIException e) {
    260260            throw e;
  • OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/impl/VerbEnumerateRecord.java

    r1911 r1914  
    8181            } else {
    8282                // fetch records
    83                 final RecordList result = doGetRecords(repository, prefix,
     83                final RecordList result = doGetRecords(repository, format,
    8484                        from, until, set, offset);
    8585
     
    113113                            }
    114114
    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 {
    117124                                result.writeRecord(writer);
    118125                            }
     
    165172
    166173    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)
    168175            throws OAIException;
    169176
    170177    protected abstract void doWriteRecord(RepositoryAdapter repository,
    171178            OAIOutputStream out, MetadataFormat format, Record record)
    172             throws XMLStreamException;
     179            throws XMLStreamException, OAIException;
    173180
    174181} // abstract class VerbEnumerateRecord
  • OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/impl/VerbGetRecord.java

    r1911 r1914  
    4444                (String) ctx.getArgument(DefaultArguments.ARG_METADATAPREFIX);
    4545            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)) {
    4849                    format = f;
    4950                    break;
    5051                }
    5152            }
     53
    5254            if (format != null) {
    5355                OAIOutputStream out = ctx.getOutputStream();
    5456                out.writeStartElement("GetRecord");
    55                 out.writeRecord(record);
     57                out.writeRecord(record, format);
    5658                out.writeEndElement(); // GetRecord element
    5759                out.close();
  • OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/impl/VerbListIdentifiers.java

    r1911 r1914  
    2121    @Override
    2222    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)
    2424            throws OAIException {
    25         return repository.getRecordHeaders(prefix, from, until, set, offset);
     25        return repository.getRecordHeaders(format, from, until, set, offset);
    2626    }
    2727
     
    2929    protected void doWriteRecord(RepositoryAdapter repository,
    3030            OAIOutputStream out, MetadataFormat format, Record record)
    31             throws XMLStreamException {
     31            throws XMLStreamException, OAIException {
    3232        out.writeRecordHeader(record);
    3333    }
  • OAIProvider/trunk/src/main/java/eu/clarin/oai/provider/impl/VerbListRecords.java

    r1911 r1914  
    2323    @Override
    2424    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)
    2626            throws OAIException {
    27         return repository.getRecords(prefix, from, until, set, offset);
     27        return repository.getRecords(format, from, until, set, offset);
    2828    }
    2929
    30 
     30   
    3131    @Override
    3232    protected void doWriteRecord(RepositoryAdapter repository,
    3333            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);
    3736    }
    3837
Note: See TracChangeset for help on using the changeset viewer.