## Uses of Interface
adql.query.ADQLObject

- Packages that use ADQLObject
  Package | Description
  --- | ---
  adql.query |
  adql.query.constraint |
  adql.query.from |
  adql.query.operand |
  adql.query.operand.function |
  adql.query.operand.function.geometry |
  adql.search |
  adql.translator |

- - ### Uses of ADQLObject in adql.query

    Classes in adql.query with type parameters of type ADQLObject
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `ADQLList<T extends ADQLObject>` | Represents a list of ADQL items.
    `class` | `ClauseADQL<T extends ADQLObject>` | Represents an ADQL clause (i.e.

    Classes in adql.query that implement ADQLObject
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `ADQLList<T extends ADQLObject>` | Represents a list of ADQL items.
    `class` | `ADQLOrder` | Represents an item of the ORDER BY list: that's to say a column reference plus a sorting indication (ASC, DESC).
    `class` | `ADQLQuery` | Object representation of an ADQL query or sub-query.
    `class` | `ClauseADQL<T extends ADQLObject>` | Represents an ADQL clause (i.e.
    `class` | `ClauseConstraints` | Represents a clause which deals with `ADQLConstraint`s (i.e.
    `class` | `ClauseSelect` | The SELECT clause of an ADQL query.
    `class` | `ColumnReference` | Represents a reference to a selected column either by an index or by a non-qualified column name/alias.
    `class` | `SelectAllColumns` | In ADQL it corresponds to the '*' and '{tableName}.*' items in the SELECT clause.
    `class` | `SelectItem` | Represents an item of a SELECT clause.

    Fields in adql.query with type parameters of type ADQLObject
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected ADQLList<ADQLObject>` | ADQLList.ADQLListIterator.`list` |

    Methods in adql.query that return ADQLObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract ADQLObject` | ADQLList.`getCopy()` |
    `ADQLObject` | ADQLObject.`getCopy()` | Gets a (deep) copy of this ADQL object.
    `ADQLObject` | ADQLOrder.`getCopy()` |
    `ADQLObject` | ADQLQuery.`getCopy()` |
    `ADQLObject` | ClauseADQL.`getCopy()` |
    `ADQLObject` | ClauseConstraints.`getCopy()` |
    `ADQLObject` | ClauseSelect.`getCopy()` |
    `ADQLObject` | ColumnReference.`getCopy()` |
    `ADQLObject` | SelectAllColumns.`getCopy()` |
    `ADQLObject` | SelectItem.`getCopy()` |
    `ADQLObject` | ADQLList.ADQLListIterator.`next()` |
    `ADQLObject` | NullADQLIterator.`next()` |

    Methods in adql.query that return types with arguments of type ADQLObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.Iterator<ADQLObject>` | ADQLQuery.`search​(ISearchHandler sHandler)` | Lets searching ADQL objects into this ADQL query thanks to the given search handler.

    Methods in adql.query with parameters of type ADQLObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | ADQLIterator.`replace​(ADQLObject replacer)` | Replaces the current ADQL object by the given ADQL object.
    `void` | ADQLList.ADQLListIterator.`replace​(ADQLObject replacer)` |
    `void` | NullADQLIterator.`replace​(ADQLObject replacer)` |

    Constructor parameters in adql.query with type arguments of type ADQLObject
    Constructor | Description
    --- | ---
    `ADQLListIterator​(ADQLList<? extends ADQLObject> lst)` |

  - ### Uses of ADQLObject in adql.query.constraint

    Subinterfaces of ADQLObject in adql.query.constraint
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `ADQLConstraint` | An ADQL constraint (comparison, in, exists, ...) must implement this interface.

    Classes in adql.query.constraint that implement ADQLObject
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `Between` | It represents the BETWEEN predicate of SQL and ADQL.
    `class` | `Comparison` | Represents a comparison (numeric or not) between two operands.
    `class` | `ConstraintsGroup` | Represents a parenthesized list of constraints.
    `class` | `Exists` | Represents the predicate EXISTS of SQL and ADQL.
    `class` | `In` | It represents the IN predicate of SQL and ADQL.
    `class` | `IsNull` | Represents a comparison between a column to the NULL value.
    `class` | `NotConstraint` | Lets apply the logical operator NOT on any constraint.

    Methods in adql.query.constraint that return ADQLObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `ADQLObject` | Between.`getCopy()` |
    `ADQLObject` | Comparison.`getCopy()` |
    `ADQLObject` | ConstraintsGroup.`getCopy()` |
    `ADQLObject` | Exists.`getCopy()` |
    `ADQLObject` | In.`getCopy()` |
    `ADQLObject` | IsNull.`getCopy()` |
    `ADQLObject` | NotConstraint.`getCopy()` |

  - ### Uses of ADQLObject in adql.query.from

    Subinterfaces of ADQLObject in adql.query.from
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `FromContent` | Represents the content of the whole or a part of the clause FROM.

    Classes in adql.query.from that implement ADQLObject
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `ADQLJoin` | Defines a join between two "tables".
    `class` | `ADQLTable` | It represents any item of the clause FROM: a table name or a sub-query. A table reference may have an alias (MUST if it is a sub-query).
    `class` | `CrossJoin` | Cross join.
    `class` | `InnerJoin` | Inner join.
    `class` | `OuterJoin` | Inner join.
    `class` | `SQLServer_InnerJoin` | Special implementation of `InnerJoin` for MS SQL Server.
    `class` | `SQLServer_OuterJoin` | Special implementation of `OuterJoin` for MS SQL Server.

    Methods in adql.query.from that return ADQLObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract ADQLObject` | ADQLJoin.`getCopy()` |
    `ADQLObject` | ADQLTable.`getCopy()` |
    `ADQLObject` | CrossJoin.`getCopy()` |
    `ADQLObject` | InnerJoin.`getCopy()` |
    `ADQLObject` | OuterJoin.`getCopy()` |

  - ### Uses of ADQLObject in adql.query.operand

    Subinterfaces of ADQLObject in adql.query.operand
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `ADQLOperand` | Any ADQL operand (an operation, a constant, a column name, a function, ...) must implement this interface and indicates whether it corresponds to a numeric, a string or a geometrical region value.
    `interface` | `UnknownType` | Operand whose the type can not be known at the parsing time.

    Classes in adql.query.operand that implement ADQLObject
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `ADQLColumn` | Represents the complete (literal) reference to a column ({schema(s)}.{table}.{column}).
    `class` | `Concatenation` | Represents a concatenation in ADQL (ex: "_s_ra" || ':' || "_s_dec").
    `class` | `NegativeOperand` | Lets putting a minus sign in front of any numeric operand.
    `class` | `NumericConstant` | A numeric (integer, double, ...) constant.
    `class` | `Operation` | It represents a simple numeric operation (sum, difference, multiplication and division).
    `class` | `StringConstant` | A string constant.
    `class` | `WrappedOperand` | Lets wrapping an operand by parenthesis.

    Methods in adql.query.operand that return ADQLObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `ADQLObject` | ADQLColumn.`getCopy()` |
    `ADQLObject` | Concatenation.`getCopy()` |
    `ADQLObject` | NegativeOperand.`getCopy()` |
    `ADQLObject` | NumericConstant.`getCopy()` |
    `ADQLObject` | Operation.`getCopy()` |
    `ADQLObject` | StringConstant.`getCopy()` |
    `ADQLObject` | WrappedOperand.`getCopy()` |

  - ### Uses of ADQLObject in adql.query.operand.function

    Classes in adql.query.operand.function that implement ADQLObject
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `ADQLFunction` | Represents any kind of function.
    `class` | `DefaultUDF` | It represents any function which is not managed by ADQL.
    `class` | `MathFunction` | It represents any basic mathematical function.
    `class` | `SQLFunction` | It represents any SQL function (COUNT, MAX, MIN, AVG, SUM, etc...).
    `class` | `UserDefinedFunction` | Function defined by the user (i.e.

    Methods in adql.query.operand.function that return ADQLObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `ADQLObject` | DefaultUDF.`getCopy()` |
    `ADQLObject` | MathFunction.`getCopy()` |
    `ADQLObject` | SQLFunction.`getCopy()` |

  - ### Uses of ADQLObject in adql.query.operand.function.geometry

    Classes in adql.query.operand.function.geometry that implement ADQLObject
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AreaFunction` | It represents the AREA function of ADQL.
    `class` | `BoxFunction` | It represents the box function of the ADQL language.
    `class` | `CentroidFunction` | It represents the CENTROID function of the ADQL language.
    `class` | `CircleFunction` | It represents the CIRCLE function of the ADQL language.
    `class` | `ContainsFunction` | It represents the CONTAINS function of the ADQL language.
    `class` | `DistanceFunction` | It represents the DISTANCE function of the ADQL language.
    `class` | `ExtractCoord` | It represents the COORD1 and the COORD2 functions of the ADQL language.
    `class` | `ExtractCoordSys` | It represents the COORDSYS function the ADQL language.
    `class` | `GeometryFunction` | It represents any geometric function of ADQL.
    `static class` | `GeometryFunction.GeometryValue<F extends GeometryFunction>` | This class represents a parameter of a geometry function which, in general, is either a GeometryFunction or a Column.
    `class` | `IntersectsFunction` | It represents the INTERSECTS function of the ADQL language.
    `class` | `PointFunction` | It represents the POINT function of the ADQL language.
    `class` | `PolygonFunction` | It represents the POLYGON function of the ADQL language.
    `class` | `RegionFunction` | It represents the REGION function the ADQL language.

    Methods in adql.query.operand.function.geometry that return ADQLObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `ADQLObject` | AreaFunction.`getCopy()` |
    `ADQLObject` | BoxFunction.`getCopy()` |
    `ADQLObject` | CentroidFunction.`getCopy()` |
    `ADQLObject` | CircleFunction.`getCopy()` |
    `ADQLObject` | ContainsFunction.`getCopy()` |
    `ADQLObject` | DistanceFunction.`getCopy()` |
    `ADQLObject` | ExtractCoord.`getCopy()` |
    `ADQLObject` | ExtractCoordSys.`getCopy()` |
    `ADQLObject` | GeometryFunction.GeometryValue.`getCopy()` |
    `ADQLObject` | IntersectsFunction.`getCopy()` |
    `ADQLObject` | PointFunction.`getCopy()` |
    `ADQLObject` | PolygonFunction.`getCopy()` |
    `ADQLObject` | RegionFunction.`getCopy()` |

  - ### Uses of ADQLObject in adql.search

    Fields in adql.search with type parameters of type ADQLObject
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected java.util.ArrayList<ADQLObject>` | SimpleSearchHandler.`results` | List of all matching ADQL objects.

    Methods in adql.search that return ADQLObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected ADQLObject` | SimpleReplaceHandler.`addMatchAndReplace​(ADQLObject matchObj, ADQLIterator it)` | Adds the given ADQL object as one result of the research, and then replace its reference inside its parent.
    `ADQLObject` | RemoveHandler.`getReplacer​(ADQLObject objToReplace)` | Always returns null.
    `protected abstract ADQLObject` | SimpleReplaceHandler.`getReplacer​(ADQLObject objToReplace)` | Gets (generate on the fly or not) an ADQLObject which must replace the given one (expected to be an ADQLObject that has matched).

    Methods in adql.search that return types with arguments of type ADQLObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.Iterator<ADQLObject>` | ISearchHandler.`iterator()` | Lets to iterate on the list of all the matched ADQL objects.
    `java.util.Iterator<ADQLObject>` | SimpleSearchHandler.`iterator()` |

    Methods in adql.search with parameters of type ADQLObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | SimpleSearchHandler.`addMatch​(ADQLObject matchObj, ADQLIterator it)` | Adds the given ADQL object as one result of the research.
    `protected ADQLObject` | SimpleReplaceHandler.`addMatchAndReplace​(ADQLObject matchObj, ADQLIterator it)` | Adds the given ADQL object as one result of the research, and then replace its reference inside its parent.
    `ADQLObject` | RemoveHandler.`getReplacer​(ADQLObject objToReplace)` | Always returns null.
    `protected abstract ADQLObject` | SimpleReplaceHandler.`getReplacer​(ADQLObject objToReplace)` | Gets (generate on the fly or not) an ADQLObject which must replace the given one (expected to be an ADQLObject that has matched).
    `protected boolean` | SimpleSearchHandler.`goInto​(ADQLObject obj)` | Indicates whether the research must continue inside the given ADQL object or not: by default, it returns always true except if the given object is an ADQL query while the research must not be recursive.
    `boolean` | SearchColumnHandler.`match​(ADQLObject obj)` |
    `protected abstract boolean` | SimpleSearchHandler.`match​(ADQLObject obj)` | Only tests whether the given ADQL object checks the search conditions.
    `void` | ISearchHandler.`search​(ADQLObject startObj)` | Searches all matching ADQL objects from the given ADQL object (included).
    `void` | SimpleSearchHandler.`search​(ADQLObject startObj)` |
    `void` | IReplaceHandler.`searchAndReplace​(ADQLObject startObj)` | Searches all matching ADQL objects from the given ADQL object (included) and replaces them by their corresponding ADQL object.
    `void` | SimpleReplaceHandler.`searchAndReplace​(ADQLObject startObj)` |

  - ### Uses of ADQLObject in adql.translator

    Methods in adql.translator with parameters of type ADQLObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.String` | ADQLTranslator.`translate​(ADQLObject obj)` |
    `java.lang.String` | JDBCTranslator.`translate​(ADQLObject obj)` |

    Method parameters in adql.translator with type arguments of type ADQLObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected java.lang.String` | JDBCTranslator.`getDefaultADQLList​(ADQLList<? extends ADQLObject> list)` | Gets the default SQL output for a list of ADQL objects.
    `protected java.lang.String` | JDBCTranslator.`getDefaultADQLList​(ADQLList<? extends ADQLObject> list, boolean withNamePrefix)` | Gets the default SQL output for a list of ADQL objects.
    `java.lang.String` | ADQLTranslator.`translate​(ADQLList<? extends ADQLObject> list)` |
    `java.lang.String` | JDBCTranslator.`translate​(ADQLList<? extends ADQLObject> list)` |