< prev index next >
src/jdk.jcmd/share/classes/sun/tools/jstat/Expression.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 2004, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 38,47 ****
--- 38,48 ----
private boolean debug = Boolean.getBoolean("Expression.debug");
private Expression left;
private Expression right;
private Operator operator;
private int ordinal = nextOrdinal++;
+ private boolean required = false;
Expression() {
if (debug) {
System.out.println("Expression " + ordinal + " created");
}
*** 50,59 ****
--- 51,61 ----
void setLeft(Expression left) {
if (debug) {
System.out.println("Setting left on " + ordinal + " to " + left);
}
this.left = left;
+ this.left.setRequired(required);
}
Expression getLeft() {
return left;
}
*** 61,70 ****
--- 63,73 ----
void setRight(Expression right) {
if (debug) {
System.out.println("Setting right on " + ordinal + " to " + right);
}
this.right = right;
+ this.right.setRequired(required);
}
Expression getRight() {
return right;
}
*** 78,87 ****
--- 81,104 ----
Operator getOperator() {
return operator;
}
+ void setRequired(boolean r) {
+ this.required = r;
+ if (left != null) {
+ left.setRequired(required);
+ }
+ if (right != null) {
+ right.setRequired(required);
+ }
+ }
+
+ boolean isRequired() {
+ return required;
+ }
+
public String toString() {
StringBuilder b = new StringBuilder();
b.append('(');
if (left != null) {
b.append(left.toString());
< prev index next >