Package adql.query.constraint
Class In
- java.lang.Object
-
- adql.query.constraint.In
-
- All Implemented Interfaces:
ADQLObject
,ADQLConstraint
public class In extends java.lang.Object implements ADQLConstraint
It represents the IN predicate of SQL and ADQL.
This predicate returns true if the value of the given operand is either in the given values list or in the results of the given sub-query, else it returns false.
- Version:
- 1.4 (06/2015)
- Author:
- Grégory Mantelet (CDS;ARI)
-
-
Constructor Summary
Constructors Constructor Description In(In toCopy)
Builds a IN constraint by copying the given one.In(ADQLOperand op, ADQLList<ADQLOperand> valuesList)
Builds an IN constraint with a values list.In(ADQLOperand op, ADQLList<ADQLOperand> valuesList, boolean notIn)
Builds an IN constraint with a values list.In(ADQLOperand op, ADQLQuery query)
Builds an IN constraint with a sub-query.In(ADQLOperand op, ADQLQuery query, boolean notIn)
Builds an IN constraint with a sub-query.In(ADQLOperand op, ADQLOperand[] valuesList)
Builds an IN constraint with a values list.In(ADQLOperand op, ADQLOperand[] valuesList, boolean notIn)
Builds an IN constraint with a values list.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ADQLIterator
adqlIterator()
Gets an iterator on the intern ADQL objects.ADQLObject
getCopy()
Gets a (deep) copy of this ADQL object.java.lang.String
getName()
Gets the name of this object in ADQL.ADQLOperand
getOperand()
Gets the left operand of this IN constraint.TextPosition
getPosition()
Gets the position of this object/token in the ADQL query.ADQLQuery
getSubQuery()
Gets the sub-query (right operand) of this IN constraint.ADQLList<ADQLOperand>
getValuesList()
Gets the values list (right operand) of this IN constraint.boolean
hasSubQuery()
Tells whether the right operand of this IN constraint is a sub-query or a values list.boolean
isNotIn()
Tells whether this predicate is IN or NOT IN.void
setNotIn(boolean notIn)
Lets telling whether this predicate must be IN or NOT IN.void
setOperand(ADQLOperand newLeftOp)
Replaces the left operand of this IN constraint.void
setPosition(TextPosition position)
Set the position of thisIn
in the given ADQL query string.void
setSubQuery(ADQLQuery newSubQuery)
Replaces the sub-query (right operand) of this IN constraint.void
setValuesList(ADQLList<ADQLOperand> valuesList)
Replaces the values list (right operand) of this IN constraint.void
setValuesList(ADQLOperand[] valuesList)
Replaces the values list (right operand) of this IN constraint.java.lang.String
toADQL()
Gets the ADQL expression of this object.
-
-
-
Constructor Detail
-
In
public In(ADQLOperand op, ADQLQuery query) throws java.lang.NullPointerException
Builds an IN constraint with a sub-query.- Parameters:
op
- The operand whose the value must be in the results of the given sub-query.query
- A sub-query.- Throws:
java.lang.NullPointerException
- If the given operand and/or the given sub-query is null.
-
In
public In(ADQLOperand op, ADQLQuery query, boolean notIn) throws java.lang.NullPointerException
Builds an IN constraint with a sub-query.- Parameters:
op
- The operand whose the value must be in the results of the given sub-query.query
- A sub-query.notIn
- true for NOT IN, false for IN.- Throws:
java.lang.NullPointerException
- If the given operand and/or the given sub-query is null.
-
In
public In(ADQLOperand op, ADQLOperand[] valuesList) throws java.lang.NullPointerException
Builds an IN constraint with a values list.- Parameters:
op
- The operand whose the value must be in the given values list.valuesList
- The values list.- Throws:
java.lang.NullPointerException
- If the given operand is null and/or the given list is null or empty.
-
In
public In(ADQLOperand op, ADQLOperand[] valuesList, boolean notIn) throws java.lang.NullPointerException
Builds an IN constraint with a values list.- Parameters:
op
- The operand whose the value must be in the given values list.valuesList
- The values list.notIn
- true for NOT IN, false for IN.- Throws:
java.lang.NullPointerException
- If the given operand is null and/or the given list is null or empty.
-
In
public In(ADQLOperand op, ADQLList<ADQLOperand> valuesList) throws java.lang.NullPointerException
Builds an IN constraint with a values list.- Parameters:
op
- The operand whose the value must be in the given values list.valuesList
- The values list.- Throws:
java.lang.NullPointerException
- If the given operand is null and/or the given list is null or empty.
-
In
public In(ADQLOperand op, ADQLList<ADQLOperand> valuesList, boolean notIn) throws java.lang.NullPointerException
Builds an IN constraint with a values list.- Parameters:
op
- The operand whose the value must be in the given values list.valuesList
- The values list.notIn
- true for NOT IN, false for IN.- Throws:
java.lang.NullPointerException
- If the given operand is null and/or the given list is null or empty.
-
In
public In(In toCopy) throws java.lang.Exception
Builds a IN constraint by copying the given one.- Parameters:
toCopy
- The IN constraint to copy.- Throws:
java.lang.Exception
- If there is an error during the copy.
-
-
Method Detail
-
getOperand
public final ADQLOperand getOperand()
Gets the left operand of this IN constraint.- Returns:
- Its left operand.
-
setOperand
public void setOperand(ADQLOperand newLeftOp) throws java.lang.NullPointerException
Replaces the left operand of this IN constraint.- Parameters:
newLeftOp
- Its new left operand.- Throws:
java.lang.NullPointerException
- If the given operand is null.
-
getSubQuery
public final ADQLQuery getSubQuery()
Gets the sub-query (right operand) of this IN constraint.- Returns:
- Its sub-query.
-
hasSubQuery
public final boolean hasSubQuery()
Tells whether the right operand of this IN constraint is a sub-query or a values list.- Returns:
- true if the right operand is a sub-query, false for a values list (even empty).
-
setSubQuery
public void setSubQuery(ADQLQuery newSubQuery) throws java.lang.NullPointerException
Replaces the sub-query (right operand) of this IN constraint.- Parameters:
newSubQuery
- Its new sub-query.- Throws:
java.lang.NullPointerException
- If the given sub-query is null.
-
getValuesList
public final ADQLList<ADQLOperand> getValuesList()
Gets the values list (right operand) of this IN constraint.- Returns:
- Its values list.
-
setValuesList
public void setValuesList(ADQLOperand[] valuesList) throws java.lang.NullPointerException
Replaces the values list (right operand) of this IN constraint.- Parameters:
valuesList
- Its new values list.- Throws:
java.lang.NullPointerException
- If the given list is null.
-
setValuesList
public void setValuesList(ADQLList<ADQLOperand> valuesList) throws java.lang.NullPointerException
Replaces the values list (right operand) of this IN constraint.- Parameters:
valuesList
- Its new values list.- Throws:
java.lang.NullPointerException
- If the given list is null.
-
isNotIn
public final boolean isNotIn()
Tells whether this predicate is IN or NOT IN.- Returns:
- true for NOT IN, false for IN.
-
setNotIn
public void setNotIn(boolean notIn)
Lets telling whether this predicate must be IN or NOT IN.- Parameters:
notIn
- true for NOT IN, false for IN.
-
getPosition
public final TextPosition getPosition()
Description copied from interface:ADQLObject
Gets the position of this object/token in the ADQL query.
By default, no position should be set.
- Specified by:
getPosition
in interfaceADQLObject
- Returns:
- Position of this ADQL item in the ADQL query, or NULL if not written originally in the query (for example, if added afterwards.
-
setPosition
public final void setPosition(TextPosition position)
Set the position of thisIn
in the given ADQL query string.- Parameters:
position
- New position of thisIn
.- Since:
- 1.4
-
getCopy
public ADQLObject getCopy() throws java.lang.Exception
Description copied from interface:ADQLObject
Gets a (deep) copy of this ADQL object.- Specified by:
getCopy
in interfaceADQLObject
- Returns:
- The copy of this ADQL object.
- Throws:
java.lang.Exception
- If there is any error during the copy.
-
getName
public java.lang.String getName()
Description copied from interface:ADQLObject
Gets the name of this object in ADQL.- Specified by:
getName
in interfaceADQLObject
- Returns:
- The name of this ADQL object.
-
adqlIterator
public ADQLIterator adqlIterator()
Description copied from interface:ADQLObject
Gets an iterator on the intern ADQL objects.
Note:The returned iterator is particularly used by a
ISearchHandler
extension to browse a whole ADQL tree.- Specified by:
adqlIterator
in interfaceADQLObject
- Returns:
- An ADQL objects iterator.
- See Also:
ADQLIterator
,ISearchHandler
-
toADQL
public java.lang.String toADQL()
Description copied from interface:ADQLObject
Gets the ADQL expression of this object.- Specified by:
toADQL
in interfaceADQLObject
- Returns:
- The corresponding ADQL expression.
-
-