casa
$Rev:20696$
|
00001 //# ExprMathArrayNode.h: Nodes representing mathematical array operators in table select expression tree 00002 //# Copyright (C) 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: ExprMathNodeArray.h 21168 2012-01-04 08:11:03Z gervandiepen $ 00027 00028 #ifndef TABLES_EXPRMATHNODEARRAY_H 00029 #define TABLES_EXPRMATHNODEARRAY_H 00030 00031 //# Includes 00032 #include <casa/aips.h> 00033 #include <tables/Tables/ExprNodeArray.h> 00034 #include <casa/Arrays/Array.h> 00035 00036 namespace casa { //# NAMESPACE CASA - BEGIN 00037 00038 //# Forward Declarations 00039 00040 //# This file defines classes derived from TableExprNode representing 00041 //# the data type and operator in a table expression. 00042 //# 00043 //# Data types Bool, Int64, Double, DComplex and String are used. 00044 //# Char, uChar, Short, uShort, Int, and uInt are converted to Int64, 00045 //# Float to Double, and Complex to DComplex. 00046 //# Binary operators +, -, *, /, and % are recognized. 00047 //# Also unary + and - are recognized. 00048 00049 00050 00051 // <summary> 00052 // Array addition in table select expression tree 00053 // </summary> 00054 00055 // <use visibility=local> 00056 00057 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00058 // </reviewed> 00059 00060 // <prerequisite> 00061 //# Classes you should understand before using this one. 00062 // <li> TableExprNode 00063 // <li> TableExprNodeRep 00064 // </prerequisite> 00065 00066 // <synopsis> 00067 // This abstract class represents an addition in a table expression tree. 00068 // </synopsis> 00069 00070 class TableExprNodeArrayPlus : public TableExprNodeArray 00071 { 00072 public: 00073 TableExprNodeArrayPlus (NodeDataType, const TableExprNodeRep&); 00074 ~TableExprNodeArrayPlus(); 00075 }; 00076 00077 00078 // <summary> 00079 // Int Array addition in table select expression tree 00080 // </summary> 00081 00082 // <use visibility=local> 00083 00084 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00085 // </reviewed> 00086 00087 // <prerequisite> 00088 //# Classes you should understand before using this one. 00089 // <li> TableExprNode 00090 // <li> TableExprNodeRep 00091 // </prerequisite> 00092 00093 // <synopsis> 00094 // This class represents an addition in a table select expression tree. 00095 // Strings can also be added (ie. concatenated). 00096 // Numeric data types will be promoted if possible, so for instance 00097 // an addition of Int and Complex is possible. 00098 // </synopsis> 00099 00100 class TableExprNodeArrayPlusInt : public TableExprNodeArrayPlus 00101 { 00102 public: 00103 TableExprNodeArrayPlusInt (const TableExprNodeRep&); 00104 ~TableExprNodeArrayPlusInt(); 00105 Array<Int64> getArrayInt (const TableExprId& id); 00106 }; 00107 00108 00109 // <summary> 00110 // Double Array 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 TableExprNodeArrayPlusDouble : public TableExprNodeArrayPlus 00132 { 00133 public: 00134 TableExprNodeArrayPlusDouble (const TableExprNodeRep&); 00135 ~TableExprNodeArrayPlusDouble(); 00136 Array<Double> getArrayDouble (const TableExprId& id); 00137 }; 00138 00139 00140 // <summary> 00141 // DComplex Array addition in table select expression tree 00142 // </summary> 00143 00144 // <use visibility=local> 00145 00146 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00147 // </reviewed> 00148 00149 // <prerequisite> 00150 //# Classes you should understand before using this one. 00151 // <li> TableExprNode 00152 // <li> TableExprNodeRep 00153 // </prerequisite> 00154 00155 // <synopsis> 00156 // This class represents an addition in a table select expression tree. 00157 // Strings can also be added (ie. concatenated). 00158 // Numeric data types will be promoted if possible, so for instance 00159 // an addition of Int and Complex is possible. 00160 // </synopsis> 00161 00162 class TableExprNodeArrayPlusDComplex : public TableExprNodeArrayPlus 00163 { 00164 public: 00165 TableExprNodeArrayPlusDComplex (const TableExprNodeRep&); 00166 ~TableExprNodeArrayPlusDComplex(); 00167 Array<DComplex> getArrayDComplex (const TableExprId& id); 00168 }; 00169 00170 00171 // <summary> 00172 // String Array addition in table select expression tree 00173 // </summary> 00174 00175 // <use visibility=local> 00176 00177 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00178 // </reviewed> 00179 00180 // <prerequisite> 00181 //# Classes you should understand before using this one. 00182 // <li> TableExprNode 00183 // <li> TableExprNodeRep 00184 // </prerequisite> 00185 00186 // <synopsis> 00187 // This class represents an addition in a table select expression tree. 00188 // Strings can also be added (ie. concatenated). 00189 // Numeric data types will be promoted if possible, so for instance 00190 // an addition of Int and Complex is possible. 00191 // </synopsis> 00192 00193 class TableExprNodeArrayPlusString : public TableExprNodeArrayPlus 00194 { 00195 public: 00196 TableExprNodeArrayPlusString (const TableExprNodeRep&); 00197 ~TableExprNodeArrayPlusString(); 00198 Array<String> getArrayString (const TableExprId& id); 00199 private: 00200 // Concatenate <src>nr</src> arrays of strings. 00201 // The increment is 0 for a scalar value. Otherwise it is 1. 00202 void concString (String* to, const String* left, Int incrLeft, 00203 const String* right, Int incrRight, uInt nr) const; 00204 }; 00205 00206 00207 // <summary> 00208 // Date Array addition in table select expression tree 00209 // </summary> 00210 00211 // <use visibility=local> 00212 00213 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00214 // </reviewed> 00215 00216 // <prerequisite> 00217 //# Classes you should understand before using this one. 00218 // <li> TableExprNode 00219 // <li> TableExprNodeRep 00220 // </prerequisite> 00221 00222 // <synopsis> 00223 // This class represents an addition in a table select expression tree. 00224 // Strings can also be added (ie. concatenated). 00225 // Numeric data types will be promoted if possible, so for instance 00226 // an addition of Int and Complex is possible. 00227 // </synopsis> 00228 00229 class TableExprNodeArrayPlusDate : public TableExprNodeArrayPlus 00230 { 00231 public: 00232 TableExprNodeArrayPlusDate (const TableExprNodeRep&); 00233 ~TableExprNodeArrayPlusDate(); 00234 virtual void handleUnits(); 00235 Array<Double> getArrayDouble (const TableExprId& id); 00236 Array<MVTime> getArrayDate (const TableExprId& id); 00237 }; 00238 00239 00240 00241 // <summary> 00242 // Array addition in table select expression tree 00243 // </summary> 00244 00245 // <use visibility=local> 00246 00247 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00248 // </reviewed> 00249 00250 // <prerequisite> 00251 //# Classes you should understand before using this one. 00252 // <li> TableExprNode 00253 // <li> TableExprNodeRep 00254 // </prerequisite> 00255 00256 // <synopsis> 00257 // This abstract class represents an addition in a table expression tree. 00258 // </synopsis> 00259 00260 class TableExprNodeArrayMinus : public TableExprNodeArray 00261 { 00262 public: 00263 TableExprNodeArrayMinus (NodeDataType, const TableExprNodeRep&); 00264 ~TableExprNodeArrayMinus(); 00265 }; 00266 00267 00268 // <summary> 00269 // Int Array subtraction in table select expression tree 00270 // </summary> 00271 00272 // <use visibility=local> 00273 00274 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00275 // </reviewed> 00276 00277 // <prerequisite> 00278 //# Classes you should understand before using this one. 00279 // <li> TableExprNode 00280 // <li> TableExprNodeRep 00281 // </prerequisite> 00282 00283 // <synopsis> 00284 // This class represents a subtraction in a table select expression tree. 00285 // Numeric data types will be promoted if possible, so for instance 00286 // a subtraction of Int and Complex is possible. 00287 // </synopsis> 00288 00289 class TableExprNodeArrayMinusInt : public TableExprNodeArrayMinus 00290 { 00291 public: 00292 TableExprNodeArrayMinusInt (const TableExprNodeRep&); 00293 ~TableExprNodeArrayMinusInt(); 00294 Array<Int64> getArrayInt (const TableExprId& id); 00295 }; 00296 00297 00298 // <summary> 00299 // Double Array subtraction in table select expression tree 00300 // </summary> 00301 00302 // <use visibility=local> 00303 00304 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00305 // </reviewed> 00306 00307 // <prerequisite> 00308 //# Classes you should understand before using this one. 00309 // <li> TableExprNode 00310 // <li> TableExprNodeRep 00311 // </prerequisite> 00312 00313 // <synopsis> 00314 // This class represents a subtraction in a table select expression tree. 00315 // Numeric data types will be promoted if possible, so for instance 00316 // a subtraction of Int and Complex is possible. 00317 // </synopsis> 00318 00319 class TableExprNodeArrayMinusDouble : public TableExprNodeArrayMinus 00320 { 00321 public: 00322 TableExprNodeArrayMinusDouble (const TableExprNodeRep&); 00323 ~TableExprNodeArrayMinusDouble(); 00324 Array<Double> getArrayDouble (const TableExprId& id); 00325 }; 00326 00327 00328 // <summary> 00329 // DComplex Array subtraction in table select expression tree 00330 // </summary> 00331 00332 // <use visibility=local> 00333 00334 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00335 // </reviewed> 00336 00337 // <prerequisite> 00338 //# Classes you should understand before using this one. 00339 // <li> TableExprNode 00340 // <li> TableExprNodeRep 00341 // </prerequisite> 00342 00343 // <synopsis> 00344 // This class represents a subtraction in a table select expression tree. 00345 // Numeric data types will be promoted if possible, so for instance 00346 // a subtraction of Int and Complex is possible. 00347 // </synopsis> 00348 00349 class TableExprNodeArrayMinusDComplex : public TableExprNodeArrayMinus 00350 { 00351 public: 00352 TableExprNodeArrayMinusDComplex (const TableExprNodeRep&); 00353 ~TableExprNodeArrayMinusDComplex(); 00354 Array<DComplex> getArrayDComplex (const TableExprId& id); 00355 }; 00356 00357 00358 // <summary> 00359 // Date Array subtraction in table select expression tree 00360 // </summary> 00361 00362 // <use visibility=local> 00363 00364 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00365 // </reviewed> 00366 00367 // <prerequisite> 00368 //# Classes you should understand before using this one. 00369 // <li> TableExprNode 00370 // <li> TableExprNodeRep 00371 // </prerequisite> 00372 00373 // <synopsis> 00374 // This class represents a subtraction in a table select expression tree. 00375 // Numeric data types will be promoted if possible, so for instance 00376 // a subtraction of Int and Complex is possible. 00377 // </synopsis> 00378 00379 class TableExprNodeArrayMinusDate : public TableExprNodeArrayMinus 00380 { 00381 public: 00382 TableExprNodeArrayMinusDate (const TableExprNodeRep&); 00383 ~TableExprNodeArrayMinusDate(); 00384 virtual void handleUnits(); 00385 Array<Double> getArrayDouble (const TableExprId& id); 00386 Array<MVTime> getArrayDate (const TableExprId& id); 00387 }; 00388 00389 00390 00391 // <summary> 00392 // Array addition in table select expression tree 00393 // </summary> 00394 00395 // <use visibility=local> 00396 00397 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00398 // </reviewed> 00399 00400 // <prerequisite> 00401 //# Classes you should understand before using this one. 00402 // <li> TableExprNode 00403 // <li> TableExprNodeRep 00404 // </prerequisite> 00405 00406 // <synopsis> 00407 // This abstract class represents an addition in a table expression tree. 00408 // </synopsis> 00409 00410 class TableExprNodeArrayTimes : public TableExprNodeArray 00411 { 00412 public: 00413 TableExprNodeArrayTimes (NodeDataType, const TableExprNodeRep&); 00414 ~TableExprNodeArrayTimes(); 00415 virtual void handleUnits(); 00416 }; 00417 00418 00419 // <summary> 00420 // Int Array multiplication in table select expression tree 00421 // </summary> 00422 00423 // <use visibility=local> 00424 00425 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00426 // </reviewed> 00427 00428 // <prerequisite> 00429 //# Classes you should understand before using this one. 00430 // <li> TableExprNode 00431 // <li> TableExprNodeRep 00432 // </prerequisite> 00433 00434 // <synopsis> 00435 // This class represents a multiplication in a table select expression tree. 00436 // Numeric data types will be promoted if possible, so for instance 00437 // a multiplication of Int and Complex is possible. 00438 // </synopsis> 00439 00440 class TableExprNodeArrayTimesInt : public TableExprNodeArrayTimes 00441 { 00442 public: 00443 TableExprNodeArrayTimesInt (const TableExprNodeRep&); 00444 ~TableExprNodeArrayTimesInt(); 00445 Array<Int64> getArrayInt (const TableExprId& id); 00446 }; 00447 00448 00449 // <summary> 00450 // Double Array multiplication in table select expression tree 00451 // </summary> 00452 00453 // <use visibility=local> 00454 00455 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00456 // </reviewed> 00457 00458 // <prerequisite> 00459 //# Classes you should understand before using this one. 00460 // <li> TableExprNode 00461 // <li> TableExprNodeRep 00462 // </prerequisite> 00463 00464 // <synopsis> 00465 // This class represents a multiplication in a table select expression tree. 00466 // Numeric data types will be promoted if possible, so for instance 00467 // a multiplication of Int and Complex is possible. 00468 // </synopsis> 00469 00470 class TableExprNodeArrayTimesDouble : public TableExprNodeArrayTimes 00471 { 00472 public: 00473 TableExprNodeArrayTimesDouble (const TableExprNodeRep&); 00474 ~TableExprNodeArrayTimesDouble(); 00475 Array<Double> getArrayDouble (const TableExprId& id); 00476 }; 00477 00478 00479 // <summary> 00480 // DComplex Array multiplication in table select expression tree 00481 // </summary> 00482 00483 // <use visibility=local> 00484 00485 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00486 // </reviewed> 00487 00488 // <prerequisite> 00489 //# Classes you should understand before using this one. 00490 // <li> TableExprNode 00491 // <li> TableExprNodeRep 00492 // </prerequisite> 00493 00494 // <synopsis> 00495 // This class represents a multiplication in a table select expression tree. 00496 // Numeric data types will be promoted if possible, so for instance 00497 // a multiplication of Int and Complex is possible. 00498 // </synopsis> 00499 00500 class TableExprNodeArrayTimesDComplex : public TableExprNodeArrayTimes 00501 { 00502 public: 00503 TableExprNodeArrayTimesDComplex (const TableExprNodeRep&); 00504 ~TableExprNodeArrayTimesDComplex(); 00505 Array<DComplex> getArrayDComplex (const TableExprId& id); 00506 }; 00507 00508 00509 00510 // <summary> 00511 // Array addition in table select expression tree 00512 // </summary> 00513 00514 // <use visibility=local> 00515 00516 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00517 // </reviewed> 00518 00519 // <prerequisite> 00520 //# Classes you should understand before using this one. 00521 // <li> TableExprNode 00522 // <li> TableExprNodeRep 00523 // </prerequisite> 00524 00525 // <synopsis> 00526 // This abstract class represents an addition in a table expression tree. 00527 // </synopsis> 00528 00529 class TableExprNodeArrayDivide : public TableExprNodeArray 00530 { 00531 public: 00532 TableExprNodeArrayDivide (NodeDataType, const TableExprNodeRep&); 00533 ~TableExprNodeArrayDivide(); 00534 virtual void handleUnits(); 00535 }; 00536 00537 00538 // <summary> 00539 // Double Array division in table select expression tree 00540 // </summary> 00541 00542 // <use visibility=local> 00543 00544 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00545 // </reviewed> 00546 00547 // <prerequisite> 00548 //# Classes you should understand before using this one. 00549 // <li> TableExprNode 00550 // <li> TableExprNodeRep 00551 // </prerequisite> 00552 00553 // <synopsis> 00554 // This class represents a division in a table select expression tree. 00555 // Numeric data types will be promoted if possible, so for instance 00556 // a division of Int and Complex is possible. 00557 // </synopsis> 00558 00559 class TableExprNodeArrayDivideDouble : public TableExprNodeArrayDivide 00560 { 00561 public: 00562 TableExprNodeArrayDivideDouble (const TableExprNodeRep&); 00563 ~TableExprNodeArrayDivideDouble(); 00564 Array<Double> getArrayDouble (const TableExprId& id); 00565 }; 00566 00567 00568 // <summary> 00569 // DComplex Array division in table select expression tree 00570 // </summary> 00571 00572 // <use visibility=local> 00573 00574 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00575 // </reviewed> 00576 00577 // <prerequisite> 00578 //# Classes you should understand before using this one. 00579 // <li> TableExprNode 00580 // <li> TableExprNodeRep 00581 // </prerequisite> 00582 00583 // <synopsis> 00584 // This class represents a division in a table select expression tree. 00585 // Numeric data types will be promoted if possible, so for instance 00586 // a division of Int and Complex is possible. 00587 // </synopsis> 00588 00589 class TableExprNodeArrayDivideDComplex : public TableExprNodeArrayDivide 00590 { 00591 public: 00592 TableExprNodeArrayDivideDComplex (const TableExprNodeRep&); 00593 ~TableExprNodeArrayDivideDComplex(); 00594 Array<DComplex> getArrayDComplex (const TableExprId& id); 00595 }; 00596 00597 00598 00599 // <summary> 00600 // Array addition in table select expression tree 00601 // </summary> 00602 00603 // <use visibility=local> 00604 00605 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00606 // </reviewed> 00607 00608 // <prerequisite> 00609 //# Classes you should understand before using this one. 00610 // <li> TableExprNode 00611 // <li> TableExprNodeRep 00612 // </prerequisite> 00613 00614 // <synopsis> 00615 // This abstract class represents an addition in a table expression tree. 00616 // </synopsis> 00617 00618 class TableExprNodeArrayModulo : public TableExprNodeArray 00619 { 00620 public: 00621 TableExprNodeArrayModulo (NodeDataType, const TableExprNodeRep&); 00622 ~TableExprNodeArrayModulo(); 00623 virtual void handleUnits(); 00624 }; 00625 00626 00627 // <summary> 00628 // Int Array modulo in table select expression tree 00629 // </summary> 00630 00631 // <use visibility=local> 00632 00633 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00634 // </reviewed> 00635 00636 // <prerequisite> 00637 //# Classes you should understand before using this one. 00638 // <li> TableExprNode 00639 // <li> TableExprNodeRep 00640 // </prerequisite> 00641 00642 // <synopsis> 00643 // This class represents a modulo operation in a table select expression tree. 00644 // It is only possible for datatype Int. 00645 // </synopsis> 00646 00647 class TableExprNodeArrayModuloInt : public TableExprNodeArrayModulo 00648 { 00649 public: 00650 TableExprNodeArrayModuloInt (const TableExprNodeRep&); 00651 ~TableExprNodeArrayModuloInt(); 00652 Array<Int64> getArrayInt (const TableExprId& id); 00653 }; 00654 00655 00656 // <summary> 00657 // Double Array modulo in table select expression tree 00658 // </summary> 00659 00660 // <use visibility=local> 00661 00662 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00663 // </reviewed> 00664 00665 // <prerequisite> 00666 //# Classes you should understand before using this one. 00667 // <li> TableExprNode 00668 // <li> TableExprNodeRep 00669 // </prerequisite> 00670 00671 // <synopsis> 00672 // This class represents a modulo operation in a table select expression tree. 00673 // It is only possible for datatype Double. 00674 // </synopsis> 00675 00676 class TableExprNodeArrayModuloDouble : public TableExprNodeArrayModulo 00677 { 00678 public: 00679 TableExprNodeArrayModuloDouble (const TableExprNodeRep&); 00680 ~TableExprNodeArrayModuloDouble(); 00681 Array<Double> getArrayDouble (const TableExprId& id); 00682 }; 00683 00684 00685 00686 // <summary> 00687 // Int Array bitwise and in table select expression tree 00688 // </summary> 00689 00690 // <use visibility=local> 00691 00692 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00693 // </reviewed> 00694 00695 // <prerequisite> 00696 //# Classes you should understand before using this one. 00697 // <li> TableExprNode 00698 // <li> TableExprNodeRep 00699 // </prerequisite> 00700 00701 // <synopsis> 00702 // This class represents a bitwise and operation in a table select expression 00703 // tree. It is only possible for datatype Int. 00704 // </synopsis> 00705 00706 class TableExprNodeArrayBitAndInt : public TableExprNodeArray 00707 { 00708 public: 00709 TableExprNodeArrayBitAndInt (const TableExprNodeRep&); 00710 ~TableExprNodeArrayBitAndInt(); 00711 Array<Int64> getArrayInt (const TableExprId& id); 00712 }; 00713 00714 00715 // <summary> 00716 // Int Array bitwise or in table select expression tree 00717 // </summary> 00718 00719 // <use visibility=local> 00720 00721 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00722 // </reviewed> 00723 00724 // <prerequisite> 00725 //# Classes you should understand before using this one. 00726 // <li> TableExprNode 00727 // <li> TableExprNodeRep 00728 // </prerequisite> 00729 00730 // <synopsis> 00731 // This class represents a bitwise or operation in a table select expression 00732 // tree. It is only possible for datatype Int. 00733 // </synopsis> 00734 00735 class TableExprNodeArrayBitOrInt : public TableExprNodeArray 00736 { 00737 public: 00738 TableExprNodeArrayBitOrInt (const TableExprNodeRep&); 00739 ~TableExprNodeArrayBitOrInt(); 00740 Array<Int64> getArrayInt (const TableExprId& id); 00741 }; 00742 00743 00744 // <summary> 00745 // Int Array bitwise xor in table select expression tree 00746 // </summary> 00747 00748 // <use visibility=local> 00749 00750 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00751 // </reviewed> 00752 00753 // <prerequisite> 00754 //# Classes you should understand before using this one. 00755 // <li> TableExprNode 00756 // <li> TableExprNodeRep 00757 // </prerequisite> 00758 00759 // <synopsis> 00760 // This class represents a bitwise xor operation in a table select expression 00761 // tree. It is only possible for datatype Int. 00762 // </synopsis> 00763 00764 class TableExprNodeArrayBitXorInt : public TableExprNodeArray 00765 { 00766 public: 00767 TableExprNodeArrayBitXorInt (const TableExprNodeRep&); 00768 ~TableExprNodeArrayBitXorInt(); 00769 Array<Int64> getArrayInt (const TableExprId& id); 00770 }; 00771 00772 00773 00774 // <summary> 00775 // Unary minus in table select expression tree 00776 // </summary> 00777 00778 // <use visibility=local> 00779 00780 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00781 // </reviewed> 00782 00783 // <prerequisite> 00784 //# Classes you should understand before using this one. 00785 // <li> TableExprNode 00786 // </prerequisite> 00787 00788 // <synopsis> 00789 // This class represents a unary minus in a table select expression tree. 00790 // This is defined for numeric data types only. 00791 // </synopsis> 00792 00793 class TableExprNodeArrayMIN : public TableExprNodeArray 00794 { 00795 public: 00796 TableExprNodeArrayMIN (const TableExprNodeRep&); 00797 ~TableExprNodeArrayMIN(); 00798 Array<Int64> getArrayInt (const TableExprId& id); 00799 Array<Double> getArrayDouble (const TableExprId& id); 00800 Array<DComplex> getArrayDComplex (const TableExprId& id); 00801 }; 00802 00803 00804 // <summary> 00805 // Bitwise negate in table select expression tree 00806 // </summary> 00807 00808 // <use visibility=local> 00809 00810 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests=""> 00811 // </reviewed> 00812 00813 // <prerequisite> 00814 //# Classes you should understand before using this one. 00815 // <li> TableExprNode 00816 // </prerequisite> 00817 00818 // <synopsis> 00819 // This class represents a bitwise negate in a table select expression tree. 00820 // This is defined for Int data types only. 00821 // </synopsis> 00822 00823 class TableExprNodeArrayBitNegate : public TableExprNodeArray 00824 { 00825 public: 00826 TableExprNodeArrayBitNegate (const TableExprNodeRep&); 00827 ~TableExprNodeArrayBitNegate(); 00828 Array<Int64> getArrayInt (const TableExprId& id); 00829 }; 00830 00831 00832 } //# NAMESPACE CASA - END 00833 00834 #endif