@Override public void write(Kryo kryo, Output output, PyBoolean object) { output.writeBoolean(object.getBooleanValue()); }
@Override public int getValue() { return getBooleanValue() ? 1 : 0; }
@ExposedMethod(names = {"__str__", "__repr__"}, doc = BuiltinDocs.bool___str___doc) final String bool_toString() { return getBooleanValue() ? "True" : "False"; }
@ExposedMethod(doc = BuiltinDocs.bool___hash___doc) final int bool___hash__() { return getBooleanValue() ? 1 : 0; }
@ExposedMethod(doc = BuiltinDocs.bool___nonzero___doc) final boolean bool___nonzero__() { return getBooleanValue(); }
/** * Checks rule event condition by evaluating the defined knowledge base rule method. * * @param rule rule. * @param event event. * @return {@code true} if this condition is met. */ @Override public boolean condition(Rule rule, Event event) { PyObject pyObject = function._jcall(new Object[] { rule, event }); if (!(pyObject instanceof PyBoolean)) { throw new IllegalArgumentException("Condition method must return boolean value"); } return ((PyBoolean) pyObject).getBooleanValue(); } }
private Serializable resolveJythonObjectToJava(PyObject value, String errorMessage) { if (value == null) { return null; } if (value instanceof PyBoolean) { PyBoolean pyBoolean = (PyBoolean) value; return pyBoolean.getBooleanValue(); } try { return Py.tojava(value, Serializable.class); } catch (PyException e) { PyObject typeObject = e.type; if (typeObject instanceof PyType) { PyType type = (PyType) typeObject; String typeName = type.getName(); if ("TypeError".equals(typeName)) { throw new RuntimeException(errorMessage, e); } } throw e; } }
@ExposedMethod(doc = BuiltinDocs.bool___neg___doc) final PyObject bool___neg__() { return Py.newInteger(getBooleanValue() ? -1 : 0); }
private Serializable resolveJythonObjectToJava(PyObject value, String errorMessage) { if (value == null) { return null; } if (value instanceof PyBoolean) { PyBoolean pyBoolean = (PyBoolean) value; return pyBoolean.getBooleanValue(); } try { return Py.tojava(value, Serializable.class); } catch (PyException e) { PyObject typeObject = e.type; if (typeObject instanceof PyType) { PyType type = (PyType) typeObject; String typeName = type.getName(); if ("TypeError".equals(typeName)) { throw new RuntimeException(errorMessage, e); } } throw e; } }
@ExposedMethod(type = MethodType.BINARY, doc = BuiltinDocs.bool___or___doc) final PyObject bool___or__(PyObject right) { if (right instanceof PyBoolean) { return Py.newBoolean(getBooleanValue() | ((PyBoolean) right).getBooleanValue()); } else if (right instanceof PyInteger) { return Py.newInteger(getValue() | ((PyInteger)right).getValue()); } else { return null; } }
@ExposedMethod(type = MethodType.BINARY, doc = BuiltinDocs.bool___and___doc) final PyObject bool___and__(PyObject right) { if (right instanceof PyBoolean) { return Py.newBoolean(getBooleanValue() & ((PyBoolean) right).getBooleanValue()); } else if (right instanceof PyInteger) { return Py.newInteger(getValue() & ((PyInteger)right).getValue()); } else { return null; } }
@ExposedMethod(type = MethodType.BINARY, doc = BuiltinDocs.bool___xor___doc) final PyObject bool___xor__(PyObject right) { if (right instanceof PyBoolean) { return Py.newBoolean(getBooleanValue() ^ ((PyBoolean) right).getBooleanValue()); } else if (right instanceof PyInteger) { return Py.newInteger(getValue() ^ ((PyInteger)right).getValue()); } else { return null; } }
@Override public Object __tojava__(Class<?> c) { if (c == Boolean.TYPE || c == Boolean.class || c == Object.class ) { return Boolean.valueOf(getBooleanValue()); } if (c == Integer.TYPE || c == Number.class || c == Integer.class) { return Integer.valueOf(getValue()); } if (c == Byte.TYPE || c == Byte.class) { return Byte.valueOf((byte)(getValue())); } if (c == Short.TYPE || c == Short.class) { return Short.valueOf((short)(getValue())); } if (c == Long.TYPE || c == Long.class) { return Long.valueOf(getValue()); } if (c == Float.TYPE || c == Float.class) { return Float.valueOf(getValue()); } if (c == Double.TYPE || c == Double.class) { return Double.valueOf(getValue()); } return super.__tojava__(c); }
@Override public Object decode(final Object object) { if (object instanceof PyNone) return null; if (object instanceof PyBoolean) { return ((PyBoolean) object).getBooleanValue(); } if (object instanceof PyInteger) { return ((PyInteger) object).getValue(); } if (object instanceof PyFloat) { return ((PyFloat) object).getValue(); } if (object instanceof PyString) { return ((PyString) object).getString(); } if (object instanceof PyObject) { // Unwrap Python objects when they wrap Java ones. final PyObject pyObj = (PyObject) object; final Class<?> javaType = pyObj.getType().getProxyType(); if (javaType != null) return pyObj.__tojava__(javaType); } return object; }