001 package org.jaga.reproduction.booleanFormulas.nodes;
002
003
004 /**
005 * TODO: Complete these comments.
006 *
007 * <p><u>Project:</u> JAGA - Java API for Genetic Algorithms.</p>
008 *
009 * <p><u>Company:</u> University College London and JAGA.Org
010 * (<a href="http://www.jaga.org" target="_blank">http://www.jaga.org</a>).
011 * </p>
012 *
013 * <p><u>Copyright:</u> (c) 2004 by G. Paperin.<br/>
014 * This program is free software; you can redistribute it and/or modify
015 * it under the terms of the GNU General Public License as published by
016 * the Free Software Foundation, ONLY if you include a note of the original
017 * author(s) in any redistributed/modified copy.<br/>
018 * This program is distributed in the hope that it will be useful,
019 * but WITHOUT ANY WARRANTY; without even the implied warranty of
020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
021 * GNU General Public License for more details.<br/>
022 * You should have received a copy of the GNU General Public License
023 * along with this program; if not, write to the Free Software
024 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
025 * or see http://www.gnu.org/licenses/gpl.html</p>
026 *
027 * @author Greg Paperin (greg@jaga.org)
028 *
029 * @version JAGA public release 1.0 beta
030 */
031
032 abstract public class BinaryOperatorNode extends OperatorNode {
033
034 public BinaryOperatorNode() {}
035
036 public int getRequiredChildrenNumber() {
037 return 2;
038 }
039
040 public StringBuffer toStringBuffer(boolean infix) {
041 String name = getOperatorName();
042 if (infix) {
043 StringBuffer s = new StringBuffer("(");
044 s.append(getChild(0).toStringBuffer(infix));
045 s.append(" ");
046 s.append(name);
047 s.append(" ");
048 s.append(getChild(1).toStringBuffer(infix));
049 s.append(")");
050 return s;
051 } else { // must be prefix
052 StringBuffer s = new StringBuffer(name);
053 s.append("(");
054 s.append(getChild(0).toStringBuffer(infix));
055 s.append(", ");
056 s.append(getChild(1).toStringBuffer(infix));
057 s.append(")");
058 return s;
059 }
060 }
061
062 }