Newer
Older
task-bldg / class.pu
@haya4 haya4 on 16 Jul 2022 2 KB CityIndex
@startuml

database "h2" as db {
	entity city {
		citycode : String
		cityname : String
		path : String
		lng : Double
		lat : Double
	}
}
note bottom of db : spring.datasource.url=jdbc:h2:./taskdb\nspring.jpa.hibernate.ddl-auto=update

class SecurityConfig <<Configuration>> {
	- userDetailsService : UserDetailsService
	+ passwordEncoder() : PasswordEncoder
	+ configure(WebSecurity)
	configure(HttpSecurity)
	configure(AuthenticationManagerBuilder)
}

class UserDetailsServiceImpl <<Service>> {
  - userRepository : SiteUserRepository
  + loadUserByUsername(username) : UserDetails
  + createUserDetails(:SiteUser) : User
}

class SecurityController <<Controller>> {
  - userRepository : userRepository
  - passwordEncoder : PasswordEncoder
  + success()
  + showList(loginUser, model)
}

class SiteUser <<Entity>> {
  + id : Long
  - username : String
  - email : String@Email
  - admin : boolean
  - role : String
  - active : boolean
}

class UniqueLoginValidator<UniqueLogin> <<ConstraintValidator>> {
  - userRepository : SiteUserRepository
  + isValid(String, ConstraintValidatorContext) : boolean
}

class UniqueLogin <<Constraint>> {
  message() : String
  groups() : Class<?>[]
  payload() : Class<? extends Payload>[]
}

interface SiteUserRepository <<JpaRepository>> {
	findByUsername(String)
	existsByUsername(String)
}
SecurityConfig ..> UserDetailsServiceImpl
UserDetailsServiceImpl ..> SiteUserRepository
SecurityController ..> SiteUserRepository
UniqueLoginValidator ..> SiteUserRepository
UniqueLogin .. UniqueLoginValidator
SiteUserRepository <|-- SiteUser

class City <<Entity>> {
  + id : Long
  - citycode : String
  - cityname : String
  - path : String
  - lng : Double
  - lat : Double
}
City .. city

class CityIndex {
	- site : String
	- list : List<City>[]
}
CityIndex *-- City

interface CityRepository <<Repository>> {
	findByCitycode(String)
	deleteByCitycode(String)
}
CityRepository <|-- City

class CityController <<Controller>> {
  - repository : CityRepository
  + showList(model)
  + addCity(city)
  + process(city, result)
  + editCity(id, model)
  + deleteCity(id)
}
CityController ..> CityRepository

class CityIndexController <<Controller>> {
  - repository : CityIndexRepository
  + show(model)
  + addCity(city)
  + process(city, result)
  + deleteCity(id)
}
CityIndexController ..> CityIndexRepository

interface CommandLineRunner

class DataLoader <<Component>> {
  - repository : CityRepository
  + run()
}
DataLoader ..> CityRepository

CommandLineRunner <|-- DataLoader

@enduml