TurtleDB
A mini distributed database system
|
00001 /*------------------------------------------------------------------------- 00002 Simple distributed database engine 00003 Copyright (C) 2012 Sylvain Hallé 00004 00005 This program is free software: you can redistribute it and/or modify 00006 it under the terms of the GNU General Public License as published by 00007 the Free Software Foundation, either version 3 of the License, or 00008 (at your option) any later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program. If not, see <http://www.gnu.org/licenses/>. 00017 -------------------------------------------------------------------------*/ 00018 package ca.uqac.dim.turtledb; 00019 00020 import java.util.*; 00021 00022 public abstract class NAryCondition extends Condition 00023 { 00024 public List<Condition> m_conditions; 00025 protected String m_operator; 00026 00027 protected NAryCondition() 00028 { 00029 super(); 00030 m_conditions = new LinkedList<Condition>(); 00031 } 00032 00033 public void addCondition(Condition c) 00034 { 00035 m_conditions.add(c); 00036 } 00037 00038 protected void acceptNAry(ConditionVisitor v) 00039 { 00040 for (Condition c : m_conditions) 00041 c.accept(v); 00042 } 00043 00049 public int getArity() 00050 { 00051 return m_conditions.size(); 00052 } 00053 00054 @Override 00055 public String toString() 00056 { 00057 StringBuilder out = new StringBuilder(); 00058 int len = m_conditions.size(); 00059 for (int i = 0; i < len; i++) 00060 { 00061 if (i > 0) 00062 out.append(m_operator); 00063 Condition c = m_conditions.get(i); 00064 out.append(c); 00065 } 00066 return out.toString(); 00067 } 00068 }