<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">package lecture_en;
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.*;
import lecture_en.jaxb_generated.Department;
import lecture_en.jaxb_generated.TPerson;
/**
 * @author Patryk Czarnik
 *
 */
public final class StaffJAXB {

  /**
   * @param args
   */
  public static void main(String[] args) {
    if(args.length &lt; 1) {
      System.out.println("Too few args");
      return;
    }

    int result = 0;

    try {
      JAXBContext jc = JAXBContext.newInstance(lecture_en.jaxb_generated.Department.class);
      
      
      Unmarshaller u = jc.createUnmarshaller();
      Department doc = (Department)u.unmarshal(new FileInputStream(args[0]));
      List&lt;TPerson&gt; employees = doc.getPerson();
      for(TPerson person : employees) {
        if("specialist".equals(person.getPosition())) {
        	if(person.getSalary() != null)
        		result += person.getSalary();
        }
      }
      System.out.println("Result: "+result);
    } catch(JAXBException e) {
      e.printStackTrace();
    } catch(FileNotFoundException e) {
      e.printStackTrace();
    }
  }
}
</pre></body></html>