+++ /dev/null
-/*--------------------------------------------------------------------------\r
- * Copyright 2009 Taro L. Saito\r
- *\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- *--------------------------------------------------------------------------*/\r
-//--------------------------------------\r
-// XerialJ\r
-//\r
-// TupleCell.java\r
-// Since: 2009/05/13 9:20:19\r
-//\r
-// $URL$\r
-// $Author$\r
-//--------------------------------------\r
-package org.xerial.lens.relation;\r
-\r
-/**\r
- * A composite pattern interface for representing tree node and tuple structure.\r
- * Tuples containing this cell element allow non 1-NF (tuples can contain\r
- * tuples) data representation.\r
- * \r
- * @author leo\r
- * \r
- */\r
-public interface TupleElement<Element> {\r
- /**\r
- * Returns true if this element is a singleton, i.e. no more nested nodes\r
- * \r
- * @return\r
- */\r
- public boolean isAtom();\r
-\r
- /**\r
- * Returns true if this cell is a tuple\r
- * \r
- * @return\r
- */\r
- public boolean isTuple();\r
-\r
- /**\r
- * Get the number of elements contained in this element. When this element\r
- * is an atom, the size will be 1. When a tuple, the returned size is the\r
- * tuple size.\r
- * \r
- * @return\r
- */\r
- public int size();\r
-\r
- /**\r
- * Get the tuple element at the specified index\r
- * \r
- * @param index\r
- * @return\r
- */\r
- TupleElement<Element> get(TupleIndex index);\r
-\r
- /**\r
- * If the cell at the specified index is a node, then return the node,\r
- * otherwise return null\r
- * \r
- * @param index\r
- * @return node\r
- */\r
- Element getElement(TupleIndex index);\r
-\r
- /**\r
- * if this cell is node, then return node. otherwise return null\r
- * \r
- * @return\r
- */\r
- Element castToElement();\r
-\r
- /**\r
- * If this cell is tuple, then return tuple. otherwise return null\r
- * \r
- * @return\r
- */\r
- Tuple<Element> castToTuple();\r
-\r
- /**\r
- * Accept the visitor\r
- * \r
- * @param visitor\r
- */\r
- void accept(TupleVisitor<Element> visitor);\r
-\r
-}\r