Exemplo n.º 1
0
 private static Partition parsePartition(final XMLStreamReader reader) throws XMLStreamException {
   final Partition partition = new Partition();
   while (reader.hasNext()) {
     final int eventType = reader.next();
     if (eventType != START_ELEMENT && eventType != END_ELEMENT) {
       continue;
     }
     final XmlElement element = XmlElement.forName(reader.getLocalName());
     switch (eventType) {
       case START_ELEMENT:
         switch (element) {
           case MAPPER:
             partition.setMapper(parseRefArtifact(reader, XmlElement.MAPPER));
             break;
           case PLAN:
             partition.setPlan(parsePartitionPlan(reader));
             break;
           case COLLECTOR:
             partition.setCollector(parseRefArtifact(reader, XmlElement.COLLECTOR));
             break;
           case ANALYZER:
             partition.setAnalyzer(parseRefArtifact(reader, XmlElement.ANALYZER));
             break;
           case REDUCER:
             partition.setReducer(parseRefArtifact(reader, XmlElement.REDUCER));
             break;
           default:
             throw BatchLogger.LOGGER.unexpectedXmlElement(
                 reader.getLocalName(), reader.getLocation());
         }
         break;
       case END_ELEMENT:
         if (element == XmlElement.PARTITION) {
           return partition;
         } else {
           throw BatchLogger.LOGGER.unexpectedXmlElement(
               reader.getLocalName(), reader.getLocation());
         }
     }
   }
   throw BatchLogger.LOGGER.unexpectedXmlElement(reader.getLocalName(), reader.getLocation());
 }