publisherVersion.save.add.puml 3.77 KB
@startuml
actor Contributor
participant publisherVersion.xhtml
participant PublisherVersionView
participant PublisherServiceDefault as PublisherServiceDefault << PublisherService >>
participant SharedServiceDefault as SharedServiceDefault << SharedService >>
participant publisher
participant publisherVersions as publisherVersions << Set<PublisherVersion> >>
participant publisherVersion
participant PublisherVersionRepository
participant PublisherRepository

Contributor -> publisherVersion.xhtml : Save
activate publisherVersion.xhtml
publisherVersion.xhtml -> PublisherVersionView: save()
activate PublisherVersionView

alt newPublisher
PublisherVersionView -> PublisherVersionView: add()
activate PublisherVersionView
PublisherVersionView -> PublisherVersionView: getNewPublisherVersion()
activate PublisherVersionView
create publisherVersion
PublisherVersionView -> publisherVersion: new
PublisherVersionView -> publisherVersion: setValues(publisherAddressCountry, addressLocality, addressRegion, email, publisherHistory, publisherName, postalCode, postOfficeBoxNumber, ...)
activate publisherVersion
publisherVersion -> PublisherVersionView
deactivate publisherVersion
PublisherVersionView -> PublisherVersionView: publisherVersion

deactivate PublisherVersionView
PublisherVersionView -> PublisherServiceDefault: addNewPublisher(publisherVersion)
activate PublisherServiceDefault
create publisher
PublisherServiceDefault -> publisher: new
create publisherVersions
PublisherServiceDefault -> publisherVersions: new
PublisherServiceDefault -> publisherVersions: add(publisherVersion)
activate publisherVersions
publisherVersions -> PublisherServiceDefault
deactivate publisherVersions
PublisherServiceDefault -> publisher: setVersions(publisherVersions)
activate publisher
publisher -> PublisherServiceDefault
deactivate publisher
PublisherServiceDefault -> publisherVersion: setPublisher(publisher)
activate publisherVersion
publisherVersion -> PublisherServiceDefault
deactivate publisherVersion
PublisherServiceDefault -> SharedServiceDefault: getCurrentUser()
activate SharedServiceDefault
SharedServiceDefault -> PublisherServiceDefault: currentUser
deactivate SharedServiceDefault
PublisherServiceDefault -> publisherVersion:setPublisherVersionCreator(currentUser)
activate publisherVersion
publisherVersion -> PublisherServiceDefault
deactivate publisherVersion
PublisherServiceDefault -> publisherVersion:setPublisherVersionDatetime(currentDatetime)
activate publisherVersion
publisherVersion -> PublisherServiceDefault
deactivate publisherVersion
PublisherServiceDefault -> PublisherServiceDefault:savePublisherVersion(publisherVersion)
activate PublisherServiceDefault

PublisherServiceDefault -> PublisherVersionRepository:save(publisherVersion)
activate PublisherVersionRepository
PublisherVersionRepository -> PublisherServiceDefault
deactivate PublisherVersionRepository


PublisherServiceDefault -> PublisherServiceDefault
deactivate PublisherServiceDefault
PublisherServiceDefault -> PublisherServiceDefault:savePublisher(publisher)
activate PublisherServiceDefault

PublisherServiceDefault -> PublisherRepository:save(publisher)
activate PublisherRepository
PublisherRepository -> PublisherServiceDefault
deactivate PublisherRepository

PublisherServiceDefault -> PublisherServiceDefault
deactivate PublisherServiceDefault

PublisherServiceDefault -> PublisherVersionView: publisherVersion
deactivate PublisherServiceDefault
PublisherVersionView -> PublisherVersionView

deactivate PublisherVersionView

else
PublisherVersionView -> PublisherVersionView: update()
activate PublisherVersionView
PublisherVersionView -> PublisherVersionView
deactivate PublisherVersionView
end

PublisherVersionView -> publisherVersion.xhtml
deactivate PublisherVersionView
publisherVersion.xhtml -> Contributor
deactivate publisherVersion.xhtml

@enduml