001/*
002 * Copyright (c) 2003-2010 The Regents of the University of California.
003 * All rights reserved.
004 *
005 * '$Author: welker $'
006 * '$Date: 2010-05-06 05:21:26 +0000 (Thu, 06 May 2010) $' 
007 * '$Revision: 24234 $'
008 * 
009 * Permission is hereby granted, without written agreement and without
010 * license or royalty fees, to use, copy, modify, and distribute this
011 * software and its documentation for any purpose, provided that the above
012 * copyright notice and the following two paragraphs appear in all copies
013 * of this software.
014 *
015 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
016 * FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
017 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
018 * THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
019 * SUCH DAMAGE.
020 *
021 * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
022 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
023 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
024 * PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
025 * CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
026 * ENHANCEMENTS, OR MODIFICATIONS.
027 *
028 */
029
030package org.ecoinformatics.seek.querybuilder;
031
032import java.awt.Rectangle;
033
034/**
035 * Interface class that enables the manipulation of either operators or
036 * conditions
037 */
038public interface DBWhereIFace {
039        /**
040         * The objects name
041         * 
042         * @return the name
043         */
044        public String getName();
045
046        /**
047         * Return its parent object
048         * 
049         * @return the parent
050         */
051        public DBWhereOperator getParent();
052
053        /**
054         * Return whether it is an operator or not
055         * 
056         * @return true if operator, otherwise false
057         */
058        public boolean isOperator();
059
060        // ------- Needed fr UI support -------------
061        /**
062         * Return its depth in the tree
063         * 
064         * @return the depth
065         */
066        public int getDepth();
067
068        /**
069         * Sets the depth in the tree
070         * 
071         * @param aDepth
072         *            the depth
073         */
074        public void setDepth(int aDepth);
075
076        /**
077         * Sets it bounds of where it is being rendered
078         * 
079         * @param aRect
080         *            the bounds
081         */
082        public void setBounds(Rectangle aRect);
083
084        /**
085         * Its bounds of where it is being rendered
086         * 
087         * @return the bounds
088         */
089        public Rectangle getBounds();
090
091        /**
092         * Sets whether it is being dragged over
093         * 
094         * @param aIsOver
095         *            true if the mouse is over the object
096         */
097        public void setDragOver(boolean aIsOver);
098
099        /**
100         * Returns if it is being dragged over.
101         * 
102         * @return true if the mouse is over it.
103         */
104        public boolean isDragOver();
105
106        /**
107         * Returns string
108         * 
109         * @param aUseSymbols
110         *            Generate string using symbols instead of text for conditions
111         *            etc.
112         * @return string representation
113         */
114        public String toString(boolean aUseSymbols);
115
116}