casa
$Rev:20696$
|
00001 //# ExprMathNode.h: Nodes representing scalar mathematical operators in table select expression tree 00002 //# Copyright (C) 1994,1995,1996,1997,1999,2000 00003 //# Associated Universities, Inc. Washington DC, USA. 00004 //# 00005 //# This library is free software; you can redistribute it and/or modify it 00006 //# under the terms of the GNU Library General Public License as published by 00007 //# the Free Software Foundation; either version 2 of the License, or (at your 00008 //# option) any later version. 00009 //# 00010 //# This library is distributed in the hope that it will be useful, but WITHOUT 00011 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00012 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 00013 //# License for more details. 00014 //# 00015 //# You should have received a copy of the GNU Library General Public License 00016 //# along with this library; if not, write to the Free Software Foundation, 00017 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA. 00018 //# 00019 //# Correspondence concerning AIPS++ should be addressed as follows: 00020 //# Internet email: aips2-request@nrao.edu. 00021 //# Postal address: AIPS++ Project Office 00022 //# National Radio Astronomy Observatory 00023 //# 520 Edgemont Road 00024 //# Charlottesville, VA 22903-2475 USA 00025 //# 00026 //# $Id: ExprMathNode.h 20652 2009-07-06 05:04:32Z Malte.Marquarding $ 00027 00028 #ifndef TABLES_EXPRMATHNODE_H 00029 #define TABLES_EXPRMATHNODE_H 00030 00031 //# Includes 00032 #include <casa/aips.h> 00033 #include <tables/Tables/ExprNodeRep.h> 00034 00035 00036 namespace casa { //# NAMESPACE CASA - BEGIN 00037 00038 //# This file defines classes derived from TableExprNode representing 00039 //# the data type and operator in a table expression. 00040 //# 00041 //# Data types Bool, Int64, Double, DComplex and String are used. 00042 //# Char, uChar, Short, uShort, Int, and uInt are converted to Int64, 00043 //# Float to Double, and Complex to DComplex. 00044 //# Binary operators +, -, *, /, ==, >=, >, <, <= and != are recognized. 00045 //# Also &&, ||, parentheses and unary +, - and ! are recognized. 00046 00047 00048 00049 // <summary> 00050 // Addition in table select expression tree 00051 // </summary> 00052 00053 // <use visibility=local> 00054 00055 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00056 // </reviewed> 00057 00058 // <prerequisite> 00059 //# Classes you should understand before using this one. 00060 // <li> TableExprNode 00061 // <li> TableExprNodeRep 00062 // </prerequisite> 00063 00064 // <synopsis> 00065 // This abstract class represents an addition in a table expression tree. 00066 // </synopsis> 00067 00068 class TableExprNodePlus : public TableExprNodeBinary 00069 { 00070 public: 00071 TableExprNodePlus (NodeDataType, const TableExprNodeRep&); 00072 ~TableExprNodePlus(); 00073 }; 00074 00075 00076 // <summary> 00077 // Int addition in table select expression tree 00078 // </summary> 00079 00080 // <use visibility=local> 00081 00082 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00083 // </reviewed> 00084 00085 // <prerequisite> 00086 //# Classes you should understand before using this one. 00087 // <li> TableExprNode 00088 // <li> TableExprNodeRep 00089 // </prerequisite> 00090 00091 // <synopsis> 00092 // This class represents an addition in a table select expression tree. 00093 // Strings can also be added (ie. concatenated). 00094 // Numeric data types will be promoted if possible, so for instance 00095 // an addition of Int and Complex is possible. 00096 // </synopsis> 00097 00098 class TableExprNodePlusInt : public TableExprNodePlus 00099 { 00100 public: 00101 TableExprNodePlusInt (const TableExprNodeRep&); 00102 ~TableExprNodePlusInt(); 00103 Int64 getInt (const TableExprId& id); 00104 Double getDouble (const TableExprId& id); 00105 DComplex getDComplex (const TableExprId& id); 00106 }; 00107 00108 00109 // <summary> 00110 // Double addition in table select expression tree 00111 // </summary> 00112 00113 // <use visibility=local> 00114 00115 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00116 // </reviewed> 00117 00118 // <prerequisite> 00119 //# Classes you should understand before using this one. 00120 // <li> TableExprNode 00121 // <li> TableExprNodeRep 00122 // </prerequisite> 00123 00124 // <synopsis> 00125 // This class represents an addition in a table select expression tree. 00126 // Strings can also be added (ie. concatenated). 00127 // Numeric data types will be promoted if possible, so for instance 00128 // an addition of Int and Complex is possible. 00129 // </synopsis> 00130 00131 class TableExprNodePlusDouble : public TableExprNodePlus 00132 { 00133 public: 00134 TableExprNodePlusDouble (const TableExprNodeRep&); 00135 ~TableExprNodePlusDouble(); 00136 Double getDouble (const TableExprId& id); 00137 DComplex getDComplex (const TableExprId& id); 00138 }; 00139 00140 00141 // <summary> 00142 // DComplex addition in table select expression tree 00143 // </summary> 00144 00145 // <use visibility=local> 00146 00147 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00148 // </reviewed> 00149 00150 // <prerequisite> 00151 //# Classes you should understand before using this one. 00152 // <li> TableExprNode 00153 // <li> TableExprNodeRep 00154 // </prerequisite> 00155 00156 // <synopsis> 00157 // This class represents an addition in a table select expression tree. 00158 // Strings can also be added (ie. concatenated). 00159 // Numeric data types will be promoted if possible, so for instance 00160 // an addition of Int and Complex is possible. 00161 // </synopsis> 00162 00163 class TableExprNodePlusDComplex : public TableExprNodePlus 00164 { 00165 public: 00166 TableExprNodePlusDComplex (const TableExprNodeRep&); 00167 ~TableExprNodePlusDComplex(); 00168 DComplex getDComplex (const TableExprId& id); 00169 }; 00170 00171 00172 // <summary> 00173 // String addition in table select expression tree 00174 // </summary> 00175 00176 // <use visibility=local> 00177 00178 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00179 // </reviewed> 00180 00181 // <prerequisite> 00182 //# Classes you should understand before using this one. 00183 // <li> TableExprNode 00184 // <li> TableExprNodeRep 00185 // </prerequisite> 00186 00187 // <synopsis> 00188 // This class represents an addition in a table select expression tree. 00189 // Strings can also be added (ie. concatenated). 00190 // Numeric data types will be promoted if possible, so for instance 00191 // an addition of Int and Complex is possible. 00192 // </synopsis> 00193 00194 class TableExprNodePlusString : public TableExprNodePlus 00195 { 00196 public: 00197 TableExprNodePlusString (const TableExprNodeRep&); 00198 ~TableExprNodePlusString(); 00199 String getString (const TableExprId& id); 00200 }; 00201 00202 00203 // <summary> 00204 // Date addition in table select expression tree 00205 // </summary> 00206 00207 // <use visibility=local> 00208 00209 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00210 // </reviewed> 00211 00212 // <prerequisite> 00213 //# Classes you should understand before using this one. 00214 // <li> TableExprNode 00215 // <li> TableExprNodeRep 00216 // </prerequisite> 00217 00218 // <synopsis> 00219 // This class represents an addition in a table select expression tree. 00220 // Strings can also be added (ie. concatenated). 00221 // Numeric data types will be promoted if possible, so for instance 00222 // an addition of Int and Complex is possible. 00223 // </synopsis> 00224 00225 class TableExprNodePlusDate : public TableExprNodePlus 00226 { 00227 public: 00228 TableExprNodePlusDate (const TableExprNodeRep&); 00229 ~TableExprNodePlusDate(); 00230 virtual void handleUnits(); 00231 Double getDouble (const TableExprId& id); 00232 MVTime getDate (const TableExprId& id); 00233 }; 00234 00235 00236 00237 // <summary> 00238 // Subtraction in table select expression tree 00239 // </summary> 00240 00241 // <use visibility=local> 00242 00243 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00244 // </reviewed> 00245 00246 // <prerequisite> 00247 //# Classes you should understand before using this one. 00248 // <li> TableExprNode 00249 // <li> TableExprNodeRep 00250 // </prerequisite> 00251 00252 // <synopsis> 00253 // This abstract class represents a subtraction in a table expression tree. 00254 // </synopsis> 00255 00256 class TableExprNodeMinus : public TableExprNodeBinary 00257 { 00258 public: 00259 TableExprNodeMinus (NodeDataType, const TableExprNodeRep&); 00260 ~TableExprNodeMinus(); 00261 }; 00262 00263 00264 // <summary> 00265 // Int subtraction in table select expression tree 00266 // </summary> 00267 00268 // <use visibility=local> 00269 00270 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00271 // </reviewed> 00272 00273 // <prerequisite> 00274 //# Classes you should understand before using this one. 00275 // <li> TableExprNode 00276 // <li> TableExprNodeRep 00277 // </prerequisite> 00278 00279 // <synopsis> 00280 // This class represents a subtraction in a table select expression tree. 00281 // Numeric data types will be promoted if possible, so for instance 00282 // a subtraction of Int and Complex is possible. 00283 // </synopsis> 00284 00285 class TableExprNodeMinusInt : public TableExprNodeMinus 00286 { 00287 public: 00288 TableExprNodeMinusInt (const TableExprNodeRep&); 00289 ~TableExprNodeMinusInt(); 00290 virtual void handleUnits(); 00291 Int64 getInt (const TableExprId& id); 00292 Double getDouble (const TableExprId& id); 00293 DComplex getDComplex (const TableExprId& id); 00294 }; 00295 00296 00297 // <summary> 00298 // Double subtraction in table select expression tree 00299 // </summary> 00300 00301 // <use visibility=local> 00302 00303 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00304 // </reviewed> 00305 00306 // <prerequisite> 00307 //# Classes you should understand before using this one. 00308 // <li> TableExprNode 00309 // <li> TableExprNodeRep 00310 // </prerequisite> 00311 00312 // <synopsis> 00313 // This class represents a subtraction in a table select expression tree. 00314 // Numeric data types will be promoted if possible, so for instance 00315 // a subtraction of Int and Complex is possible. 00316 // </synopsis> 00317 00318 class TableExprNodeMinusDouble : public TableExprNodeMinus 00319 { 00320 public: 00321 TableExprNodeMinusDouble (const TableExprNodeRep&); 00322 ~TableExprNodeMinusDouble(); 00323 virtual void handleUnits(); 00324 Double getDouble (const TableExprId& id); 00325 DComplex getDComplex (const TableExprId& id); 00326 }; 00327 00328 00329 // <summary> 00330 // DComplex subtraction in table select expression tree 00331 // </summary> 00332 00333 // <use visibility=local> 00334 00335 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00336 // </reviewed> 00337 00338 // <prerequisite> 00339 //# Classes you should understand before using this one. 00340 // <li> TableExprNode 00341 // <li> TableExprNodeRep 00342 // </prerequisite> 00343 00344 // <synopsis> 00345 // This class represents a subtraction in a table select expression tree. 00346 // Numeric data types will be promoted if possible, so for instance 00347 // a subtraction of Int and Complex is possible. 00348 // </synopsis> 00349 00350 class TableExprNodeMinusDComplex : public TableExprNodeMinus 00351 { 00352 public: 00353 TableExprNodeMinusDComplex (const TableExprNodeRep&); 00354 ~TableExprNodeMinusDComplex(); 00355 DComplex getDComplex (const TableExprId& id); 00356 }; 00357 00358 00359 // <summary> 00360 // Date subtraction in table select expression tree 00361 // </summary> 00362 00363 // <use visibility=local> 00364 00365 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00366 // </reviewed> 00367 00368 // <prerequisite> 00369 //# Classes you should understand before using this one. 00370 // <li> TableExprNode 00371 // <li> TableExprNodeRep 00372 // </prerequisite> 00373 00374 // <synopsis> 00375 // This class represents a subtraction in a table select expression tree. 00376 // Numeric data types will be promoted if possible, so for instance 00377 // a subtraction of Int and Complex is possible. 00378 // </synopsis> 00379 00380 class TableExprNodeMinusDate : public TableExprNodeMinus 00381 { 00382 public: 00383 TableExprNodeMinusDate (const TableExprNodeRep&); 00384 ~TableExprNodeMinusDate(); 00385 virtual void handleUnits(); 00386 MVTime getDate (const TableExprId& id); 00387 Double getDouble (const TableExprId& id); 00388 }; 00389 00390 00391 00392 // <summary> 00393 // Multiplication in table select expression tree 00394 // </summary> 00395 00396 // <use visibility=local> 00397 00398 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00399 // </reviewed> 00400 00401 // <prerequisite> 00402 //# Classes you should understand before using this one. 00403 // <li> TableExprNode 00404 // <li> TableExprNodeRep 00405 // </prerequisite> 00406 00407 // <synopsis> 00408 // This abstract class represents a multiplication in a table expression tree. 00409 // </synopsis> 00410 00411 class TableExprNodeTimes : public TableExprNodeBinary 00412 { 00413 public: 00414 TableExprNodeTimes (NodeDataType, const TableExprNodeRep&); 00415 ~TableExprNodeTimes(); 00416 virtual void handleUnits(); 00417 }; 00418 00419 00420 // <summary> 00421 // Int multiplication in table select expression tree 00422 // </summary> 00423 00424 // <use visibility=local> 00425 00426 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00427 // </reviewed> 00428 00429 // <prerequisite> 00430 //# Classes you should understand before using this one. 00431 // <li> TableExprNode 00432 // <li> TableExprNodeRep 00433 // </prerequisite> 00434 00435 // <synopsis> 00436 // This class represents a multiplication in a table select expression tree. 00437 // Numeric data types will be promoted if possible, so for instance 00438 // a multiplication of Int and Complex is possible. 00439 // </synopsis> 00440 00441 class TableExprNodeTimesInt : public TableExprNodeTimes 00442 { 00443 public: 00444 TableExprNodeTimesInt (const TableExprNodeRep&); 00445 ~TableExprNodeTimesInt(); 00446 Int64 getInt (const TableExprId& id); 00447 Double getDouble (const TableExprId& id); 00448 DComplex getDComplex (const TableExprId& id); 00449 }; 00450 00451 00452 // <summary> 00453 // Double multiplication in table select expression tree 00454 // </summary> 00455 00456 // <use visibility=local> 00457 00458 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00459 // </reviewed> 00460 00461 // <prerequisite> 00462 //# Classes you should understand before using this one. 00463 // <li> TableExprNode 00464 // <li> TableExprNodeRep 00465 // </prerequisite> 00466 00467 // <synopsis> 00468 // This class represents a multiplication in a table select expression tree. 00469 // Numeric data types will be promoted if possible, so for instance 00470 // a multiplication of Int and Complex is possible. 00471 // </synopsis> 00472 00473 class TableExprNodeTimesDouble : public TableExprNodeTimes 00474 { 00475 public: 00476 TableExprNodeTimesDouble (const TableExprNodeRep&); 00477 ~TableExprNodeTimesDouble(); 00478 Double getDouble (const TableExprId& id); 00479 DComplex getDComplex (const TableExprId& id); 00480 }; 00481 00482 00483 // <summary> 00484 // DComplex multiplication in table select expression tree 00485 // </summary> 00486 00487 // <use visibility=local> 00488 00489 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00490 // </reviewed> 00491 00492 // <prerequisite> 00493 //# Classes you should understand before using this one. 00494 // <li> TableExprNode 00495 // <li> TableExprNodeRep 00496 // </prerequisite> 00497 00498 // <synopsis> 00499 // This class represents a multiplication in a table select expression tree. 00500 // Numeric data types will be promoted if possible, so for instance 00501 // a multiplication of Int and Complex is possible. 00502 // </synopsis> 00503 00504 class TableExprNodeTimesDComplex : public TableExprNodeTimes 00505 { 00506 public: 00507 TableExprNodeTimesDComplex (const TableExprNodeRep&); 00508 ~TableExprNodeTimesDComplex(); 00509 DComplex getDComplex (const TableExprId& id); 00510 }; 00511 00512 00513 00514 // <summary> 00515 // Division in table select expression tree 00516 // </summary> 00517 00518 // <use visibility=local> 00519 00520 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00521 // </reviewed> 00522 00523 // <prerequisite> 00524 //# Classes you should understand before using this one. 00525 // <li> TableExprNode 00526 // <li> TableExprNodeRep 00527 // </prerequisite> 00528 00529 // <synopsis> 00530 // This abstract class represents a division in a table expression tree. 00531 // </synopsis> 00532 00533 class TableExprNodeDivide : public TableExprNodeBinary 00534 { 00535 public: 00536 TableExprNodeDivide (NodeDataType, const TableExprNodeRep&); 00537 ~TableExprNodeDivide(); 00538 virtual void handleUnits(); 00539 }; 00540 00541 00542 // <summary> 00543 // Double division in table select expression tree 00544 // </summary> 00545 00546 // <use visibility=local> 00547 00548 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00549 // </reviewed> 00550 00551 // <prerequisite> 00552 //# Classes you should understand before using this one. 00553 // <li> TableExprNode 00554 // <li> TableExprNodeRep 00555 // </prerequisite> 00556 00557 // <synopsis> 00558 // This class represents a division in a table select expression tree. 00559 // Numeric data types will be promoted if possible, so for instance 00560 // a division of Int and Complex is possible. 00561 // </synopsis> 00562 00563 class TableExprNodeDivideDouble : public TableExprNodeDivide 00564 { 00565 public: 00566 TableExprNodeDivideDouble (const TableExprNodeRep&); 00567 ~TableExprNodeDivideDouble(); 00568 Double getDouble (const TableExprId& id); 00569 DComplex getDComplex (const TableExprId& id); 00570 }; 00571 00572 00573 // <summary> 00574 // DComplex division in table select expression tree 00575 // </summary> 00576 00577 // <use visibility=local> 00578 00579 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00580 // </reviewed> 00581 00582 // <prerequisite> 00583 //# Classes you should understand before using this one. 00584 // <li> TableExprNode 00585 // <li> TableExprNodeRep 00586 // </prerequisite> 00587 00588 // <synopsis> 00589 // This class represents a division in a table select expression tree. 00590 // Numeric data types will be promoted if possible, so for instance 00591 // a division of Int and Complex is possible. 00592 // </synopsis> 00593 00594 class TableExprNodeDivideDComplex : public TableExprNodeDivide 00595 { 00596 public: 00597 TableExprNodeDivideDComplex (const TableExprNodeRep&); 00598 ~TableExprNodeDivideDComplex(); 00599 DComplex getDComplex (const TableExprId& id); 00600 }; 00601 00602 00603 // <summary> 00604 // Modulo in table select expression tree 00605 // </summary> 00606 00607 // <use visibility=local> 00608 00609 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00610 // </reviewed> 00611 00612 // <prerequisite> 00613 //# Classes you should understand before using this one. 00614 // <li> TableExprNode 00615 // <li> TableExprNodeRep 00616 // </prerequisite> 00617 00618 // <synopsis> 00619 // This abstract class represents a modulo in a table expression tree. 00620 // </synopsis> 00621 00622 class TableExprNodeModulo : public TableExprNodeBinary 00623 { 00624 public: 00625 TableExprNodeModulo (NodeDataType, const TableExprNodeRep&); 00626 ~TableExprNodeModulo(); 00627 virtual void handleUnits(); 00628 }; 00629 00630 00631 // <summary> 00632 // Int modulo in table select expression tree 00633 // </summary> 00634 00635 // <use visibility=local> 00636 00637 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00638 // </reviewed> 00639 00640 // <prerequisite> 00641 //# Classes you should understand before using this one. 00642 // <li> TableExprNode 00643 // <li> TableExprNodeRep 00644 // </prerequisite> 00645 00646 // <synopsis> 00647 // This class represents a modulo operation in a table select expression tree. 00648 // It is only possible for datatype Int. 00649 // </synopsis> 00650 00651 class TableExprNodeModuloInt : public TableExprNodeModulo 00652 { 00653 public: 00654 TableExprNodeModuloInt (const TableExprNodeRep&); 00655 ~TableExprNodeModuloInt(); 00656 Int64 getInt (const TableExprId& id); 00657 Double getDouble (const TableExprId& id); 00658 DComplex getDComplex (const TableExprId& id); 00659 }; 00660 00661 00662 // <summary> 00663 // Double modulo in table select expression tree 00664 // </summary> 00665 00666 // <use visibility=local> 00667 00668 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00669 // </reviewed> 00670 00671 // <prerequisite> 00672 //# Classes you should understand before using this one. 00673 // <li> TableExprNode 00674 // <li> TableExprNodeRep 00675 // </prerequisite> 00676 00677 // <synopsis> 00678 // This class represents a modulo operation in a table select expression tree. 00679 // It is only possible for datatype Double. 00680 // </synopsis> 00681 00682 class TableExprNodeModuloDouble : public TableExprNodeModulo 00683 { 00684 public: 00685 TableExprNodeModuloDouble (const TableExprNodeRep&); 00686 ~TableExprNodeModuloDouble(); 00687 Double getDouble (const TableExprId& id); 00688 DComplex getDComplex (const TableExprId& id); 00689 }; 00690 00691 00692 // <summary> 00693 // Bitwise and in table select expression tree 00694 // </summary> 00695 00696 // <use visibility=local> 00697 00698 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00699 // </reviewed> 00700 00701 // <prerequisite> 00702 //# Classes you should understand before using this one. 00703 // <li> TableExprNode 00704 // <li> TableExprNodeRep 00705 // </prerequisite> 00706 00707 // <synopsis> 00708 // This class represents a bitwise and operation in a table select expression 00709 // tree. It is only possible for datatype Int. 00710 // </synopsis> 00711 00712 class TableExprNodeBitAndInt : public TableExprNodeBinary 00713 { 00714 public: 00715 TableExprNodeBitAndInt (const TableExprNodeRep&); 00716 ~TableExprNodeBitAndInt(); 00717 Int64 getInt (const TableExprId& id); 00718 Double getDouble (const TableExprId& id); 00719 DComplex getDComplex (const TableExprId& id); 00720 }; 00721 00722 00723 // <summary> 00724 // Bitwise or in table select expression tree 00725 // </summary> 00726 00727 // <use visibility=local> 00728 00729 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00730 // </reviewed> 00731 00732 // <prerequisite> 00733 //# Classes you should understand before using this one. 00734 // <li> TableExprNode 00735 // <li> TableExprNodeRep 00736 // </prerequisite> 00737 00738 // <synopsis> 00739 // This class represents a bitwise or operation in a table select expression 00740 // tree. It is only possible for datatype Int. 00741 // </synopsis> 00742 00743 class TableExprNodeBitOrInt : public TableExprNodeBinary 00744 { 00745 public: 00746 TableExprNodeBitOrInt (const TableExprNodeRep&); 00747 ~TableExprNodeBitOrInt(); 00748 Int64 getInt (const TableExprId& id); 00749 Double getDouble (const TableExprId& id); 00750 DComplex getDComplex (const TableExprId& id); 00751 }; 00752 00753 00754 // <summary> 00755 // Bitwise xor in table select expression tree 00756 // </summary> 00757 00758 // <use visibility=local> 00759 00760 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00761 // </reviewed> 00762 00763 // <prerequisite> 00764 //# Classes you should understand before using this one. 00765 // <li> TableExprNode 00766 // <li> TableExprNodeRep 00767 // </prerequisite> 00768 00769 // <synopsis> 00770 // This class represents a bitwise xor operation in a table select expression 00771 // tree. It is only possible for datatype Int. 00772 // </synopsis> 00773 00774 class TableExprNodeBitXorInt : public TableExprNodeBinary 00775 { 00776 public: 00777 TableExprNodeBitXorInt (const TableExprNodeRep&); 00778 ~TableExprNodeBitXorInt(); 00779 Int64 getInt (const TableExprId& id); 00780 Double getDouble (const TableExprId& id); 00781 DComplex getDComplex (const TableExprId& id); 00782 }; 00783 00784 00785 00786 // <summary> 00787 // Unary minus in table select expression tree 00788 // </summary> 00789 00790 // <use visibility=local> 00791 00792 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00793 // </reviewed> 00794 00795 // <prerequisite> 00796 //# Classes you should understand before using this one. 00797 // <li> TableExprNode 00798 // </prerequisite> 00799 00800 // <synopsis> 00801 // This class represents a unary minus in a table select expression tree. 00802 // This is defined for numeric data types only. 00803 // </synopsis> 00804 00805 class TableExprNodeMIN : public TableExprNodeBinary 00806 { 00807 public: 00808 TableExprNodeMIN (const TableExprNodeRep&); 00809 ~TableExprNodeMIN(); 00810 Int64 getInt (const TableExprId& id); 00811 Double getDouble (const TableExprId& id); 00812 DComplex getDComplex (const TableExprId& id); 00813 }; 00814 00815 00816 // <summary> 00817 // Bitwise negate in table select expression tree 00818 // </summary> 00819 00820 // <use visibility=local> 00821 00822 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00823 // </reviewed> 00824 00825 // <prerequisite> 00826 //# Classes you should understand before using this one. 00827 // <li> TableExprNode 00828 // </prerequisite> 00829 00830 // <synopsis> 00831 // This class represents a bitwise negate in a table select expression tree. 00832 // This is defined for integer data types only. 00833 // </synopsis> 00834 00835 class TableExprNodeBitNegate : public TableExprNodeBinary 00836 { 00837 public: 00838 TableExprNodeBitNegate (const TableExprNodeRep&); 00839 ~TableExprNodeBitNegate(); 00840 Int64 getInt (const TableExprId& id); 00841 Double getDouble (const TableExprId& id); 00842 DComplex getDComplex (const TableExprId& id); 00843 }; 00844 00845 00846 } //# NAMESPACE CASA - END 00847 00848 #endif