
Untitled
By: a guest on
May 15th, 2012 | syntax:
Erlang | size: 1.31 KB | hits: 25 | expires: Never
-module(db_list).
-include("../include/backend.hrl").
-export([empty/0, insert/2, db_to_list/1, db_size/1]).
-export([lookup/2, lookup_all/3]).
-export([update/2, close/1]).
empty() ->
[].
insert(Account, []) ->
[Account];
insert(Account, DBRef) ->
Lookup = lookup(Account#account.no, DBRef),
case Lookup of
{error, _Msg} -> DBRef ++ [Account];
_Else -> {error, exists}
end.
db_to_list(DBRef) ->
DBRef.
db_size(DBRef) ->
length(DBRef).
lookup(AccountNumber, DBRef) ->
F = fun(X) ->
case X#account.no of
AccountNumber -> true;
_Else -> false
end
end,
DBRef2 = lists:filter(F, DBRef),
case DBRef2 of
[] -> {error, instance};
[Account] -> Account
end.
lookup_all(AccountField, Key, DBRef) ->
F = fun(X) ->
Value = element(AccountField, X),
case Value of
Key -> true;
_Else -> false
end
end,
lists:filter(F, DBRef).
update(Account, DBRef) ->
F = fun(X) ->
AccountNumber = Account#account.no,
case X#account.no of
AccountNumber -> Account;
_Else -> X
end
end,
lists:map(F, DBRef).
close(_DBRef) ->
ok.