BUG-5222: remove sal-dom-xsql
[controller.git] / opendaylight / md-sal / sal-dom-xsql / src / main / java / org / opendaylight / controller / md / sal / dom / xsql / XSQLCriteria.java
diff --git a/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLCriteria.java b/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLCriteria.java
deleted file mode 100644 (file)
index aa2d8b9..0000000
+++ /dev/null
@@ -1,383 +0,0 @@
-/*
- * Copyright (c) 2014, 2015 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.controller.md.sal.dom.xsql;
-
-import java.io.Serializable;
-import java.lang.reflect.Method;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * To be removed in Nitrogen
- */
-@Deprecated
-public class XSQLCriteria implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private static final String operators[] =
-        new String[] {" and ", " or ", ">=", "<=", "!=", "=", ">", "<", "like",
-            "is null", "not null", "skip"};
-    private static final String STRING_CHAR = "'";
-
-    public static final int OP_CODE_AND = 0;
-    public static final int OP_CODE_OR = 1;
-    public static final int OP_CODE_GTEQ = 2;
-    public static final int OP_CODE_LTEQ = 3;
-    public static final int OP_CODE_NOT_EQ = 4;
-    public static final int OP_CODE_EQUAL = 5;
-    public static final int OP_CODE_GT = 6;
-    public static final int OP_CODE_LT = 7;
-    public static final int OP_CODE_LIKE = 8;
-    public static final int OP_CODE_NULL = 9;
-    public static final int OP_CODE_NOT_NULL = 10;
-    public static final int OP_CODE_SKIP = 11;
-
-    private XSQLCriteria left = null;
-    private XSQLCriteria right = null;
-
-    private int operation = -1;
-
-    private Object leftValue = null;
-    private Object rightValue = null;
-    private String criteria = null;
-
-    private static final Map<Class<?>, Map<String, Method>> methodCache =
-            new ConcurrentHashMap<>();
-
-    public XSQLCriteria(final String data, final int parentOperation) {
-        criteria = data;
-        parse(data, parentOperation);
-    }
-
-    private void parse(String data, int parentOperation) {
-
-        data = data.trim();
-
-        int index1 = data.indexOf("(");
-        if (index1 != -1) {
-            String leftCondition = data.substring(0, index1).trim();
-            if (leftCondition.trim().equals("")) {
-                int index2 = data.lastIndexOf(")");
-                if (index2 < data.length() - 1) {
-                    String rtValue = data.substring(index2 + 1).trim();
-                    if (!rtValue.equals("")) {
-                        left =
-                            new XSQLCriteria(data.substring(index1 + 1, index2),
-                                parentOperation);
-                        data = data.substring(index2 + 1);
-                    } else {
-                        data = data.substring(1, index2);
-                    }
-                } else {
-                    data = data.substring(1, index2);
-                }
-            } else {
-                right = new XSQLCriteria(
-                    data.substring(index1 + 1, data.length() - 1),
-                    parentOperation);
-                data = data.substring(0, index1);
-            }
-        }
-
-        for (int i = 0; i < operators.length; i++) {
-            index1 = data.indexOf(operators[i]);
-            if (index1 != -1) {
-                this.operation = i;
-                if (left == null) {
-                    left = new XSQLCriteria(data.substring(0, index1),
-                        this.operation);
-                }
-                if (left.leftValue != null && left.rightValue == null
-                    && left.right == null) {
-                    leftValue = left.leftValue;
-                    left = null;
-                }
-                if (right == null) {
-                    right = new XSQLCriteria(
-                        data.substring(index1 + operators[i].length()),
-                        this.operation);
-                }
-                if (right.leftValue != null && right.rightValue == null
-                    && right.right == null) {
-                    rightValue = right.leftValue;
-                    right = null;
-                }
-                return;
-            }
-        }
-
-        if (data.startsWith("'") && data.endsWith("'")) {
-            data = data.substring(1, data.length() - 1);
-        }
-
-        if (parentOperation == OP_CODE_LIKE && data.startsWith("%") && data.endsWith("%")
-            && data.substring(1, data.length() - 1).indexOf("%") == -1) {
-            data = data.substring(1, data.length() - 1);
-        }
-
-        leftValue = data;
-    }
-
-    public static Object getValue(Object element, String propertyName) {
-        try {
-            Map<String, Method> cache = methodCache.get(element.getClass());
-            if (cache == null) {
-                cache = new ConcurrentHashMap<>();
-                methodCache.put(element.getClass(), cache);
-            }
-
-            Method m = cache.get(propertyName);
-            if (m == null) {
-                Method methods[] = element.getClass().getMethods();
-                for (Method mm : methods) {
-                    if (mm.getName().equals(propertyName) || mm.getName()
-                        .equals("get" + propertyName) || mm.getName()
-                        .equals("is" + propertyName)) {
-                        m = mm;
-                        m.setAccessible(true);
-                        cache.put(propertyName, m);
-                        break;
-                    }
-                }
-            }
-
-            Object value = null;
-            if (m == null) {
-                return null;
-            }
-            if (m.getParameterTypes() == null
-                || m.getParameterTypes().length == 0) {
-                value = m.invoke(element, null);
-            } else {
-                if (String.class.isAssignableFrom(m.getParameterTypes()[0])) {
-                    return null;
-                }
-                Object arg = m.getParameterTypes()[0].newInstance();
-                value = m.invoke(element, arg);
-            }
-            return value;
-        } catch (Exception err) {
-            err.printStackTrace();
-        }
-        return null;
-    }
-
-    public int isObjectFitCriteria(Object element, String propertyName) {
-        Object value = getValue(element, propertyName);
-        if (value != null) {
-            value = value.toString();
-        }
-        return checkValue(value);
-    }
-
-    public int checkValue(Object value) {
-        if (leftValue != null && rightValue != null) {
-            Object aSide = null;
-            Object bSide = null;
-            if (leftValue.equals("?")) {
-                aSide = value;
-            } else {
-                aSide = leftValue;
-            }
-
-            if (rightValue.equals("?")) {
-                bSide = value;
-            } else {
-                bSide = rightValue;
-            }
-            if (operation != OP_CODE_SKIP && operation != OP_CODE_NULL) {
-                if (aSide == null && bSide != null) {
-                    return 0;
-                } else if (aSide != null && bSide == null) {
-                    return 0;
-                } else if (aSide == null && bSide == null) {
-                    return 1;
-                }
-            }
-            switch (operation) {
-                case OP_CODE_EQUAL:
-                    if (aSide.equals(bSide)) {
-                        return 1;
-                    } else {
-                        return 0;
-                    }
-                case OP_CODE_NOT_EQ:
-                    if (!aSide.equals(bSide)) {
-                        return 1;
-                    } else {
-                        return 0;
-                    }
-                case OP_CODE_LIKE:
-                    if (aSide.toString().indexOf(bSide.toString()) != -1) {
-                        return 1;
-                    } else {
-                        return 0;
-                    }
-                case OP_CODE_NULL:
-                    if (aSide == null) {
-                        return 1;
-                    } else {
-                        return 0;
-                    }
-                case OP_CODE_NOT_NULL:
-                    if (aSide != null) {
-                        return 1;
-                    } else {
-                        return 0;
-                    }
-                case OP_CODE_GT:
-                    if (aSide == null || bSide == null) {
-                        return 0;
-                    }
-                    if (Double.parseDouble(aSide.toString().trim()) > Double
-                        .parseDouble(bSide.toString().trim())) {
-                        return 1;
-                    } else {
-                        return 0;
-                    }
-                case OP_CODE_GTEQ:
-                    if (aSide == null || bSide == null) {
-                        return 0;
-                    }
-                    if (Double.parseDouble(aSide.toString().trim()) >= Double
-                        .parseDouble(bSide.toString().trim())) {
-                        return 1;
-                    } else {
-                        return 0;
-                    }
-
-                case OP_CODE_LT:
-                    if (aSide == null || bSide == null) {
-                        return 0;
-                    }
-                    if (Double.parseDouble(aSide.toString().trim()) < Double
-                        .parseDouble(bSide.toString().trim())) {
-                        return 1;
-                    } else {
-                        return 0;
-                    }
-                case OP_CODE_LTEQ:
-                    if (aSide == null || bSide == null) {
-                        return 0;
-                    }
-                    if (Double.parseDouble(aSide.toString().trim()) <= Double
-                        .parseDouble(bSide.toString().trim())) {
-                        return 1;
-                    } else {
-                        return 0;
-                    }
-            }
-        }
-
-        int leftResult = 0;
-        if (left != null) {
-            leftResult = left.checkValue(value);
-        }
-
-        int rightResult = 0;
-        if (right != null) {
-            rightResult = right.checkValue(value);
-        }
-
-        if (operation == OP_CODE_SKIP) {
-            if (rightResult == 0) {
-                return 2;
-            } else {
-                return 3;
-            }
-        }
-
-        if (operation == OP_CODE_AND) {
-            if (leftResult == 0) {
-                return 0;
-            }
-            if (rightResult == 0) {
-                return 0;
-            }
-            if (leftResult >= 2) {
-                return leftResult;
-            }
-            if (rightResult >= 2) {
-                return rightResult;
-            }
-
-            return 1;
-        }
-
-        if (operation == OP_CODE_OR) {
-            if (leftResult == 0 && rightResult == 0) {
-                return 0;
-            }
-            if (leftResult >= 2) {
-                return leftResult;
-            }
-            if (rightResult >= 2) {
-                return rightResult;
-            }
-            return 1;
-        }
-
-        return 0;
-    }
-
-    public String toString() {
-        return criteria;
-    }
-
-    public String getCriteriaForProperty(XSQLColumn col) {
-        StringBuffer result = new StringBuffer();
-        if (criteria == null) {
-            return "";
-        }
-
-        if (leftValue != null && rightValue != null) {
-            if (leftValue.toString().toLowerCase().equals(col.getName().toLowerCase()) ||
-                leftValue.toString().toLowerCase().equals(col.toString().toLowerCase()) /*||
-                /*col.getName().toLowerCase().indexOf(leftValue.toString().toLowerCase()) != -1*/) {
-                result.append("? ").append(operators[operation]).append(" ").append(rightValue);
-            }else
-            if (rightValue.toString().toLowerCase().equals(col.getName().toLowerCase()) ||
-                    rightValue.toString().toLowerCase().equals(col.toString().toLowerCase()) /*||
-                    col.getName().toLowerCase().indexOf(rightValue.toString().toLowerCase()) != -1*/) {
-                    result.append("? ").append(operators[operation]).append(" ").append(leftValue);
-            }
-            return result.toString();
-        } else if (left != null && right != null) {
-            String leftString = left.getCriteriaForProperty(col);
-            String rightString = right.getCriteriaForProperty(col);
-            if (!leftString.equals("") && !rightString.equals("")) {
-                return leftString + " " + operators[operation] + " "
-                    + rightString;
-            } else if (!leftString.equals("")) {
-                return leftString;
-            } else if (!rightString.equals("")) {
-                return rightString;
-            }
-            return "";
-        } else if (leftValue != null && leftValue.toString().toLowerCase()
-            .equals(col.toString().toLowerCase()) && right != null) {
-            return "? " + operators[operation] + " (" + right
-                .getCriteriaForProperty(col) + ")";
-        } else if (rightValue != null && rightValue.toString().toLowerCase()
-            .equals(col.toString().toLowerCase()) && left != null) {
-            return "(" + left.getCriteriaForProperty(col) + ") "
-                + operators[operation] + " ?";
-        }
-        return "";
-    }
-
-    public static void main(String args[]) {
-        XSQLCriteria p =
-            new XSQLCriteria("ip like '%101%' or (354>=0 or 456>=3)", -1);
-        System.out.println(p.checkValue("192.268.4.4"));
-        p = new XSQLCriteria("? like '%267%'", -1);
-        System.out.println(p.checkValue("192.268.4.4"));
-
-    }
-}