public class Literal implements Comparable { private boolean negado; private String literal; /** Cria uma nova instância de Literal */ public Literal() { newLiteral(false, ""); } /** Cria uma nova instância de Literal passando parâmetros */ public Literal(boolean neg, String lit) { newLiteral(neg, lit); } /** Ajusta as variáveis membros. Este método é chamado pelos construtores */ private void newLiteral(boolean neg, String lit) { setNegado(neg); setLiteral(lit); } /** Compara este Literal com obj */ public int compareTo(Object obj) { Literal lit = new Literal(); if (obj instanceof Literal) { lit = (Literal) obj; } return lit.getLiteral().compareTo(literal); } /** Compara se este Literal é igual a obj */ public boolean equals(Object obj) { if (obj instanceof Literal) { Literal lit = (Literal) obj; if ((lit.isNegado() == negado) && (lit.getLiteral().equals(literal))) { return true; } } return false; } /** Retorna uma String que representa este Literal*/ public String toString() { return (negado ? "~" : "") + literal; } /** Retorna o valor de negado */ public boolean isNegado() { return negado; } /** Ajusta o valor de negado */ public void setNegado(boolean negado) { this.negado = negado; } /** Retorna o valor de literal */ public String getLiteral() { return literal; } /** Ajusta o valor de literal */ public void setLiteral(String literal) { this.literal = literal; }}