< prev index next >
src/jdk.jcmd/share/classes/sun/tools/jstat/Expression.java
Print this page
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * 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,10 +38,11 @@
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,10 +51,11 @@
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,10 +63,11 @@
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,10 +81,24 @@
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 >