diff options
Diffstat (limited to 'src/traversal/transform.h')
-rw-r--r-- | src/traversal/transform.h | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/src/traversal/transform.h b/src/traversal/transform.h deleted file mode 100644 index 158b9b6a..00000000 --- a/src/traversal/transform.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright (c) 2003-2007, John Wiegley. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * - Neither the name of New Artisans LLC nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _TRANSFORM_H -#define _TRANSFORM_H - -#include "xpath.h" - -namespace ledger { - -class transform_t { - public: - virtual ~transform_t() {} - virtual value_t operator()(xml::xpath_t::scope_t& args) = 0; -}; - -class check_transform : public transform_t { - // --check checks the validity of the item list. - public: - virtual value_t operator()(xml::xpath_t::call_scope_t& args); -}; - -class accounts_transform : public transform_t { - // --accounts transforms the report tree into an account-wise view. - public: - virtual value_t operator()(xml::xpath_t::call_scope_t& args); -}; - -class compact_transform : public transform_t { - // --compact compacts an account tree to remove accounts with only - // one child account. - public: - virtual value_t operator()(xml::xpath_t::call_scope_t& args); -}; - -class clean_transform : public transform_t { - // --clean clears out entries and accounts that have no contents. - public: - virtual value_t operator()(xml::xpath_t::call_scope_t& args); -}; - -class entries_transform : public transform_t { - // --entries transforms the report tree into an entries-wise view. - public: - virtual value_t operator()(xml::xpath_t::call_scope_t& args); -}; - -class optimize_transform : public transform_t { - // --optimize optimizes entries for display by the print command. - // What this means is that if an entry has two transactions of the - // commodity (one the negative of the other), the amount of the - // second transaction will be nulled out. - public: - virtual value_t operator()(xml::xpath_t::call_scope_t& args); -}; - -class split_transform : public transform_t { - // --split breaks entry with two or more transactions into what - // seems like two entries each with one transaction -- even though - // it is the same entry being reported in both cases. This is - // useful before sorting, for exampel, in order to sort by - // transaction instead of by entry. - public: - virtual value_t operator()(xml::xpath_t::call_scope_t& args); -}; - -class merge_transform : public transform_t { - // --merge is the opposite of --split: any adjacent transactions - // which share the same entry will be merged into a group of - // transactions under one reported entry. - public: - virtual value_t operator()(xml::xpath_t::call_scope_t& args); -}; - -class combine_transform : public transform_t { - // --combine EXPR combines all transactions matching EXPR so that - // they appear within the same virtual entry (whose date will span - // the earliest to the latest of those entries, and whose payee name - // will show the terminating date or a label that is characteristic - // of the set). - public: - virtual value_t operator()(xml::xpath_t::call_scope_t& args); -}; - -class group_transform : public transform_t { - // --group groups all transactions that affect the same account - // within an entry, so that they appear as a single transaction. - public: - virtual value_t operator()(xml::xpath_t::call_scope_t& args); -}; - -class collapse_transform : public transform_t { - // --collapse makes all transactions within an entry appear as a - // single transaction, even if they affect different accounts. The - // fictitous account "<total>" is used to represent the final sum, - // if multiple accounts are involved. - public: - virtual value_t operator()(xml::xpath_t::call_scope_t& args); -}; - -class subtotal_transform : public transform_t { - // --subtotal will combine the transactions from all entries into - // one giant entry. When used in conjunction with --group, the - // affect is very similar to a regular balance report. - public: - virtual value_t operator()(xml::xpath_t::call_scope_t& args); -}; - -#if 0 -class select_transform : public transform_t -{ - protected: - xml::xpath_t xpath; - - public: - select_transform(const string& selection_path) { - xpath.parse(selection_path); - } - virtual ~select_transform() {} - - virtual value_t operator()(xml::xpath_t::call_scope_t& args); -}; - -class remove_transform : public select_transform -{ - public: - remove_transform(const string& selection_path) - : select_transform(selection_path) {} - - virtual value_t operator()(xml::xpath_t::call_scope_t& args); -}; -#endif - -} // namespace ledger - -#endif // _TRANSFORM_H |