-
Notifications
You must be signed in to change notification settings - Fork 0
Class diagram
Lucy Ciara Herud-Thomassen edited this page Feb 26, 2026
·
4 revisions
@startuml
' ===== HmH Klassediagram – oppgradert for IDATx1005 =====
abstract class User {
- int userId
- String role
- String firstName
- String lastName
- String email
- String passwordHash
+ getUserId() : int
+ getStatus() : Boolean
+ getRole() : String
+ getFirstName() : String
+ getLastName() : String
+ getEmail() : String
+ getPasswordHash() : String
+ validatePassword(password : String) : Boolean
}
class Customer {
- DonationRepository donationLog
- Hashmap<Integer orgNumber, Organization> preferredCauses
+ {inherited} super User
+ getPreferredCauses() : Hashmap<Integer orgNumber, Organization>
+ getDonationLog() : Hashmap<Timestamp, Donation>
+ makeDonation(organization : Organization, amount : BigDecimal, paymentMethod : String) : boolean
}
' ===== record class =====
class Organization {
- int orgNumber
- String name
- boolean trusted
- String websiteURL
- boolean isPreApproved
- String description
+ Organization(orgNumber : int, name : String, trusted : boolean, websiteURL : String, isPreApproved : boolean, description : String)
+ getOrgNumber() : int
+ getName() : String
+ isTrusted() : boolean
+ getWebsiteURL() : String
+ isPreApproved() : boolean
+ getDescription() : String
}
class Donation {
-int donationId
-int userId
-int organizationId
-BigDecimal amount
-Timestamp date
-String paymentMethod
+ Donation(userId : int, organizationId : int, amount : BigDecimal, date : Timestamp, paymentMethod : String)
+ getDonationId() : int
+ getUserId() : int
+ getOrganizationId() : int
+ getAmount() : BigDecimal
+ getDate() : Timestamp
+ getPaymentMethod() : String
}
' ===== Repository/DAO-lag =====
abstract class Repository {
{abstract} # Object content
{abstract} # Repository(content : Object) ' Constructor
{abstract} + getContent() : Object
}
class OrganizationRepository{
- Hashmap<Integer orgNumber, Organization> content
+ OrganizationRepository(content : Hashmap<Integer orgNumber, Organization>)
+ getContent() : Hashmap<Integer orgNumber, Organization>
+ getTrustedOrganizations() : Hashmap<Integer orgNumber, Organization>
}
abstract class DBRepository {
{abstract} # Hashmap<Object, Object> content
{abstract} # DBRepository(content : Hashmap<Object, Object>) ' Constructor
{abstract} + getContent() : Hashmap<Object, Object>
{abstract} + add(input: Object) : boolean
}
class UserRepository {
- Hashmap<String email, User> content
+ UserRepository(content : Hashmap<String email, User>)
+ add(user : User) : boolean
+ login(email : String, password : char[]) : boolean
+ logout() : void
}
class DonationRepository {
- Hashmap<Integer donationId, Donation> content
+ DonationRepository(content : Hashmap<Integer donationId, Donation>)
+ sortByDate() : Hashmap<Integer donationId, Donation>
+ sortByAmount() : Hashmap<Integer donationId, Donation>
+ filterByOrganization(orgNumber : int) : Hashmap<Integer donationId, Donation>
+ add(donation : Donation) : boolean
}
' ===== Wrapper =====
abstract class Wrapper {
{abstract} + import() : Object
}
class OrganizationAPIWrapper {
- String apiEndpoint
+ OrganizationAPIWrapper(String apiEndpoint)
+ import() : Hashmap<orgNumber int, Donation>
+ export(Hashmap<orgNumber int, Donation>) : Boolean
}
abstract class DBWrapper {
- String PATH
# DBWrapper(String path)
{abstract} + import() : Hashmap<Object, Object>
{abstract} + export(Hashmap<Object, Object> entity) : Boolean
}
class UserDBWrapper {
+ UserDBWrapper(String path)
+ import() : Hashmap<String email, User>
+ export(Hashmap<String email, User>) : Boolean
}
class DonationDBWrapper {
+ DonationDBWrapper(String path)
+ import() : Hashmap<orgNumber int, Donation>
+ export(Hashmap<orgNumber int, Donation>) : Boolean
}
' ===== Relationships =====
User <|-- Customer : inherits
OrganizationRepository o-- Organization : aggregation
UserRepository -- UserDBWrapper
DonationRepository -- DonationDBWrapper
OrganizationRepository -- OrganizationAPIWrapper
Donation *-- DonationRepository
Wrapper <|-- DBWrapper
Wrapper <|-- OrganizationAPIWrapper
DBWrapper <|-- UserDBWrapper
DBWrapper <|-- DonationDBWrapper
Repository <|-- DBRepository
DBRepository <|-- UserRepository
DBRepository <|-- DonationRepository
Repository <|-- OrganizationRepository
User o-- UserRepository : contains
Customer --o DonationRepository : contains
@enduml
📘 Project Wiki
Last updated: February 2026
Maintained by (BIDATA) Team 5 in the course IDATT1005