blob: a23e5604861c08fcb10815ef48ab8b4917bc8be4 [file] [log] [blame]
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -08001/**
2* Copyright 2011, Big Switch Networks, Inc.
3* Originally created by David Erickson, Stanford University
4*
5* Licensed under the Apache License, Version 2.0 (the "License"); you may
6* not use this file except in compliance with the License. You may obtain
7* a copy of the License at
8*
9* http://www.apache.org/licenses/LICENSE-2.0
10*
11* Unless required by applicable law or agreed to in writing, software
12* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14* License for the specific language governing permissions and limitations
15* under the License.
16**/
17
18package net.floodlightcontroller.storage;
19
20/** Predicate class to handle AND and OR combinations of a number
21 * of child predicates. The result of the logical combination of the
22 * child predicates can also be negated to support a NOT operation.
23 *
24 * @author rob
25 *
26 */
27public class CompoundPredicate implements IPredicate {
28
29 public enum Operator { AND, OR };
30
31 private Operator operator;
32 private boolean negated;
33 private IPredicate[] predicateList;
34
35 public CompoundPredicate(Operator operator, boolean negated, IPredicate... predicateList) {
36 this.operator = operator;
37 this.negated = negated;
38 this.predicateList = predicateList;
39 }
40
41 public Operator getOperator() {
42 return operator;
43 }
44
45 public boolean isNegated() {
46 return negated;
47 }
48
49 public IPredicate[] getPredicateList() {
50 return predicateList;
51 }
52}