Changeset 3927 for OAIHarvester


Ignore:
Timestamp:
11/04/13 15:19:42 (11 years ago)
Author:
oschonef
Message:
  • minor updates
Location:
OAIHarvester/trunk/OAIHarvester/src/main/java/eu/clarin/cmdi/oai/harvester/impl
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • OAIHarvester/trunk/OAIHarvester/src/main/java/eu/clarin/cmdi/oai/harvester/impl/Response.java

    r3015 r3927  
    201201        if (!reader.isEndElement()) {
    202202            while (reader.hasNext()) {
    203 //                System.err.println("  LOOP: " + dumpState());
    204                 consumeWhitespace();
     203                // System.err.println("  LOOP: " + dumpState());
     204                if (reader.isWhiteSpace()) {
     205                    reader.next();
     206                    continue;
     207                }
    205208                if (reader.isStartElement()) {
    206209                    if (namespaceURI.equals(reader.getNamespaceURI()) &&
     
    223226        }
    224227        if (required) {
    225             logger.error("fail: {}", dumpState());
    226 
    227228            // System.err.println("--> error, not found @ " +
    228229            // toReadable(reader));
    229             if (reader.hasName()) {
    230                 throw new XMLStreamException("expected element '" +
    231                         new QName(namespaceURI, localName) + "', but found '" +
    232                         reader.getName() + "'", reader.getLocation());
    233             } else {
    234                 throw new XMLStreamException("unexpacted state while scanning for start tag for element '" + new QName(namespaceURI, localName) + "'", reader.getLocation());
    235             }
     230            throw new XMLStreamException("expected element '" +
     231                    new QName(namespaceURI, localName) + "', but found '" +
     232                    reader.getName() + "'", reader.getLocation());
    236233        }
    237234        // System.err.println("--> not found @ " + toReadable(reader));
     
    254251            // System.err.println("  LOOP " + dumpState() + " [" +
    255252            // level + "]");
    256             consumeWhitespace();
     253            if (reader.isWhiteSpace()) {
     254                reader.next();
     255                continue;
     256            }
    257257            if (skipContent) {
    258258                if (reader.isCharacters()) {
     
    294294    boolean peekStart(String namespaceURI, String localName)
    295295            throws XMLStreamException {
    296         if (!reader.isEndElement()) {
    297             while (reader.hasNext()) {
    298                 // System.err.println("  LOOP: " + dumpState());
    299                 if (reader.isWhiteSpace()) {
    300                     reader.next();
    301                     continue;
    302                 }
    303                 if (reader.isStartElement()) {
    304                     if (namespaceURI.equals(reader.getNamespaceURI()) &&
    305                             localName.equals(reader.getLocalName())) {
    306                         return true;
    307                     } else {
    308                         return false;
    309                     }
    310                 }
    311                 if (reader.isCharacters() || reader.isEndElement()) {
    312                     break;
    313                 }
    314                 reader.next();
    315             } // while
    316         }
    317         return false;
     296        if (reader.isWhiteSpace()) {
     297            consumeWhitespace();
     298        }
     299        if (!reader.isStartElement()) {
     300            return false;
     301        }
     302        return namespaceURI.equals(reader.getNamespaceURI()) &&
     303                localName.equals(reader.getLocalName());
    318304    }
    319305
  • OAIHarvester/trunk/OAIHarvester/src/main/java/eu/clarin/cmdi/oai/harvester/impl/XmlStreamReaderProxy.java

    r3011 r3927  
    88import javax.xml.stream.XMLStreamReader;
    99
    10 class XmlStreamReaderProxy implements XMLStreamReader {
     10
     11final class XmlStreamReaderProxy implements XMLStreamReader {
    1112    private static enum State {
    1213        START_DOCUMENT, PROCESSING, END_DOCUMENT, PAST_END_DOCUMENT
    1314    }
     15
    1416    private XMLStreamReader reader;
    1517    private State state;
    1618    private int depth;
    1719
     20
    1821    XmlStreamReaderProxy() {
    1922        super();
    2023    }
     24
    2125
    2226    void reset(XMLStreamReader reader) throws XMLStreamException {
     
    2630    }
    2731
     32
    2833    @Override
    2934    public void close() throws XMLStreamException {
    3035    }
    3136
     37
    3238    @Override
    3339    public int getAttributeCount() {
     
    3541                XMLStreamConstants.ATTRIBUTE)) {
    3642            throw new IllegalStateException(
    37                     "Current event is not START_ELEMENT or ATTRIBUTE: " + reader.getLocation());
     43                    "Current event is not START_ELEMENT or ATTRIBUTE");
    3844        }
    3945        return reader.getAttributeCount();
    4046    }
    4147
     48
    4249    @Override
    4350    public String getAttributeLocalName(int index) {
     
    4552                XMLStreamConstants.ATTRIBUTE)) {
    4653            throw new IllegalStateException(
    47                     "Current event is not START_ELEMENT or ATTRIBUTE: " + reader.getLocation());
     54                    "Current event is not START_ELEMENT or ATTRIBUTE");
    4855        }
    4956        return reader.getAttributeLocalName(index);
    5057    }
    5158
     59
    5260    @Override
    5361    public QName getAttributeName(int index) {
     
    5563                XMLStreamConstants.ATTRIBUTE)) {
    5664            throw new IllegalStateException(
    57                     "Current event is not START_ELEMENT or ATTRIBUTE: " + reader.getLocation());
     65                    "Current event is not START_ELEMENT or ATTRIBUTE");
    5866        }
    5967        return reader.getAttributeName(index);
    6068    }
    6169
     70
    6271    @Override
    6372    public String getAttributeNamespace(int index) {
     
    6574                XMLStreamConstants.ATTRIBUTE)) {
    6675            throw new IllegalStateException(
    67                     "Current event is not START_ELEMENT or ATTRIBUTE: " + reader.getLocation());
     76                    "Current event is not START_ELEMENT or ATTRIBUTE");
    6877        }
    6978        return reader.getAttributeNamespace(index);
    7079    }
    7180
     81
    7282    @Override
    7383    public String getAttributePrefix(int index) {
     
    7585                XMLStreamConstants.ATTRIBUTE)) {
    7686            throw new IllegalStateException(
    77                     "Current event is not START_ELEMENT or ATTRIBUTE: " + reader.getLocation());
     87                    "Current event is not START_ELEMENT or ATTRIBUTE");
    7888        }
    7989        return reader.getAttributePrefix(index);
    8090    }
    8191
     92
    8293    @Override
    8394    public String getAttributeType(int index) {
     
    8596                XMLStreamConstants.ATTRIBUTE)) {
    8697            throw new IllegalStateException(
    87                     "Current event is not START_ELEMENT or ATTRIBUTE: " + reader.getLocation());
     98                    "Current event is not START_ELEMENT or ATTRIBUTE");
    8899        }
    89100        return reader.getAttributeType(index);
    90101    }
    91102
     103
    92104    @Override
    93105    public String getAttributeValue(int index) {
     
    95107                XMLStreamConstants.ATTRIBUTE)) {
    96108            throw new IllegalStateException(
    97                     "Current event is not START_ELEMENT or ATTRIBUTE: " + reader.getLocation());
     109                    "Current event is not START_ELEMENT or ATTRIBUTE");
    98110        }
    99111        return reader.getAttributeValue(index);
    100112    }
    101113
     114
    102115    @Override
    103116    public String getAttributeValue(String namespaceURI, String localName) {
     
    105118                XMLStreamConstants.ATTRIBUTE)) {
    106119            throw new IllegalStateException(
    107                     "Current event is not START_ELEMENT or ATTRIBUTE: " + reader.getLocation());
     120                    "Current event is not START_ELEMENT or ATTRIBUTE");
    108121        }
    109122        return reader.getAttributeValue(namespaceURI, localName);
    110123    }
     124
    111125
    112126    @Override
     
    115129    }
    116130
     131
    117132    @Override
    118133    public String getElementText() throws XMLStreamException {
    119134        if (!checkEventType(XMLStreamConstants.START_ELEMENT)) {
    120135            throw new IllegalStateException(
    121                     "Current event is not START_ELEMENT: " + reader.getLocation());
     136                    "Current event is not START_ELEMENT");
    122137        }
    123138        return reader.getElementText();
    124139    }
     140
    125141
    126142    @Override
     
    128144        return reader.getEncoding();
    129145    }
     146
    130147
    131148    @Override
     
    145162    }
    146163
     164
    147165    @Override
    148166    public String getLocalName() {
     
    150168                XMLStreamConstants.END_ELEMENT,
    151169                XMLStreamConstants.ENTITY_REFERENCE)) {
    152             throw new IllegalStateException("Current event is not " +
    153                     "START_ELEMENT, END_ELEMENT or ENTITY_REFERENCE");
     170            throw new IllegalStateException("Current event is not "
     171                    + "START_ELEMENT, END_ELEMENT or ENTITY_REFERENCE");
    154172        }
    155173        return reader.getLocalName();
    156174    }
     175
    157176
    158177    @Override
     
    161180    }
    162181
     182
    163183    @Override
    164184    public QName getName() {
    165185        if (!checkEventTypes(XMLStreamConstants.START_ELEMENT,
    166186                XMLStreamConstants.END_ELEMENT)) {
    167             throw new IllegalStateException("Current event is not " +
    168                     "START_ELEMENT or END_ELEMENT: " + reader.getLocation());
     187            throw new IllegalStateException("Current event is not "
     188                    + "START_ELEMENT or END_ELEMENT");
    169189        }
    170190        return reader.getName();
    171191    }
    172192
     193
    173194    @Override
    174195    public NamespaceContext getNamespaceContext() {
    175196        if (!checkEventTypes(XMLStreamConstants.START_ELEMENT,
    176197                XMLStreamConstants.END_ELEMENT, XMLStreamConstants.NAMESPACE)) {
    177             throw new IllegalStateException("Current event is not " +
    178                     "START_ELEMENT, END_ELEMENT or NAMESPACE: " + reader.getLocation());
     198            throw new IllegalStateException("Current event is not "
     199                    + "START_ELEMENT, END_ELEMENT or NAMESPACE");
    179200        }
    180201        return reader.getNamespaceContext();
    181202    }
    182203
     204
    183205    @Override
    184206    public int getNamespaceCount() {
    185207        if (!checkEventTypes(XMLStreamConstants.START_ELEMENT,
    186208                XMLStreamConstants.END_ELEMENT, XMLStreamConstants.NAMESPACE)) {
    187             throw new IllegalStateException("Current event is not " +
    188                     "START_ELEMENT, END_ELEMENT or NAMESPACE: " + reader.getLocation());
     209            throw new IllegalStateException("Current event is not "
     210                    + "START_ELEMENT, END_ELEMENT or NAMESPACE");
    189211        }
    190212        return reader.getNamespaceCount();
    191213    }
    192214
     215
    193216    @Override
    194217    public String getNamespacePrefix(int index) {
    195218        if (!checkEventTypes(XMLStreamConstants.START_ELEMENT,
    196219                XMLStreamConstants.END_ELEMENT, XMLStreamConstants.NAMESPACE)) {
    197             throw new IllegalStateException("Current event is not " +
    198                     "START_ELEMENT, END_ELEMENT or NAMESPACE: " + reader.getLocation());
     220            throw new IllegalStateException("Current event is not "
     221                    + "START_ELEMENT, END_ELEMENT or NAMESPACE");
    199222        }
    200223        return reader.getNamespacePrefix(index);
    201224    }
    202225
     226
    203227    @Override
    204228    public String getNamespaceURI() {
    205229        if (!checkEventTypes(XMLStreamConstants.START_ELEMENT,
    206230                XMLStreamConstants.END_ELEMENT, XMLStreamConstants.NAMESPACE)) {
    207             throw new IllegalStateException("Current event is not " +
    208                     "START_ELEMENT, END_ELEMENT or NAMESPACE: " + reader.getLocation());
     231            throw new IllegalStateException("Current event is not "
     232                    + "START_ELEMENT, END_ELEMENT or NAMESPACE");
    209233        }
    210234        return reader.getNamespaceURI();
    211235    }
     236
    212237
    213238    @Override
     
    216241    }
    217242
     243
    218244    @Override
    219245    public String getNamespaceURI(int index) {
    220246        if (!checkEventTypes(XMLStreamConstants.START_ELEMENT,
    221247                XMLStreamConstants.END_ELEMENT, XMLStreamConstants.NAMESPACE)) {
    222             throw new IllegalStateException("Current event is not " +
    223                     "START_ELEMENT, END_ELEMENT or NAMESPACE: " + reader.getLocation());
     248            throw new IllegalStateException("Current event is not "
     249                    + "START_ELEMENT, END_ELEMENT or NAMESPACE");
    224250        }
    225251        return reader.getNamespaceURI(index);
    226252    }
     253
    227254
    228255    @Override
     
    230257        if (!checkEventType(XMLStreamConstants.PROCESSING_INSTRUCTION)) {
    231258            throw new IllegalStateException(
    232                     "Current event is not PROCESSING_INSTRUCTION: " + reader.getLocation());
     259                    "Current event is not PROCESSING_INSTRUCTION");
    233260        }
    234261        return reader.getPIData();
    235262    }
     263
    236264
    237265    @Override
     
    239267        if (!checkEventType(XMLStreamConstants.PROCESSING_INSTRUCTION)) {
    240268            throw new IllegalStateException(
    241                     "Current event is not PROCESSING_INSTRUCTION: " + reader.getLocation());
     269                    "Current event is not PROCESSING_INSTRUCTION");
    242270        }
    243271        return reader.getPITarget();
    244272    }
     273
    245274
    246275    @Override
     
    249278    }
    250279
     280
    251281    @Override
    252282    public Object getProperty(String name) throws IllegalArgumentException {
     
    254284    }
    255285
     286
    256287    @Override
    257288    public String getText() {
    258289        if (!checkEventTypes(XMLStreamConstants.CHARACTERS,
    259                 XMLStreamConstants.CDATA,
    260                 XMLStreamConstants.COMMENT,
    261                 XMLStreamConstants.SPACE,
    262                 XMLStreamConstants.ENTITY_REFERENCE)) {
     290                XMLStreamConstants.CDATA, XMLStreamConstants.COMMENT,
     291                XMLStreamConstants.SPACE, XMLStreamConstants.ENTITY_REFERENCE)) {
    263292            throw new IllegalStateException("Current event is a text event");
    264293        }
    265294        return reader.getText();
    266295    }
     296
    267297
    268298    @Override
    269299    public char[] getTextCharacters() {
    270300        if (!checkEventTypes(XMLStreamConstants.CHARACTERS,
    271                 XMLStreamConstants.CDATA,
    272                 XMLStreamConstants.COMMENT,
     301                XMLStreamConstants.CDATA, XMLStreamConstants.COMMENT,
    273302                XMLStreamConstants.SPACE)) {
    274303            throw new IllegalStateException("Current event is a text event");
     
    276305        return reader.getTextCharacters();
    277306    }
     307
    278308
    279309    @Override
     
    290320    }
    291321
     322
    292323    @Override
    293324    public int getTextLength() {
    294325        if (!checkEventTypes(XMLStreamConstants.CHARACTERS,
    295                 XMLStreamConstants.CDATA,
    296                 XMLStreamConstants.COMMENT,
     326                XMLStreamConstants.CDATA, XMLStreamConstants.COMMENT,
    297327                XMLStreamConstants.SPACE)) {
    298328            throw new IllegalStateException("invalid state");
     
    301331    }
    302332
     333
    303334    @Override
    304335    public int getTextStart() {
    305336        if (!checkEventTypes(XMLStreamConstants.CHARACTERS,
    306                 XMLStreamConstants.CDATA,
    307                 XMLStreamConstants.COMMENT,
     337                XMLStreamConstants.CDATA, XMLStreamConstants.COMMENT,
    308338                XMLStreamConstants.SPACE)) {
    309339            throw new IllegalStateException("invalid state");
     
    312342    }
    313343
     344
    314345    @Override
    315346    public String getVersion() {
     
    317348    }
    318349
     350
    319351    @Override
    320352    public boolean hasName() {
     
    330362        }
    331363    }
     364
    332365
    333366    @Override
     
    339372    }
    340373
     374
    341375    @Override
    342376    public boolean hasText() {
     
    353387    }
    354388
     389
    355390    @Override
    356391    public boolean isAttributeSpecified(int index) {
     
    363398    }
    364399
     400
    365401    @Override
    366402    public boolean isCharacters() {
     
    377413    }
    378414
     415
    379416    @Override
    380417    public boolean isEndElement() {
     
    390427        }
    391428    }
     429
    392430
    393431    @Override
     
    396434    }
    397435
     436
    398437    @Override
    399438    public boolean isStartElement() {
     
    410449    }
    411450
     451
    412452    @Override
    413453    public boolean isWhiteSpace() {
     
    423463        }
    424464    }
     465
    425466
    426467    @Override
     
    461502        return type;
    462503    }
     504
    463505
    464506    @Override
     
    490532        if ((type != XMLStreamConstants.START_ELEMENT) &&
    491533                (type != XMLStreamConstants.END_ELEMENT)) {
    492             throw new XMLStreamException("expected start or end tag", getLocation());
     534            throw new XMLStreamException("expected start or end tag",
     535                    getLocation());
    493536        }
    494537        return type;
    495538    }
     539
    496540
    497541    @Override
     
    501545    }
    502546
     547
    503548    @Override
    504549    public boolean standaloneSet() {
     
    506551    }
    507552
     553
    508554    private boolean checkEventType(int type) {
    509555        switch (state) {
     
    518564        } // switch
    519565    }
     566
    520567
    521568    private boolean checkEventTypes(int... types) {
Note: See TracChangeset for help on using the changeset viewer.