You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2016/11/02 05:54:26 UTC
karaf-decanter git commit: [KARAF-4749] Add BigDecimal support in SLA
checker
Repository: karaf-decanter
Updated Branches:
refs/heads/master 7f5cbf44e -> b34cc6c21
[KARAF-4749] Add BigDecimal support in SLA checker
Project: http://git-wip-us.apache.org/repos/asf/karaf-decanter/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf-decanter/commit/b34cc6c2
Tree: http://git-wip-us.apache.org/repos/asf/karaf-decanter/tree/b34cc6c2
Diff: http://git-wip-us.apache.org/repos/asf/karaf-decanter/diff/b34cc6c2
Branch: refs/heads/master
Commit: b34cc6c214e203b600f255d549a7805aecebdcd2
Parents: 7f5cbf4
Author: Jean-Baptiste Onofr� <jb...@apache.org>
Authored: Wed Nov 2 06:53:53 2016 +0100
Committer: Jean-Baptiste Onofr� <jb...@apache.org>
Committed: Wed Nov 2 06:53:53 2016 +0100
----------------------------------------------------------------------
.../karaf/decanter/sla/checker/Checker.java | 56 +++++++++++++++++++-
1 file changed, 55 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/b34cc6c2/sla/checker/src/main/java/org/apache/karaf/decanter/sla/checker/Checker.java
----------------------------------------------------------------------
diff --git a/sla/checker/src/main/java/org/apache/karaf/decanter/sla/checker/Checker.java b/sla/checker/src/main/java/org/apache/karaf/decanter/sla/checker/Checker.java
index 085a8d0..d254846 100644
--- a/sla/checker/src/main/java/org/apache/karaf/decanter/sla/checker/Checker.java
+++ b/sla/checker/src/main/java/org/apache/karaf/decanter/sla/checker/Checker.java
@@ -27,6 +27,7 @@ import org.osgi.service.event.EventHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.math.BigDecimal;
import java.util.Dictionary;
import java.util.HashMap;
import java.util.Map;
@@ -135,6 +136,13 @@ public class Checker implements EventHandler {
}
if (patterns[0].contains(".")) {
Float m = Float.parseFloat(patterns[0]);
+ if (value instanceof BigDecimal) {
+ BigDecimal v = new BigDecimal(value.toString());
+ BigDecimal mBD = new BigDecimal(m);
+ int compare = v.compareTo(mBD);
+ if (minIncluded && compare == -1) return false;
+ else if (compare <= 0) return false;
+ }
if (value instanceof Double) {
double v = value.doubleValue();
if (minIncluded && m > v) return false;
@@ -162,6 +170,13 @@ public class Checker implements EventHandler {
}
} else {
int m = Integer.parseInt(patterns[0]);
+ if (value instanceof BigDecimal) {
+ BigDecimal v = new BigDecimal(value.toString());
+ BigDecimal mBD = new BigDecimal(m);
+ int compare = v.compareTo(mBD);
+ if (minIncluded && compare == -1) return false;
+ else if (compare <= 0) return false;
+ }
if (value instanceof Double) {
double v = value.doubleValue();
if (minIncluded && m > v) return false;
@@ -190,6 +205,13 @@ public class Checker implements EventHandler {
}
if (patterns[1].contains(".")) {
Float m = Float.parseFloat(patterns[1]);
+ if (value instanceof BigDecimal) {
+ BigDecimal v = new BigDecimal(value.toString());
+ BigDecimal mBD = new BigDecimal(m);
+ int compare = v.compareTo(mBD);
+ if (maxIncluded && compare <= 0) return false;
+ else if (compare < 0) return false;
+ }
if (value instanceof Double) {
double v = value.doubleValue();
if (maxIncluded && m <= v) return false;
@@ -217,6 +239,13 @@ public class Checker implements EventHandler {
}
} else {
int m = Integer.parseInt(patterns[1]);
+ if (value instanceof BigDecimal) {
+ BigDecimal v = new BigDecimal(value.toString());
+ BigDecimal mBD = new BigDecimal(m);
+ int compare = v.compareTo(mBD);
+ if (maxIncluded && compare <= 0) return false;
+ else if (compare == -1) return false;
+ }
if (value instanceof Double) {
double v = value.doubleValue();
if (maxIncluded && m <= v) return false;
@@ -250,6 +279,12 @@ public class Checker implements EventHandler {
for (String p : patterns) {
if (p.contains(".")) {
float f = Float.parseFloat(p);
+ if (value instanceof BigDecimal) {
+ BigDecimal v = new BigDecimal(value.toString());
+ BigDecimal mBD = new BigDecimal(f);
+ int compare = v.compareTo(mBD);
+ if (compare != 0) return false;
+ }
if (value instanceof Double) {
double v = value.doubleValue();
if (v != f) return false;
@@ -272,6 +307,12 @@ public class Checker implements EventHandler {
}
} else {
int f = Integer.parseInt(p);
+ if (value instanceof BigDecimal) {
+ BigDecimal v = new BigDecimal(value.toString());
+ BigDecimal mBD = new BigDecimal(f);
+ int compare = v.compareTo(mBD);
+ if (compare != 0) return false;
+ }
if (value instanceof Double) {
double v = value.doubleValue();
if (v != f) return false;
@@ -301,6 +342,12 @@ public class Checker implements EventHandler {
for (String p : patterns) {
if (p.contains(".")) {
float f = Float.parseFloat(p);
+ if (value instanceof BigDecimal) {
+ BigDecimal v = new BigDecimal(value.toString());
+ BigDecimal mBD = new BigDecimal(f);
+ int compare = v.compareTo(mBD);
+ if (compare == 0) return false;
+ }
if (value instanceof Double) {
double v = value.doubleValue();
if (v == f) return false;
@@ -323,6 +370,12 @@ public class Checker implements EventHandler {
}
} else {
int f = Integer.parseInt(p);
+ if (value instanceof BigDecimal) {
+ BigDecimal v = new BigDecimal(value.toString());
+ BigDecimal mBD = new BigDecimal(f);
+ int compare = v.compareTo(mBD);
+ if (compare == 0) return false;
+ }
if (value instanceof Double) {
double v = value.doubleValue();
if (v == f) return false;
@@ -383,7 +436,8 @@ public class Checker implements EventHandler {
value instanceof Float ||
value instanceof Integer ||
value instanceof Long ||
- value instanceof Short) {
+ value instanceof Short ||
+ value instanceof BigDecimal) {
// we use a number checker
return validateNumber(pattern, (Number) value);
} else {