package org.softlang.company.features;
import org.xml.sax.Attributes;
import org.xml.sax.helpers.DefaultHandler;
/**
* Compute the total all salaries of a company
*/
public class Total extends DefaultHandler {
private static String ns = "http://www.company.softlang.org/company.xsd";
private boolean isSalary = false;
private double total = 0;
/**
* Return the final result of query for totaling salaries.
*/
public double getTotal() {
return total;
}
/**
* Handle "start element"
*/
public void startElement(
String uri,
String name,
String qName,
Attributes atts) {
isSalary = (uri.equals(ns) && name.equals("salary"));
}
/**
* Handle "end element"
*/
public void endElement(
String uri,
String name,
String qName) {
isSalary = false;
}
/**
* Handle "characters"
*/
public void characters(
char ch[],
int start,
int length) {
if (isSalary) {
String str = String.valueOf(ch, start, length);
double salary = Double.parseDouble(str);
total += salary;
}
}
}