Sou novo em programação java, então quem puder me ajudar, ficarei muito grato. Meu código abaixo está me retornando 2 warnings que não sei como acertar. Alguém se habilita. Muito obrigado pessoal.
package xmlgrandesax;
import java.io.File;
import com.sun.management.OperatingSystemMXBean;
import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
/**********************************************************/
class Usuario implements Comparable{
private String nome;
private int ocorrencias;
public Usuario() {
}
public Usuario(String nome, int ocorrencias) {
this.nome = nome;
this.ocorrencias = ocorrencias;
}
public String getNome() {
return nome;
}
public int getOcorrencias() {
return ocorrencias;
}
public void incOcorrencias() {
this.ocorrencias++;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setOcorrencias(int ocorrencias) {
this.ocorrencias = ocorrencias;
}
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Usuario other = (Usuario) obj;
if (this.nome == null || !this.nome.equals(other.nome)) {
return false;
}
return true;
}
public int compareTo(Object o) {
if (o == null)
return 0;
final Usuario other = (Usuario) o;
if (this.ocorrencias > other.getOcorrencias())
return -1;
else if (this.ocorrencias < other.getOcorrencias())
return 1;
return 0;
}
public String toString(){
StringBuffer str = new StringBuffer("Nome: ");
str.append(nome);
str.append("\t");
// str.append("Ocorrências: ");
str.append(ocorrencias);
return str.toString();
}
}
/**********************************************************/
class ListaDeUsuarios extends ArrayList {
public ListaDeUsuarios() {
super();
}
public void incOcorrencia(Usuario usuario){
if (this.contains(usuario)){
this.get(this.indexOf(usuario)).incOcorrencias();
usuario = null;
}
else
this.add(usuario);
}
public void sort(){
Collections.sort(this);
}
public String toString(){
StringBuffer str = new StringBuffer();
for (Iterator<Usuario> it = this.iterator(); it.hasNext();) {
Usuario usuario = it.next();
str.append(usuario);
str.append("\n");
}
return str.toString();
}
}
public class MySaxApp extends DefaultHandler {
boolean inUsuario;
ListaDeUsuarios list;
public MySaxApp() {
super();
list = new ListaDeUsuarios();
}
public static void main (String args[]) throws Exception {
if (args.length != 1) {
System.err.println("Modo de usar: MySAXApp <nome do arquivo XML>");
System.exit(1);
}
// Usa uma instância da propria classe como o gerenciador de eventos SAX
DefaultHandler handler = new MySaxApp();
// Usa o parsing default (sem validação)
SAXParserFactory factory = SAXParserFactory.newInstance();
try {
// Faz o parsing
SAXParser saxParser = factory.newSAXParser();
OperatingSystemMXBean osM = (OperatingSystemMXBean)ManagementFactory.getOperatingSystemMXBean();
MemoryMXBean menM = (MemoryMXBean)ManagementFactory.getMemoryMXBean();
System.out.println("Tempo de CPU:" + osM.getProcessCpuTime());
System.out.println("Memoria: " + osM.getCommittedVirtualMemorySize());
System.out.println("Memoria Livre: " + osM.getFreePhysicalMemorySize());
long tempoAntes = System.nanoTime();
saxParser.parse(new File(args[0]), handler );
long tempoDepois = System.nanoTime();
System.out.println("Tempo de CPU:" + osM.getProcessCpuTime());
System.out.println("Memoria: " + osM.getCommittedVirtualMemorySize());
System.out.println("Memoria Livre: " + osM.getFreePhysicalMemorySize());
System.out.println("Tempo total (ns): "+ ((tempoDepois -tempoAntes)));
} catch (Throwable t) {
t.printStackTrace();
}
System.exit(0);
}
public void characters(char[] ch, int start, int length) throws SAXException {
if (inUsuario){
list.incOcorrencia(new Usuario(new String(ch, start, length),1));
}
}
public void endDocument() throws SAXException {
list.sort();
System.out.println(list);
System.out.println("total: "+list.size());
}
public void endElement(String uri, String localName, String qName) throws SAXException {
inUsuario = false;
}
public void processingInstruction(String target, String data) throws SAXException {
super.processingInstruction(target, data);
}
public void startDocument() throws SAXException {
}
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
if (qName.equals("author")){
inUsuario = true;
}
}
}