package wyklad_pl;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.math.BigInteger;
import java.util.List;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import jaxb_generated.*;

/**
 * 
 */

/**
 * @author Patryk Czarnik
 *
 */
public final class LiczbyJAXB {

  /**
   * @param args
   */
  public static void main(String[] args) {
    if(args.length < 1) {
      System.out.println("Za malo parametrow");
      return;
    }

    int result = 0;

    try {
      JAXBContext jc = JAXBContext.newInstance("jaxb_generated");
      Unmarshaller u = jc.createUnmarshaller();
      Liczby doc = (Liczby)u.unmarshal(new FileInputStream(args[0]));
      List<Grupa> grupy = doc.getGrupa();
      for(Grupa grupa : grupy) {
        if("tak".equals(grupa.getWazne())) {
          result += processGroup(grupa);
        }
      }
    } catch(JAXBException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch(FileNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
  
  private static int processGroup(Grupa aGrupa) {
    int result = 0;
    
    List<JAXBElement<BigInteger>> elems = aGrupa.getLOrS();
    for(JAXBElement<BigInteger> elem : elems) {
      if("l".equals(elem.getName().getLocalPart())) {
        BigInteger val = elem.getValue();
        result += val.intValue();
      }
    }
    return result;
  }
}
