110 lines
2.9 KiB
Plaintext
110 lines
2.9 KiB
Plaintext
@startuml
|
|
|
|
package model <<Frame>> {
|
|
class Subscription {
|
|
<<create>> Subscription(String url, String title)
|
|
int getID()
|
|
String getURL()
|
|
long getLastActionTimestamp()
|
|
String getTitle()
|
|
}
|
|
|
|
class SubscriptionAction {
|
|
<<create>> SubscriptionAction(int userID, int subscriptionID)
|
|
int getID()
|
|
int getUserID()
|
|
int getSubscriptionID()
|
|
long getTimestamp()
|
|
boolean getAdded()
|
|
}
|
|
|
|
class Episode {
|
|
<<create>> Episode(int subscriptionID, int id, String url, String title, String thumbnailURL, int total)
|
|
int getSubscriptionID()
|
|
int getID()
|
|
int getGUID()
|
|
String getURL()
|
|
String getTitle()
|
|
int getTotal()
|
|
}
|
|
|
|
enum Action {
|
|
Download
|
|
Play
|
|
Delete
|
|
New
|
|
Flattr
|
|
String getJsonProperty()
|
|
}
|
|
|
|
class EpisodeAction {
|
|
<<create>> EpisodeAction(Action action, LocalDateTime timestamp, int started, int position)
|
|
int getEpisodeID()
|
|
Action getAction()
|
|
long getTimestamp()
|
|
int getStarted()
|
|
int getPosition()
|
|
void setEpisodeID()
|
|
EpisodeActionPost getEpisodeActionPost(String podcastURL, String episodeURL)
|
|
}
|
|
|
|
interface UserDetails {
|
|
String getUsername()
|
|
String getPassword()
|
|
Collection<Authority> getAuthorities()
|
|
boolean isAccountExpired()
|
|
boolean isAccountLocked()
|
|
boolean isCredentialsNonExpired()
|
|
boolean isEnabled()
|
|
}
|
|
note left
|
|
Aus org.springframework.security.core.userdetails.
|
|
Wird für die Schnittstelle UserDetailsManager benötigt.
|
|
Stellt wichtige Informationen eines Users bereit.
|
|
Diese werden nur indirekt von Spring Security
|
|
benutzt, indem sie vorher in Authentication Objekten
|
|
gekapselt werden.
|
|
end note
|
|
|
|
class User {
|
|
--
|
|
<<create>> User(String username, String password)
|
|
int getID()
|
|
String getSessionToken()
|
|
boolean getEmailIsValidated()
|
|
.. interface methods ..
|
|
String getUsername()
|
|
String getPassword()
|
|
Collection<Authority> getAuthorities()
|
|
boolean isAccountExpired()
|
|
boolean isAccountLocked()
|
|
boolean isCredentialsNonExpired()
|
|
boolean isEnabled()
|
|
}
|
|
|
|
interface GrantedAuthority {
|
|
String getAuthority()
|
|
}
|
|
note right
|
|
Aus org.springframework.security.core.
|
|
Wird für die Schnittstelle UserDetails benötigt.
|
|
Repräsentiert eine Autorisierung, die einem
|
|
Authentication Objekt gewährt wird.
|
|
end note
|
|
|
|
class Authority {
|
|
<<create>> Authority()
|
|
String getAuthority()
|
|
}
|
|
}
|
|
|
|
Subscription <. SubscriptionAction: ID
|
|
Action <-- EpisodeAction
|
|
EpisodeAction .> Episode: ID
|
|
UserDetails <|.. User: <<realize>>
|
|
User -> Authority
|
|
GrantedAuthority <|.. Authority: <<realize>>
|
|
|
|
@enduml
|
|
|