module registration {

interface Registration {
   boolean verifyPassword(in string password);
   string getEmailAddress();
   string getUser();
   long adjustAccount(in double amount);
   double getBalance();
};

interface RegistrationPK {
   attribute string theuser;
};

enum LoginError {INVALIDUSER, WRONGPASSWORD, TIMEOUT};

exception CreateException {
};

exception FinderException {
};

typedef sequence<Registration> IDLArrayList;

interface ReturnResults  {
  void updateResults(in IDLArrayList results) raises (FinderException);
};

interface RegistrationHome {
  RegistrationPK create(in string theuser, in string password, 
		in string emailaddress, in string creditcard) 
		raises (CreateException);
  Registration findByPrimaryKey(in RegistrationPK theuser) 
		raises (FinderException);
  void findLowCreditAccounts(in ReturnResults rr) 
		raises (FinderException);
  any customSearch(in any searchfield, out long count);
};

};
