@Override
    public boolean matches(IAtom atom) {
        boolean val = false;
        boolean matchesLeft = left.matches(atom);
        if (right != null) {
            if ("and".equals(operator) && matchesLeft) {
                boolean matchesRight = right.matches(atom);
                val = matchesLeft && matchesRight;
            } else if ("or".equals(operator)) {
                boolean matchesRight = right.matches(atom);
                val = matchesLeft || matchesRight;
            }
        } else {
            if ("not".equals(operator)) {
                val = (!matchesLeft);
            } else {
                val = matchesLeft;
            }
        }
        return val;
    }
@ Override public boolean matches ( IAtom atom ) { boolean val = false ; boolean matchesLeft = left . matches ( atom ) ; if ( right != null ) { if ( "and" . equals ( operator ) && matchesLeft ) { boolean matchesRight = right . matches ( atom ) ; val = matchesLeft && matchesRight ; } else if ( "or" . equals ( operator ) ) { boolean matchesRight = right . matches ( atom ) ; val = matchesLeft || matchesRight ; } } else { if ( "not" . equals ( operator ) ) { val = ( ! matchesLeft ) ; } else { val = matchesLeft ; } } return val ; }
/*
(non-Javadoc)
@see
org.openscience.cdk.isomorphism.matchers.smarts.SMARTSAtom#matches(org
.openscience.cdk.interfaces.IAtom)