Skip to content

Instantly share code, notes, and snippets.

@flisboac
Created November 5, 2016 13:36
Show Gist options
  • Save flisboac/78447dbb5132502723fda0a1133986d6 to your computer and use it in GitHub Desktop.
Save flisboac/78447dbb5132502723fda0a1133986d6 to your computer and use it in GitHub Desktop.
Pequena classe de limites contínuos. Guardando para uso posterior, ou não.
package seguradora.fuzzy.util;
import java.math.BigDecimal;
public class Limite {
private Number inferior;
private Number superior;
public Limite() {
}
public static Limite comInferior(Number inferior) {
Limite limite = new Limite();
limite.inferior = inferior;
return limite;
}
public static Limite comSuperior(Number superior) {
Limite limite = new Limite();
limite.superior = superior;
return limite;
}
public static Limite finito(Number inferior, Number superior) {
Limite limite = new Limite();
limite.inferior = inferior;
limite.superior = superior;
//if (limite.getInferior().compareTo(limite.getSuperior()) > 0) limite = null;
return limite;
}
public BigDecimal getInferior() {
return Numeros.paraBigDecimal(inferior);
}
public BigDecimal getSuperior() {
return Numeros.paraBigDecimal(superior);
}
public boolean isLimitadoInferior() {
return inferior != null;
}
public boolean isLimitadoSuperior() {
return superior != null;
}
public boolean isForaDoLimiteInferior(Number valor) {
BigDecimal valorDecimal = Numeros.paraBigDecimal(valor);
BigDecimal inferiorDecimal = getInferior();
boolean valido = valorDecimal != null;
if (valido && inferiorDecimal != null) {
valido = valido && valorDecimal.compareTo(inferiorDecimal) < 0;
}
return valido;
}
public boolean isForaDoLimiteSuperior(Number valor) {
BigDecimal valorDecimal = Numeros.paraBigDecimal(valor);
BigDecimal superiorDecimal = getInferior();
boolean valido = valorDecimal != null;
if (valido && superiorDecimal != null) {
valido = valido && valorDecimal.compareTo(superiorDecimal) > 0;
}
return valido;
}
public boolean isForaDosLimites(Number valor) {
BigDecimal valorDecimal = Numeros.paraBigDecimal(valor);
return isForaDoLimiteInferior(valorDecimal) || isForaDoLimiteSuperior(valorDecimal);
}
public boolean isDentroDoLimiteInferior(Number valor) {
BigDecimal valorDecimal = Numeros.paraBigDecimal(valor);
BigDecimal inferiorDecimal = getInferior();
boolean valido = valorDecimal != null;
if (valido && inferiorDecimal != null) {
valido = valido && valorDecimal.compareTo(inferiorDecimal) >= 0;
}
return valido;
}
public boolean isDentroDoLimiteSuperior(Number valor) {
BigDecimal valorDecimal = Numeros.paraBigDecimal(valor);
BigDecimal superiorDecimal = getInferior();
boolean valido = valorDecimal != null;
if (valido && superiorDecimal != null) {
valido = valido && valorDecimal.compareTo(superiorDecimal) <= 0;
}
return valido;
}
public boolean isDentroDosLimites(Number valor) {
BigDecimal valorDecimal = Numeros.paraBigDecimal(valor);
return isDentroDoLimiteInferior(valorDecimal) && isDentroDoLimiteSuperior(valorDecimal);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment