summaryrefslogtreecommitdiff
path: root/src/traversal/transform.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/traversal/transform.h')
-rw-r--r--src/traversal/transform.h164
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