1   /*
2    * SPDX-FileCopyrightText: none
3    * SPDX-License-Identifier: CC0-1.0
4    */
5   
6   package gov.nist.secauto.metaschema.core.metapath.cst;
7   
8   import java.util.List;
9   import java.util.Objects;
10  
11  import edu.umd.cs.findbugs.annotations.NonNull;
12  
13  /**
14   * An immutable expression that has a number of sub-expression children.
15   */
16  public abstract class AbstractNAryExpression
17      extends AbstractExpression {
18    @NonNull
19    private final List<IExpression> children;
20  
21    /**
22     * Construct a new n-ary expression.
23     *
24     * @param children
25     *          the sub-expression children
26     */
27    public AbstractNAryExpression(@NonNull List<IExpression> children) {
28      this.children = Objects.requireNonNull(children);
29    }
30  
31    @Override
32    public List<IExpression> getChildren() {
33      return children;
34    }
35  }