/** * Creates a clone of the {@link SelectItem} for use within a cloned * {@link Query}. * * @param clonedQuery * a new {@link Query} object that represents the clone-to-be of * a query. It is expected that {@link FromItem}s have already * been cloned in this {@link Query}. * @return */ public SelectItem clone(Query clonedQuery) { SelectItem subQuerySelectItem = (_subQuerySelectItem == null ? null : _subQuerySelectItem.clone()); FromItem fromItem; if (_fromItem == null) { fromItem = null; } else if (clonedQuery != null && _query != null) { int indexOfFromItem = _query.getFromClause().indexOf(_fromItem); if (indexOfFromItem != -1) { fromItem = clonedQuery.getFromClause().getItem(indexOfFromItem); } else { fromItem = _fromItem.clone(); } } else { fromItem = _fromItem.clone(); } SelectItem s = new SelectItem(_column, fromItem, _function, _functionParameters, _expression, subQuerySelectItem, _alias, _functionApproximationAllowed); return(s); } // clone()
public FromItem clone() { FromItem f = new FromItem(); f._alias = _alias; f._join = _join; f._table = _table; f._expression = _expression; if (_subQuery != null) { f._subQuery = _subQuery.clone(); } if (_leftOn != null && _leftSide != null && _rightOn != null && _rightSide != null) { f._leftSide = _leftSide.clone(); f._leftOn = (SelectItem[])_leftOn.Clone(); f._rightSide = _rightSide.clone(); f._rightOn = (SelectItem[])_rightOn.Clone(); } return(f); } // clone()