src/jdk.jcmd/share/classes/sun/tools/jstat/Expression.java
changeset 49891 61b0342b5711
parent 47216 71c04702a3d5
--- a/src/jdk.jcmd/share/classes/sun/tools/jstat/Expression.java	Wed Apr 25 17:50:32 2018 -0400
+++ b/src/jdk.jcmd/share/classes/sun/tools/jstat/Expression.java	Thu Apr 26 09:45:47 2018 +0900
@@ -1,5 +1,5 @@
 /*
- * 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
@@ -40,6 +40,7 @@
     private Expression right;
     private Operator operator;
     private int ordinal = nextOrdinal++;
+    private boolean required = false;
 
     Expression() {
         if (debug) {
@@ -52,6 +53,7 @@
             System.out.println("Setting left on " + ordinal + " to " + left);
         }
         this.left = left;
+        this.left.setRequired(required);
     }
 
     Expression getLeft() {
@@ -63,6 +65,7 @@
             System.out.println("Setting right on " + ordinal + " to " + right);
         }
         this.right = right;
+        this.right.setRequired(required);
     }
 
     Expression getRight() {
@@ -80,6 +83,20 @@
         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('(');