Created
November 5, 2016 13:36
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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