summaryrefslogtreecommitdiff
path: root/account.cc
diff options
context:
space:
mode:
Diffstat (limited to 'account.cc')
-rw-r--r--account.cc115
1 files changed, 0 insertions, 115 deletions
diff --git a/account.cc b/account.cc
deleted file mode 100644
index 0c795654..00000000
--- a/account.cc
+++ /dev/null
@@ -1,115 +0,0 @@
-#include "ledger.h"
-
-#include <sstream>
-#include <deque>
-
-namespace ledger {
-
-account_t::~account_t()
-{
- DEBUG_PRINT("ledger.memory.ctors", "dtor account_t");
- //assert(! data);
-
- for (accounts_map::iterator i = accounts.begin();
- i != accounts.end();
- i++)
- delete (*i).second;
-}
-
-account_t * account_t::find_account(const std::string& name,
- const bool auto_create)
-{
- accounts_map::const_iterator i = accounts.find(name);
- if (i != accounts.end())
- return (*i).second;
-
- static char buf[256];
-
- std::string::size_type sep = name.find(':');
- const char * first, * rest;
- if (sep == std::string::npos) {
- first = name.c_str();
- rest = NULL;
- } else {
- std::strncpy(buf, name.c_str(), sep);
- buf[sep] = '\0';
-
- first = buf;
- rest = name.c_str() + sep + 1;
- }
-
- account_t * account;
-
- i = accounts.find(first);
- if (i == accounts.end()) {
- if (! auto_create)
- return NULL;
- account = new account_t(this, first);
- accounts.insert(accounts_pair(first, account));
- } else {
- account = (*i).second;
- }
-
- if (rest)
- account = account->find_account(rest, auto_create);
-
- return account;
-}
-
-bool account_t::remove_transaction(transaction_t * xact)
-{
- for (transactions_list::iterator i = transactions.begin();
- i != transactions.end();
- i++)
- if (*i == xact) {
- transactions.erase(i);
- return true;
- }
-
- return false;
-}
-
-std::string account_t::fullname() const
-{
- if (! _fullname.empty()) {
- return _fullname;
- } else {
- const account_t * first = this;
- std::string fullname = name;
-
- while (first->parent) {
- first = first->parent;
- if (! first->name.empty())
- fullname = first->name + ":" + fullname;
- }
-
- _fullname = fullname;
-
- return fullname;
- }
-}
-
-bool account_t::valid() const
-{
- if (name.find('-') != std::string::npos)
- return false;
-
- if (depth > 16)
- return false;
-
- for (transactions_list::const_iterator i = transactions.begin();
- i != transactions.end();
- i++)
- if ((*i)->account != this)
- return false;
-
- for (accounts_map::const_iterator i = accounts.begin();
- i != accounts.end();
- i++)
- if (! (*i).second->valid())
- return false;
-
- return true;
-}
-
-} // namespace ledger