src/core/net/sf/basedb/util/jep/convert/AbstractJepConversionFunction.java

Code
Comments
Other
Rev Date Author Line
3604 26 Jul 07 nicklas 1 /**
3604 26 Jul 07 nicklas 2   $Id$
3604 26 Jul 07 nicklas 3
3675 16 Aug 07 jari 4   Copyright (C) 2007 Nicklas Nordborg
3604 26 Jul 07 nicklas 5
3604 26 Jul 07 nicklas 6   This file is part of BASE - BioArray Software Environment.
3604 26 Jul 07 nicklas 7   Available at http://base.thep.lu.se/
3604 26 Jul 07 nicklas 8
3604 26 Jul 07 nicklas 9   BASE is free software; you can redistribute it and/or
3604 26 Jul 07 nicklas 10   modify it under the terms of the GNU General Public License
4479 05 Sep 08 jari 11   as published by the Free Software Foundation; either version 3
3604 26 Jul 07 nicklas 12   of the License, or (at your option) any later version.
3604 26 Jul 07 nicklas 13
3604 26 Jul 07 nicklas 14   BASE is distributed in the hope that it will be useful,
3604 26 Jul 07 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
3604 26 Jul 07 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
3604 26 Jul 07 nicklas 17   GNU General Public License for more details.
3604 26 Jul 07 nicklas 18
3604 26 Jul 07 nicklas 19   You should have received a copy of the GNU General Public License
4515 11 Sep 08 jari 20   along with BASE. If not, see <http://www.gnu.org/licenses/>.
3604 26 Jul 07 nicklas 21 */
3604 26 Jul 07 nicklas 22 package net.sf.basedb.util.jep.convert;
3604 26 Jul 07 nicklas 23
3604 26 Jul 07 nicklas 24 import net.sf.basedb.core.query.Expression;
5897 02 Dec 11 nicklas 25 import net.sf.basedb.core.query.Expressions;
3604 26 Jul 07 nicklas 26 import net.sf.basedb.core.query.Restriction;
3604 26 Jul 07 nicklas 27
3604 26 Jul 07 nicklas 28
3604 26 Jul 07 nicklas 29 /**
3604 26 Jul 07 nicklas 30   Abstract superclass implementing the {@link JepConversionFunction}
3604 26 Jul 07 nicklas 31   interface. This class throws an {@link UnsupportedOperationException}
3616 01 Aug 07 nicklas 32   for the {@link #toExpression(Object)} and {@link #toRestriction(Object)}
3604 26 Jul 07 nicklas 33   methods. A subclass should override at least one of the methods.
3604 26 Jul 07 nicklas 34   
3604 26 Jul 07 nicklas 35   @author nicklas
3604 26 Jul 07 nicklas 36   @version 2.4
3604 26 Jul 07 nicklas 37   @base.modified $Date$
3604 26 Jul 07 nicklas 38 */
3604 26 Jul 07 nicklas 39 public abstract class AbstractJepConversionFunction<T>
3604 26 Jul 07 nicklas 40   implements JepConversionFunction<T>
3604 26 Jul 07 nicklas 41 {
3604 26 Jul 07 nicklas 42
3604 26 Jul 07 nicklas 43   protected AbstractJepConversionFunction()
3604 26 Jul 07 nicklas 44   {}
3604 26 Jul 07 nicklas 45   
3604 26 Jul 07 nicklas 46   /*
3604 26 Jul 07 nicklas 47     From the JepConversionFunction interface
3604 26 Jul 07 nicklas 48     -------------------------------------------
3604 26 Jul 07 nicklas 49   */
3604 26 Jul 07 nicklas 50   /**
3604 26 Jul 07 nicklas 51     @return Always FALSE
3604 26 Jul 07 nicklas 52   */
6127 14 Sep 12 nicklas 53   @Override
3604 26 Jul 07 nicklas 54   public boolean isFunction()
3604 26 Jul 07 nicklas 55   {
3604 26 Jul 07 nicklas 56     return false;
3604 26 Jul 07 nicklas 57   }
3604 26 Jul 07 nicklas 58   /**
3604 26 Jul 07 nicklas 59     @return Always FALSE
3604 26 Jul 07 nicklas 60   */
6127 14 Sep 12 nicklas 61   @Override
3604 26 Jul 07 nicklas 62   public boolean isOperator()
3604 26 Jul 07 nicklas 63   {
3604 26 Jul 07 nicklas 64     return false;
3604 26 Jul 07 nicklas 65   }
3604 26 Jul 07 nicklas 66   /**
3604 26 Jul 07 nicklas 67     @return Always null
3604 26 Jul 07 nicklas 68   */
6127 14 Sep 12 nicklas 69   @Override
3604 26 Jul 07 nicklas 70   public String getName()
3604 26 Jul 07 nicklas 71   {
3604 26 Jul 07 nicklas 72     return null;
3604 26 Jul 07 nicklas 73   }
3604 26 Jul 07 nicklas 74   /**
3604 26 Jul 07 nicklas 75     @return Always null
3604 26 Jul 07 nicklas 76   */
6127 14 Sep 12 nicklas 77   @Override
3604 26 Jul 07 nicklas 78   public String getDescription()
3604 26 Jul 07 nicklas 79   {
3604 26 Jul 07 nicklas 80     return null;
3604 26 Jul 07 nicklas 81   }
3604 26 Jul 07 nicklas 82   /**
5897 02 Dec 11 nicklas 83     Convert to a restriction and then use {@link Expressions#bool(Restriction)}
5897 02 Dec 11 nicklas 84     to create a boolean expression.
3604 26 Jul 07 nicklas 85   */
6127 14 Sep 12 nicklas 86   @Override
3604 26 Jul 07 nicklas 87   public Expression toExpression(T node)
3604 26 Jul 07 nicklas 88   {
5897 02 Dec 11 nicklas 89     return Expressions.bool(toRestriction(node));
3604 26 Jul 07 nicklas 90   }
3604 26 Jul 07 nicklas 91
3604 26 Jul 07 nicklas 92   /**
3604 26 Jul 07 nicklas 93     @throws UnsupportedOperationException Always
3604 26 Jul 07 nicklas 94   */
6127 14 Sep 12 nicklas 95   @Override
3604 26 Jul 07 nicklas 96   public Restriction toRestriction(T node)
3604 26 Jul 07 nicklas 97   {
5897 02 Dec 11 nicklas 98     throw new UnsupportedOperationException(getClass() + ".toRestriction()");
3604 26 Jul 07 nicklas 99   }
3604 26 Jul 07 nicklas 100   // -------------------------------------------
3604 26 Jul 07 nicklas 101
3604 26 Jul 07 nicklas 102 }