--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+
+<ClassDiagram name="addressbook-lib">
+ <ClassDiagramComponents>
+ <Class name="LoadedAddressbookEvent" package="org.mxchange.addressbook.events.addressbook" visibility="public" xPosition="20.0" yPosition="383.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ <Field name="addressbook" type="Addressbook" visibility="private" isFinal="true"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="Addressbook" name="addressbook"/>
+ </Constructor>
+ </Constructors>
+ <Methods>
+ <Method name="getAddressbook" returnType="Addressbook" visibility="public"/>
+ </Methods>
+ </Class>
+ <Class name="EndedAddressbookSharingEvent" package="org.mxchange.addressbook.events.sharing" visibility="public" xPosition="1090.0" yPosition="13.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ <Field name="shareableAddressbook" type="ShareableAddressbook" visibility="private" isFinal="true"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="ShareableAddressbook" name="share"/>
+ </Constructor>
+ </Constructors>
+ <Methods>
+ <Method name="getShareableAddressbook" returnType="ShareableAddressbook" visibility="public"/>
+ <Method name="getSharingType" returnType="SharingType" visibility="public"/>
+ </Methods>
+ </Class>
+ <Class name="StartedAddressbookSharingEvent" package="org.mxchange.addressbook.events.sharing" visibility="public" xPosition="1914.0" yPosition="966.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ <Field name="shareableAddressbook" type="ShareableAddressbook" visibility="private" isFinal="true"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="ShareableAddressbook" name="share"/>
+ </Constructor>
+ </Constructors>
+ <Methods>
+ <Method name="getShareableAddressbook" returnType="ShareableAddressbook" visibility="public"/>
+ <Method name="getSharingType" returnType="SharingType" visibility="public"/>
+ </Methods>
+ </Class>
+ <Class name="AddressbookNameAlreadyUsedException" package="org.mxchange.addressbook.exceptions" visibility="public" xPosition="2359.0" yPosition="576.0">
+ <Fields/>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="Addressbook" name="addressbook"/>
+ </Constructor>
+ </Constructors>
+ <Methods/>
+ </Class>
+ <Class name="AddressbookNotFoundException" package="org.mxchange.addressbook.exceptions" visibility="public" xPosition="2444.0" yPosition="699.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="Long" name="addressbookId"/>
+ </Constructor>
+ </Constructors>
+ <Methods/>
+ </Class>
+ <Class name="UserAlreadySharingAddressbookException" package="org.mxchange.addressbook.exceptions" visibility="public" xPosition="20.0" yPosition="606.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="Addressbook" name="addressbook"/>
+ <Argument type="User" name="sharee"/>
+ </Constructor>
+ </Constructors>
+ <Methods/>
+ </Class>
+ <Class name="UserAddressbookEntry" package="org.mxchange.addressbook.model.addressbook.entry" visibility="public" xPosition="1747.0" yPosition="1173.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ <Field name="addressbookEntryBusinessContact" type="BusinessContact" visibility="private"/>
+ <Field name="addressbookEntryCreated" type="Calendar" visibility="private"/>
+ <Field name="addressbookEntryId" type="Long" visibility="private"/>
+ <Field name="addressbookEntryPrivateContact" type="Contact" visibility="private"/>
+ <Field name="addressbookId" type="Addressbook" visibility="private"/>
+ </Fields>
+ <Constructors/>
+ <Methods>
+ <Method name="compareTo" returnType="int" visibility="public">
+ <Argument type="AddressbookEntry" name="addressbookEntry"/>
+ </Method>
+ <Method name="equals" returnType="boolean" visibility="public">
+ <Argument type="Object" name="object"/>
+ </Method>
+ <Method name="getAddressbookEntryBusinessContact" returnType="BusinessContact" visibility="public"/>
+ <Method name="setAddressbookEntryBusinessContact" returnType="void" visibility="public">
+ <Argument type="BusinessContact" name="addressbookEntryBusinessContact"/>
+ </Method>
+ <Method name="getAddressbookEntryCreated" returnType="Calendar" visibility="public"/>
+ <Method name="setAddressbookEntryCreated" returnType="void" visibility="public">
+ <Argument type="Calendar" name="addressbookEntryCreated"/>
+ </Method>
+ <Method name="getAddressbookEntryId" returnType="Long" visibility="public"/>
+ <Method name="setAddressbookEntryId" returnType="void" visibility="public">
+ <Argument type="Long" name="addressbookEntryId"/>
+ </Method>
+ <Method name="getAddressbookEntryPrivateContact" returnType="Contact" visibility="public"/>
+ <Method name="setAddressbookEntryPrivateContact" returnType="void" visibility="public">
+ <Argument type="Contact" name="addressbookEntryPrivateContact"/>
+ </Method>
+ <Method name="getAddressbookId" returnType="Addressbook" visibility="public"/>
+ <Method name="setAddressbookId" returnType="void" visibility="public">
+ <Argument type="Addressbook" name="addressbookId"/>
+ </Method>
+ <Method name="hashCode" returnType="int" visibility="public"/>
+ </Methods>
+ </Class>
+ <Class name="AddressbookShare" package="org.mxchange.addressbook.model.addressbook.shared" visibility="public" xPosition="1799.0" yPosition="27.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ <Field name="shareId" type="Long" visibility="private"/>
+ <Field name="shareAddressbook" type="Addressbook" visibility="private"/>
+ <Field name="shareUserOwner" type="User" visibility="private"/>
+ <Field name="shareUserSharee" type="User" visibility="private"/>
+ <Field name="shareCreated" type="Calendar" visibility="private"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="protected"/>
+ <Constructor visibility="public">
+ <Argument type="Addressbook" name="addressbook"/>
+ <Argument type="User" name="sharee"/>
+ </Constructor>
+ </Constructors>
+ <Methods>
+ <Method name="compareTo" returnType="int" visibility="public">
+ <Argument type="ShareableAddressbook" name="share"/>
+ </Method>
+ <Method name="equals" returnType="boolean" visibility="public">
+ <Argument type="Object" name="object"/>
+ </Method>
+ <Method name="getShareAddressbook" returnType="Addressbook" visibility="public"/>
+ <Method name="setShareAddressbook" returnType="void" visibility="public">
+ <Argument type="Addressbook" name="shareAddressbook"/>
+ </Method>
+ <Method name="getShareCreated" returnType="Calendar" visibility="public"/>
+ <Method name="setShareCreated" returnType="void" visibility="public">
+ <Argument type="Calendar" name="shareCreated"/>
+ </Method>
+ <Method name="getShareId" returnType="Long" visibility="public"/>
+ <Method name="setShareId" returnType="void" visibility="public">
+ <Argument type="Long" name="shareId"/>
+ </Method>
+ <Method name="getShareUserOwner" returnType="User" visibility="public"/>
+ <Method name="setShareUserOwner" returnType="void" visibility="public">
+ <Argument type="User" name="shareUserOwner"/>
+ </Method>
+ <Method name="getShareUserSharee" returnType="User" visibility="public"/>
+ <Method name="setShareUserSharee" returnType="void" visibility="public">
+ <Argument type="User" name="shareUserSharee"/>
+ </Method>
+ <Method name="hashCode" returnType="int" visibility="public"/>
+ </Methods>
+ </Class>
+ <Class name="UserAddressbook" package="org.mxchange.addressbook.model.addressbook" visibility="public" xPosition="20.0" yPosition="820.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ <Field name="addressbookCreated" type="Calendar" visibility="private"/>
+ <Field name="addressbookId" type="Long" visibility="private"/>
+ <Field name="addressbookName" type="String" visibility="private"/>
+ <Field name="addressbookStatus" type="AddressbokStatus" visibility="private"/>
+ <Field name="addressbookUser" type="User" visibility="private"/>
+ <Field name="addressbookLastLocked" type="Calendar" visibility="private"/>
+ <Field name="addressbookLastLockedReason" type="String" visibility="private"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="String" name="addressbookName"/>
+ <Argument type="User" name="addressbookUser"/>
+ <Argument type="Calendar" name="addressbookCreated"/>
+ </Constructor>
+ <Constructor visibility="protected"/>
+ </Constructors>
+ <Methods>
+ <Method name="getAddressbookCreated" returnType="Calendar" visibility="public"/>
+ <Method name="setAddressbookCreated" returnType="void" visibility="public">
+ <Argument type="Calendar" name="addressbookCreated"/>
+ </Method>
+ <Method name="getAddressbookId" returnType="Long" visibility="public"/>
+ <Method name="setAddressbookId" returnType="void" visibility="public">
+ <Argument type="Long" name="addressbookId"/>
+ </Method>
+ <Method name="getAddressbookLastLocked" returnType="Calendar" visibility="public"/>
+ <Method name="setAddressbookLastLocked" returnType="void" visibility="public">
+ <Argument type="Calendar" name="addressbookLastLocked"/>
+ </Method>
+ <Method name="getAddressbookLastLockedReason" returnType="String" visibility="public"/>
+ <Method name="setAddressbookLastLockedReason" returnType="void" visibility="public">
+ <Argument type="String" name="addressbookLastLockedReason"/>
+ </Method>
+ <Method name="getAddressbookName" returnType="String" visibility="public"/>
+ <Method name="setAddressbookName" returnType="void" visibility="public">
+ <Argument type="String" name="addressbookName"/>
+ </Method>
+ <Method name="getAddressbookStatus" returnType="AddressbokStatus" visibility="public"/>
+ <Method name="setAddressbookStatus" returnType="void" visibility="public">
+ <Argument type="AddressbokStatus" name="addressbookStatus"/>
+ </Method>
+ <Method name="getAddressbookUser" returnType="User" visibility="public"/>
+ <Method name="setAddressbookUser" returnType="void" visibility="public">
+ <Argument type="User" name="addressbookUser"/>
+ </Method>
+ <Method name="compareTo" returnType="int" visibility="public">
+ <Argument type="Addressbook" name="addressbook"/>
+ </Method>
+ <Method name="equals" returnType="boolean" visibility="public">
+ <Argument type="Object" name="object"/>
+ </Method>
+ <Method name="hashCode" returnType="int" visibility="public"/>
+ </Methods>
+ </Class>
+ <Class name="AddressbookIdValidator" package="org.mxchange.addressbook.validator.addressbook" visibility="public" xPosition="2334.0" yPosition="394.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ <Field name="addressbookBean" type="AddressbookSessionBeanRemote" visibility="private"/>
+ <Field name="loadedEvent" type="Event<AddressbookLoadedEvent>" visibility="private"/>
+ </Fields>
+ <Constructors/>
+ <Methods>
+ <Method name="validate" returnType="void" visibility="public">
+ <Argument type="FacesContext" name="context"/>
+ <Argument type="UIComponent" name="component"/>
+ <Argument type="Object" name="value"/>
+ </Method>
+ </Methods>
+ </Class>
+ <Class name="UserProfileVisibilityValidator" package="org.mxchange.addressbook.validator.booleans" visibility="public" xPosition="2334.0" yPosition="1428.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ </Fields>
+ <Constructors/>
+ <Methods>
+ <Method name="validate" returnType="void" visibility="public">
+ <Argument type="FacesContext" name="context"/>
+ <Argument type="UIComponent" name="component"/>
+ <Argument type="Object" name="value"/>
+ </Method>
+ </Methods>
+ </Class>
+ <Class name="AddressbookNameValidator" package="org.mxchange.addressbook.validator.names" visibility="public" xPosition="2334.0" yPosition="845.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ </Fields>
+ <Constructors/>
+ <Methods>
+ <Method name="validate" returnType="void" visibility="public">
+ <Argument type="FacesContext" name="context"/>
+ <Argument type="UIComponent" name="component"/>
+ <Argument type="Object" name="value"/>
+ </Method>
+ </Methods>
+ </Class>
+ <Class name="UserIdValidator" package="org.mxchange.addressbook.validator.user" visibility="public" xPosition="2334.0" yPosition="995.0">
+ <Fields>
+ <Field name="cachedStatus" type="Set<Long>" visibility="private" isStatic="true" isFinal="true"/>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ <Field name="userBean" type="UserSessionBeanRemote" visibility="private"/>
+ </Fields>
+ <Constructors/>
+ <Methods>
+ <Method name="afterRegistrationEvent" returnType="void" visibility="public">
+ <Argument type="UserRegisteredEvent" name="event"/>
+ </Method>
+ <Method name="validate" returnType="void" visibility="public">
+ <Argument type="FacesContext" name="context"/>
+ <Argument type="UIComponent" name="component"/>
+ <Argument type="Object" name="value"/>
+ </Method>
+ </Methods>
+ </Class>
+ <Interface name="AddressbookLoadedEvent" package="org.mxchange.addressbook.events.addressbook" visibility="public" xPosition="287.0" yPosition="223.0">
+ <Methods>
+ <Method name="getAddressbook" returnType="Addressbook" visibility="public"/>
+ </Methods>
+ </Interface>
+ <Interface name="AddressbookSharingEvent" package="org.mxchange.addressbook.events.sharing" visibility="public" xPosition="1177.0" yPosition="1173.0">
+ <Methods>
+ <Method name="getShareableAddressbook" returnType="ShareableAddressbook" visibility="package"/>
+ <Method name="getSharingType" returnType="SharingType" visibility="package"/>
+ </Methods>
+ </Interface>
+ <Interface name="Addressbook" package="org.mxchange.addressbook.model.addressbook" visibility="public" xPosition="561.0" yPosition="351.0">
+ <Methods>
+ <Method name="getAddressbookId" returnType="Long" visibility="package"/>
+ <Method name="setAddressbookId" returnType="void" visibility="package">
+ <Argument type="Long" name="addressbookId"/>
+ </Method>
+ <Method name="getAddressbookCreated" returnType="Calendar" visibility="package"/>
+ <Method name="setAddressbookCreated" returnType="void" visibility="package">
+ <Argument type="Calendar" name="addressbookCreated"/>
+ </Method>
+ <Method name="getAddressbookName" returnType="String" visibility="package"/>
+ <Method name="setAddressbookName" returnType="void" visibility="package">
+ <Argument type="String" name="addressbookName"/>
+ </Method>
+ <Method name="getAddressbookStatus" returnType="AddressbokStatus" visibility="package"/>
+ <Method name="setAddressbookStatus" returnType="void" visibility="package">
+ <Argument type="AddressbokStatus" name="addressbookStatus"/>
+ </Method>
+ <Method name="getAddressbookUser" returnType="User" visibility="package"/>
+ <Method name="setAddressbookUser" returnType="void" visibility="package">
+ <Argument type="User" name="addressbookUser"/>
+ </Method>
+ <Method name="getAddressbookLastLocked" returnType="Calendar" visibility="package"/>
+ <Method name="setAddressbookLastLocked" returnType="void" visibility="package">
+ <Argument type="Calendar" name="addressbookLastLocked"/>
+ </Method>
+ <Method name="getAddressbookLastLockedReason" returnType="String" visibility="package"/>
+ <Method name="setAddressbookLastLockedReason" returnType="void" visibility="package">
+ <Argument type="String" name="addressbookLastLockedReason"/>
+ </Method>
+ <Method name="equals" returnType="boolean" visibility="package">
+ <Argument type="Object" name="object"/>
+ </Method>
+ <Method name="hashCode" returnType="int" visibility="package"/>
+ </Methods>
+ </Interface>
+ <Interface name="AddressbookSessionBeanRemote" package="org.mxchange.addressbook.model.addressbook" visibility="public" xPosition="2306.0" yPosition="13.0">
+ <Methods>
+ <Method name="allUsersNotSharing" returnType="List<User>" visibility="package">
+ <Argument type="User" name="user"/>
+ <Argument type="Addressbook" name="addressbook"/>
+ </Method>
+ <Method name="countAllUserSharedAddressbooks" returnType="Integer" visibility="package">
+ <Argument type="User" name="user"/>
+ </Method>
+ <Method name="getAddressbookById" returnType="Addressbook" visibility="public">
+ <Argument type="Long" name="addressbookId"/>
+ </Method>
+ <Method name="allEntries" returnType="List<AddressbookEntry>" visibility="package">
+ <Argument type="Addressbook" name="addressbook"/>
+ </Method>
+ <Method name="getUsersAddressbookList" returnType="List<Addressbook>" visibility="package">
+ <Argument type="User" name="loggedInUser"/>
+ </Method>
+ <Method name="createAddressbook" returnType="Addressbook" visibility="package">
+ <Argument type="Addressbook" name="addressbook"/>
+ </Method>
+ <Method name="isAddressbookIdUsed" returnType="boolean" visibility="package">
+ <Argument type="Long" name="addressbookId"/>
+ </Method>
+ <Method name="isAddressbookNameUsed" returnType="boolean" visibility="package">
+ <Argument type="Addressbook" name="addressbook"/>
+ </Method>
+ </Methods>
+ </Interface>
+ <Interface name="AddressbookEntry" package="org.mxchange.addressbook.model.addressbook.entry" visibility="public" xPosition="1014.0" yPosition="1428.0">
+ <Methods>
+ <Method name="getAddressbookEntryId" returnType="Long" visibility="package"/>
+ <Method name="setAddressbookEntryId" returnType="void" visibility="package">
+ <Argument type="Long" name="addressbookEntryId"/>
+ </Method>
+ <Method name="getAddressbookEntryBusinessContact" returnType="BusinessContact" visibility="package"/>
+ <Method name="setAddressbookEntryBusinessContact" returnType="void" visibility="package">
+ <Argument type="BusinessContact" name="addressbookEntryBusinessContact"/>
+ </Method>
+ <Method name="getAddressbookEntryCreated" returnType="Calendar" visibility="package"/>
+ <Method name="setAddressbookEntryCreated" returnType="void" visibility="package">
+ <Argument type="Calendar" name="addressbookEntryCreated"/>
+ </Method>
+ <Method name="getAddressbookEntryPrivateContact" returnType="Contact" visibility="package"/>
+ <Method name="setAddressbookEntryPrivateContact" returnType="void" visibility="package">
+ <Argument type="Contact" name="addressbookEntryPrivateContact"/>
+ </Method>
+ <Method name="getAddressbookId" returnType="Addressbook" visibility="package"/>
+ <Method name="setAddressbookId" returnType="void" visibility="package">
+ <Argument type="Addressbook" name="addressbookId"/>
+ </Method>
+ <Method name="equals" returnType="boolean" visibility="package">
+ <Argument type="Object" name="object"/>
+ </Method>
+ <Method name="hashCode" returnType="int" visibility="package"/>
+ </Methods>
+ </Interface>
+ <Interface name="ShareableAddressbook" package="org.mxchange.addressbook.model.addressbook.shared" visibility="public" xPosition="1428.0" yPosition="585.0">
+ <Methods>
+ <Method name="getShareAddressbook" returnType="Addressbook" visibility="package"/>
+ <Method name="setShareAddressbook" returnType="void" visibility="package">
+ <Argument type="Addressbook" name="shareAddressbook"/>
+ </Method>
+ <Method name="getShareId" returnType="Long" visibility="package"/>
+ <Method name="setShareId" returnType="void" visibility="package">
+ <Argument type="Long" name="shareId"/>
+ </Method>
+ <Method name="getShareUserOwner" returnType="User" visibility="package"/>
+ <Method name="setShareUserOwner" returnType="void" visibility="package">
+ <Argument type="User" name="shareUserOwner"/>
+ </Method>
+ <Method name="getShareUserSharee" returnType="User" visibility="package"/>
+ <Method name="setShareUserSharee" returnType="void" visibility="package">
+ <Argument type="User" name="shareUserSharer"/>
+ </Method>
+ <Method name="getShareCreated" returnType="Calendar" visibility="package"/>
+ <Method name="setShareCreated" returnType="void" visibility="package">
+ <Argument type="Calendar" name="shareCreated"/>
+ </Method>
+ <Method name="equals" returnType="boolean" visibility="package">
+ <Argument type="Object" name="object"/>
+ </Method>
+ <Method name="hashCode" returnType="int" visibility="package"/>
+ </Methods>
+ </Interface>
+ <Interface name="SharedAddressbooksSessionBeanRemote" package="org.mxchange.addressbook.model.shared" visibility="public" xPosition="656.0" yPosition="1287.0">
+ <Methods>
+ <Method name="allSharedAddressbooks" returnType="List<ShareableAddressbook>" visibility="package">
+ <Argument type="User" name="user"/>
+ </Method>
+ <Method name="startSharing" returnType="ShareableAddressbook" visibility="package">
+ <Argument type="User" name="sharee"/>
+ <Argument type="Addressbook" name="addressbook"/>
+ </Method>
+ <Method name="isUserSharingAddressbooks" returnType="Boolean" visibility="package">
+ <Argument type="User" name="user"/>
+ </Method>
+ </Methods>
+ </Interface>
+ <Interface name="AddressbookCountrySingletonBeanRemote" package="org.mxchange.jcountry.data" visibility="public" xPosition="2494.0" yPosition="1306.0">
+ <Methods>
+ <Method name="allCountries" returnType="List<Country>" visibility="package"/>
+ </Methods>
+ </Interface>
+ <Interface name="AddressbookSmsProviderSingletonBeanRemote" package="org.mxchange.jphone.phonenumbers.smsprovider" visibility="public" xPosition="2464.0" yPosition="1196.0">
+ <Methods>
+ <Method name="allSmsProvider" returnType="List<SmsProvider>" visibility="package"/>
+ </Methods>
+ </Interface>
+ <Enum name="SharingType" package="org.mxchange.addressbook.events.sharing.type" visibility="public" xPosition="1079.0" yPosition="885.0">
+ <Literals>
+ <Literal name="STARTED"/>
+ <Literal name="ENDED"/>
+ </Literals>
+ </Enum>
+ <Enum name="AddressbokStatus" package="org.mxchange.addressbook.model.addressbook.status" visibility="public" xPosition="686.0" yPosition="870.0">
+ <Literals>
+ <Literal name="UNLOCKED"/>
+ <Literal name="LOCKED"/>
+ </Literals>
+ </Enum>
+ </ClassDiagramComponents>
+ <ClassDiagramRelations>
+ <ImplementsRelation name="<<implements>>" source="org.mxchange.addressbook.model.addressbook.UserAddressbook" target="org.mxchange.addressbook.model.addressbook.Addressbook"/>
+ <HasRelation name="shareableAddressbook" source="org.mxchange.addressbook.events.sharing.StartedAddressbookSharingEvent" target="org.mxchange.addressbook.model.addressbook.shared.ShareableAddressbook" type="Aggregation" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <HasRelation name="addressbookBean" source="org.mxchange.addressbook.validator.addressbook.AddressbookIdValidator" target="org.mxchange.addressbook.model.addressbook.AddressbookSessionBeanRemote" type="Aggregation" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.addressbook.model.addressbook.entry.UserAddressbookEntry" target="org.mxchange.addressbook.model.addressbook.entry.AddressbookEntry" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.addressbook.model.addressbook.AddressbookSessionBeanRemote" target="org.mxchange.addressbook.model.addressbook.entry.AddressbookEntry" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.addressbook.model.addressbook.Addressbook" target="org.mxchange.addressbook.model.addressbook.status.AddressbokStatus" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.addressbook.model.addressbook.AddressbookSessionBeanRemote" target="org.mxchange.addressbook.model.addressbook.Addressbook" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.addressbook.events.sharing.EndedAddressbookSharingEvent" target="org.mxchange.addressbook.events.sharing.type.SharingType" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.addressbook.events.sharing.AddressbookSharingEvent" target="org.mxchange.addressbook.model.addressbook.shared.ShareableAddressbook" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <HasRelation name="addressbookId" source="org.mxchange.addressbook.model.addressbook.entry.UserAddressbookEntry" target="org.mxchange.addressbook.model.addressbook.Addressbook" type="Aggregation" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.addressbook.model.addressbook.shared.AddressbookShare" target="org.mxchange.addressbook.model.addressbook.shared.ShareableAddressbook" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.addressbook.model.addressbook.UserAddressbook" target="org.mxchange.addressbook.model.addressbook.Addressbook" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <HasRelation name="addressbookStatus" source="org.mxchange.addressbook.model.addressbook.UserAddressbook" target="org.mxchange.addressbook.model.addressbook.status.AddressbokStatus" type="Aggregation" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <HasRelation name="addressbook" source="org.mxchange.addressbook.events.addressbook.LoadedAddressbookEvent" target="org.mxchange.addressbook.model.addressbook.Addressbook" type="Aggregation" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <ImplementsRelation name="<<implements>>" source="org.mxchange.addressbook.model.addressbook.shared.AddressbookShare" target="org.mxchange.addressbook.model.addressbook.shared.ShareableAddressbook"/>
+ <UseRelation source="org.mxchange.addressbook.model.addressbook.entry.UserAddressbookEntry" target="org.mxchange.addressbook.model.addressbook.Addressbook" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.addressbook.events.sharing.EndedAddressbookSharingEvent" target="org.mxchange.addressbook.model.addressbook.shared.ShareableAddressbook" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.addressbook.model.shared.SharedAddressbooksSessionBeanRemote" target="org.mxchange.addressbook.model.addressbook.shared.ShareableAddressbook" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.addressbook.model.addressbook.entry.AddressbookEntry" target="org.mxchange.addressbook.model.addressbook.Addressbook" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <ImplementsRelation name="<<implements>>" source="org.mxchange.addressbook.events.sharing.EndedAddressbookSharingEvent" target="org.mxchange.addressbook.events.sharing.AddressbookSharingEvent"/>
+ <UseRelation source="org.mxchange.addressbook.events.sharing.StartedAddressbookSharingEvent" target="org.mxchange.addressbook.model.addressbook.shared.ShareableAddressbook" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <ImplementsRelation name="<<implements>>" source="org.mxchange.addressbook.events.sharing.StartedAddressbookSharingEvent" target="org.mxchange.addressbook.events.sharing.AddressbookSharingEvent"/>
+ <UseRelation source="org.mxchange.addressbook.events.addressbook.LoadedAddressbookEvent" target="org.mxchange.addressbook.model.addressbook.Addressbook" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.addressbook.events.addressbook.AddressbookLoadedEvent" target="org.mxchange.addressbook.model.addressbook.Addressbook" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <HasRelation name="loadedEvent" source="org.mxchange.addressbook.validator.addressbook.AddressbookIdValidator" target="org.mxchange.addressbook.events.addressbook.AddressbookLoadedEvent" type="Aggregation" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <HasRelation name="shareableAddressbook" source="org.mxchange.addressbook.events.sharing.EndedAddressbookSharingEvent" target="org.mxchange.addressbook.model.addressbook.shared.ShareableAddressbook" type="Aggregation" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.addressbook.model.addressbook.UserAddressbook" target="org.mxchange.addressbook.model.addressbook.status.AddressbokStatus" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.addressbook.model.addressbook.shared.AddressbookShare" target="org.mxchange.addressbook.model.addressbook.Addressbook" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <ImplementsRelation name="<<implements>>" source="org.mxchange.addressbook.model.addressbook.entry.UserAddressbookEntry" target="org.mxchange.addressbook.model.addressbook.entry.AddressbookEntry"/>
+ <UseRelation source="org.mxchange.addressbook.model.addressbook.shared.ShareableAddressbook" target="org.mxchange.addressbook.model.addressbook.Addressbook" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <HasRelation name="shareAddressbook" source="org.mxchange.addressbook.model.addressbook.shared.AddressbookShare" target="org.mxchange.addressbook.model.addressbook.Addressbook" type="Aggregation" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.addressbook.events.sharing.StartedAddressbookSharingEvent" target="org.mxchange.addressbook.events.sharing.type.SharingType" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <ImplementsRelation name="<<implements>>" source="org.mxchange.addressbook.events.addressbook.LoadedAddressbookEvent" target="org.mxchange.addressbook.events.addressbook.AddressbookLoadedEvent"/>
+ <UseRelation source="org.mxchange.addressbook.events.sharing.AddressbookSharingEvent" target="org.mxchange.addressbook.events.sharing.type.SharingType" sourceCardinality="1..1" targetCardinality="1..1"/>
+ </ClassDiagramRelations>
+</ClassDiagram>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+
+<ClassDiagram name="jcountry-lib">
+ <ClassDiagramComponents>
+ <Interface name="CountrySingletonBeanRemote" package="org.mxchange.jcountry.data" visibility="public" xPosition="20.0" yPosition="20.0">
+ <Methods>
+ <Method name="allCountries" returnType="List<Country>" visibility="package"/>
+ </Methods>
+ </Interface>
+ </ClassDiagramComponents>
+ <ClassDiagramRelations/>
+</ClassDiagram>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+
+<ClassDiagram name="jphone-core">
+ <ClassDiagramComponents>
+ <Class name="CellphoneNumber" package="org.mxchange.jphone.phonenumbers.cellphone" visibility="public" xPosition="20.0" yPosition="171.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ <Field name="phoneId" type="Long" visibility="private"/>
+ <Field name="cellphoneProvider" type="SmsProvider" visibility="private"/>
+ <Field name="phoneNumber" type="Long" visibility="private"/>
+ <Field name="phoneEntryCreated" type="Calendar" visibility="private"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="SmsProvider" name="cellphoneCarrier"/>
+ <Argument type="Long" name="cellphoneNumber"/>
+ <Argument type="Calendar" name="phoneEntryCreated"/>
+ </Constructor>
+ <Constructor visibility="protected"/>
+ </Constructors>
+ <Methods>
+ <Method name="equals" returnType="boolean" visibility="public">
+ <Argument type="Object" name="object"/>
+ </Method>
+ <Method name="getPhoneCountry" returnType="Country" visibility="public"/>
+ <Method name="setPhoneCountry" returnType="void" visibility="public">
+ <Argument type="Country" name="country"/>
+ </Method>
+ <Method name="getPhoneEntryCreated" returnType="Calendar" visibility="public"/>
+ <Method name="setPhoneEntryCreated" returnType="void" visibility="public">
+ <Argument type="Calendar" name="phoneEntryCreated"/>
+ </Method>
+ <Method name="getPhoneId" returnType="Long" visibility="public"/>
+ <Method name="setPhoneId" returnType="void" visibility="public">
+ <Argument type="Long" name="phoneId"/>
+ </Method>
+ <Method name="getCellphoneProvider" returnType="SmsProvider" visibility="public"/>
+ <Method name="setCellphoneProvider" returnType="void" visibility="public">
+ <Argument type="SmsProvider" name="cellphoneProvider"/>
+ </Method>
+ <Method name="getPhoneNumber" returnType="Long" visibility="public"/>
+ <Method name="setPhoneNumber" returnType="void" visibility="public">
+ <Argument type="Long" name="phoneNumber"/>
+ </Method>
+ <Method name="getPhoneAreaCode" returnType="Integer" visibility="public"/>
+ <Method name="setPhoneAreaCode" returnType="void" visibility="public">
+ <Argument type="Integer" name="phoneAreaCode"/>
+ </Method>
+ <Method name="compareTo" returnType="int" visibility="public">
+ <Argument type="DialableCellphoneNumber" name="dialableCellphoneNumber"/>
+ </Method>
+ <Method name="hashCode" returnType="int" visibility="public"/>
+ </Methods>
+ </Class>
+ <Class name="FaxNumber" package="org.mxchange.jphone.phonenumbers.fax" visibility="public" xPosition="1708.0" yPosition="786.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ <Field name="phoneEntryCreated" type="Calendar" visibility="private"/>
+ <Field name="phoneId" type="Long" visibility="private"/>
+ <Field name="phoneNumber" type="Long" visibility="private"/>
+ <Field name="faxAreaCode" type="Integer" visibility="private"/>
+ <Field name="faxCountry" type="Country" visibility="private"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="Country" name="faxCountry"/>
+ <Argument type="Integer" name="faxAreaCode"/>
+ <Argument type="Long" name="faxNumber"/>
+ <Argument type="Calendar" name="phoneEntryCreated"/>
+ </Constructor>
+ <Constructor visibility="protected"/>
+ </Constructors>
+ <Methods>
+ <Method name="getPhoneId" returnType="Long" visibility="public"/>
+ <Method name="setPhoneId" returnType="void" visibility="public">
+ <Argument type="Long" name="phoneId"/>
+ </Method>
+ <Method name="getPhoneNumber" returnType="Long" visibility="public"/>
+ <Method name="setPhoneNumber" returnType="void" visibility="public">
+ <Argument type="Long" name="phoneNumber"/>
+ </Method>
+ <Method name="getPhoneAreaCode" returnType="Integer" visibility="public"/>
+ <Method name="setPhoneAreaCode" returnType="void" visibility="public">
+ <Argument type="Integer" name="faxAreaCode"/>
+ </Method>
+ <Method name="getPhoneCountry" returnType="Country" visibility="public"/>
+ <Method name="setPhoneCountry" returnType="void" visibility="public">
+ <Argument type="Country" name="faxCountry"/>
+ </Method>
+ <Method name="getPhoneEntryCreated" returnType="Calendar" visibility="public"/>
+ <Method name="setPhoneEntryCreated" returnType="void" visibility="public">
+ <Argument type="Calendar" name="phoneEntryCreated"/>
+ </Method>
+ <Method name="compareTo" returnType="int" visibility="public">
+ <Argument type="DialableFaxNumber" name="dialableFaxNumber"/>
+ </Method>
+ <Method name="equals" returnType="boolean" visibility="public">
+ <Argument type="Object" name="object"/>
+ </Method>
+ <Method name="hashCode" returnType="int" visibility="public"/>
+ </Methods>
+ </Class>
+ <Class name="LandLineNumber" package="org.mxchange.jphone.phonenumbers.landline" visibility="public" xPosition="657.0" yPosition="20.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ <Field name="phoneEntryCreated" type="Calendar" visibility="private"/>
+ <Field name="phoneId" type="Long" visibility="private"/>
+ <Field name="phoneNumber" type="Long" visibility="private"/>
+ <Field name="phoneAreaCode" type="Integer" visibility="private"/>
+ <Field name="phoneCountry" type="Country" visibility="private"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="Country" name="phoneCountry"/>
+ <Argument type="Integer" name="phoneAreaCode"/>
+ <Argument type="Long" name="phoneNumber"/>
+ <Argument type="Calendar" name="phoneEntryCreated"/>
+ </Constructor>
+ <Constructor visibility="protected"/>
+ </Constructors>
+ <Methods>
+ <Method name="getPhoneId" returnType="Long" visibility="public"/>
+ <Method name="setPhoneId" returnType="void" visibility="public">
+ <Argument type="Long" name="phoneId"/>
+ </Method>
+ <Method name="getPhoneNumber" returnType="Long" visibility="public"/>
+ <Method name="setPhoneNumber" returnType="void" visibility="public">
+ <Argument type="Long" name="phoneNumber"/>
+ </Method>
+ <Method name="getPhoneAreaCode" returnType="Integer" visibility="public"/>
+ <Method name="setPhoneAreaCode" returnType="void" visibility="public">
+ <Argument type="Integer" name="phoneAreaCode"/>
+ </Method>
+ <Method name="getPhoneCountry" returnType="Country" visibility="public"/>
+ <Method name="setPhoneCountry" returnType="void" visibility="public">
+ <Argument type="Country" name="phoneCountry"/>
+ </Method>
+ <Method name="getPhoneEntryCreated" returnType="Calendar" visibility="public"/>
+ <Method name="setPhoneEntryCreated" returnType="void" visibility="public">
+ <Argument type="Calendar" name="phoneEntryCreated"/>
+ </Method>
+ <Method name="compareTo" returnType="int" visibility="public">
+ <Argument type="DialableLandLineNumber" name="dialableNumber"/>
+ </Method>
+ <Method name="equals" returnType="boolean" visibility="public">
+ <Argument type="Object" name="object"/>
+ </Method>
+ <Method name="hashCode" returnType="int" visibility="public"/>
+ </Methods>
+ </Class>
+ <Class name="CellphoneProvider" package="org.mxchange.jphone.phonenumbers.smsprovider" visibility="public" xPosition="1621.0" yPosition="214.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ <Field name="providerId" type="Long" visibility="private"/>
+ <Field name="providerDialPrefix" type="Long" visibility="private"/>
+ <Field name="providerName" type="String" visibility="private"/>
+ <Field name="providerCountry" type="Country" visibility="private"/>
+ <Field name="providerEntryCreated" type="Calendar" visibility="private"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="protected"/>
+ <Constructor visibility="public">
+ <Argument type="Long" name="providerDialPrefix"/>
+ <Argument type="String" name="providerName"/>
+ <Argument type="Country" name="providerCountry"/>
+ <Argument type="Calendar" name="providerEntryCreated"/>
+ </Constructor>
+ </Constructors>
+ <Methods>
+ <Method name="getProviderId" returnType="Long" visibility="public"/>
+ <Method name="setProviderId" returnType="void" visibility="public">
+ <Argument type="Long" name="providerId"/>
+ </Method>
+ <Method name="getProviderDialPrefix" returnType="Long" visibility="public"/>
+ <Method name="setProviderDialPrefix" returnType="void" visibility="public">
+ <Argument type="Long" name="providerDialPrefix"/>
+ </Method>
+ <Method name="getProviderName" returnType="String" visibility="public"/>
+ <Method name="setProviderName" returnType="void" visibility="public">
+ <Argument type="String" name="providerName"/>
+ </Method>
+ <Method name="getProviderCountry" returnType="Country" visibility="public"/>
+ <Method name="setProviderCountry" returnType="void" visibility="public">
+ <Argument type="Country" name="providerCountry"/>
+ </Method>
+ <Method name="getProviderEntryCreated" returnType="Calendar" visibility="public"/>
+ <Method name="setProviderEntryCreated" returnType="void" visibility="public">
+ <Argument type="Calendar" name="providerEntryCreated"/>
+ </Method>
+ <Method name="compareTo" returnType="int" visibility="public">
+ <Argument type="SmsProvider" name="provider"/>
+ </Method>
+ <Method name="equals" returnType="boolean" visibility="public">
+ <Argument type="Object" name="object"/>
+ </Method>
+ <Method name="hashCode" returnType="int" visibility="public"/>
+ </Methods>
+ </Class>
+ <Class name="PhoneNumberValidator" package="org.mxchange.jphone.validators" visibility="public" xPosition="20.0" yPosition="20.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ </Fields>
+ <Constructors/>
+ <Methods>
+ <Method name="validate" returnType="void" visibility="public">
+ <Argument type="FacesContext" name="context"/>
+ <Argument type="UIComponent" name="component"/>
+ <Argument type="Object" name="value"/>
+ </Method>
+ </Methods>
+ </Class>
+ <Interface name="DialableCellphoneNumber" package="org.mxchange.jphone.phonenumbers.cellphone" visibility="public" xPosition="489.0" yPosition="1120.0">
+ <Methods>
+ <Method name="getCellphoneProvider" returnType="SmsProvider" visibility="package"/>
+ <Method name="setCellphoneProvider" returnType="void" visibility="package">
+ <Argument type="SmsProvider" name="cellphoneProvider"/>
+ </Method>
+ <Method name="equals" returnType="boolean" visibility="package">
+ <Argument type="Object" name="object"/>
+ </Method>
+ <Method name="hashCode" returnType="int" visibility="package"/>
+ </Methods>
+ </Interface>
+ <Interface name="DialableNumber" package="org.mxchange.jphone.phonenumbers" visibility="public" xPosition="942.0" yPosition="1006.0">
+ <Methods>
+ <Method name="getPhoneCountry" returnType="Country" visibility="package"/>
+ <Method name="setPhoneCountry" returnType="void" visibility="package">
+ <Argument type="Country" name="country"/>
+ </Method>
+ <Method name="getPhoneId" returnType="Long" visibility="package"/>
+ <Method name="setPhoneId" returnType="void" visibility="package">
+ <Argument type="Long" name="phoneId"/>
+ </Method>
+ <Method name="getPhoneNumber" returnType="Long" visibility="package"/>
+ <Method name="setPhoneNumber" returnType="void" visibility="package">
+ <Argument type="Long" name="phoneNumber"/>
+ </Method>
+ <Method name="getPhoneAreaCode" returnType="Integer" visibility="package"/>
+ <Method name="setPhoneAreaCode" returnType="void" visibility="package">
+ <Argument type="Integer" name="phoneAreaCode"/>
+ </Method>
+ <Method name="getPhoneEntryCreated" returnType="Calendar" visibility="package"/>
+ <Method name="setPhoneEntryCreated" returnType="void" visibility="package">
+ <Argument type="Calendar" name="phoneEntryCreated"/>
+ </Method>
+ </Methods>
+ </Interface>
+ <Interface name="DialableFaxNumber" package="org.mxchange.jphone.phonenumbers.fax" visibility="public" xPosition="1394.0" yPosition="1158.0">
+ <Methods>
+ <Method name="equals" returnType="boolean" visibility="package">
+ <Argument type="Object" name="object"/>
+ </Method>
+ <Method name="hashCode" returnType="int" visibility="package"/>
+ </Methods>
+ </Interface>
+ <Interface name="DialableLandLineNumber" package="org.mxchange.jphone.phonenumbers.landline" visibility="public" xPosition="1018.0" yPosition="836.0">
+ <Methods>
+ <Method name="equals" returnType="boolean" visibility="package">
+ <Argument type="Object" name="object"/>
+ </Method>
+ <Method name="hashCode" returnType="int" visibility="package"/>
+ </Methods>
+ </Interface>
+ <Interface name="SmsProvider" package="org.mxchange.jphone.phonenumbers.smsprovider" visibility="public" xPosition="20.0" yPosition="968.0">
+ <Methods>
+ <Method name="getProviderId" returnType="Long" visibility="package"/>
+ <Method name="setProviderId" returnType="void" visibility="package">
+ <Argument type="Long" name="providerId"/>
+ </Method>
+ <Method name="getProviderDialPrefix" returnType="Long" visibility="package"/>
+ <Method name="setProviderDialPrefix" returnType="void" visibility="package">
+ <Argument type="Long" name="providerDialPrefix"/>
+ </Method>
+ <Method name="getProviderName" returnType="String" visibility="package"/>
+ <Method name="setProviderName" returnType="void" visibility="package">
+ <Argument type="String" name="providerName"/>
+ </Method>
+ <Method name="getProviderCountry" returnType="Country" visibility="package"/>
+ <Method name="setProviderCountry" returnType="void" visibility="package">
+ <Argument type="Country" name="country"/>
+ </Method>
+ <Method name="getProviderEntryCreated" returnType="Calendar" visibility="package"/>
+ <Method name="setProviderEntryCreated" returnType="void" visibility="package">
+ <Argument type="Calendar" name="providerEntryCreated"/>
+ </Method>
+ <Method name="equals" returnType="boolean" visibility="package">
+ <Argument type="Object" name="object"/>
+ </Method>
+ <Method name="hashCode" returnType="int" visibility="package"/>
+ </Methods>
+ </Interface>
+ </ClassDiagramComponents>
+ <ClassDiagramRelations>
+ <UseRelation source="org.mxchange.jphone.phonenumbers.cellphone.DialableCellphoneNumber" target="org.mxchange.jphone.phonenumbers.smsprovider.SmsProvider" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.jphone.phonenumbers.fax.FaxNumber" target="org.mxchange.jphone.phonenumbers.fax.FaxNumber" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <HasRelation name="cellphoneProvider" source="org.mxchange.jphone.phonenumbers.cellphone.CellphoneNumber" target="org.mxchange.jphone.phonenumbers.smsprovider.SmsProvider" type="Aggregation" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <IsRelation name="is" source="org.mxchange.jphone.phonenumbers.cellphone.DialableCellphoneNumber" target="org.mxchange.jphone.phonenumbers.DialableNumber"/>
+ <IsRelation name="is" source="org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber" target="org.mxchange.jphone.phonenumbers.DialableNumber"/>
+ <IsRelation name="is" source="org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber" target="org.mxchange.jphone.phonenumbers.DialableNumber"/>
+ <ImplementsRelation name="<<implements>>" source="org.mxchange.jphone.phonenumbers.landline.LandLineNumber" target="org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber"/>
+ <UseRelation source="org.mxchange.jphone.phonenumbers.cellphone.CellphoneNumber" target="org.mxchange.jphone.phonenumbers.cellphone.DialableCellphoneNumber" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <ImplementsRelation name="<<implements>>" source="org.mxchange.jphone.phonenumbers.cellphone.CellphoneNumber" target="org.mxchange.jphone.phonenumbers.cellphone.DialableCellphoneNumber"/>
+ <UseRelation source="org.mxchange.jphone.phonenumbers.smsprovider.CellphoneProvider" target="org.mxchange.jphone.phonenumbers.smsprovider.SmsProvider" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.jphone.phonenumbers.landline.LandLineNumber" target="org.mxchange.jphone.phonenumbers.landline.LandLineNumber" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <ImplementsRelation name="<<implements>>" source="org.mxchange.jphone.phonenumbers.fax.FaxNumber" target="org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber"/>
+ <UseRelation source="org.mxchange.jphone.phonenumbers.cellphone.CellphoneNumber" target="org.mxchange.jphone.phonenumbers.smsprovider.SmsProvider" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <ImplementsRelation name="<<implements>>" source="org.mxchange.jphone.phonenumbers.smsprovider.CellphoneProvider" target="org.mxchange.jphone.phonenumbers.smsprovider.SmsProvider"/>
+ </ClassDiagramRelations>
+</ClassDiagram>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+
+<ClassDiagram name="juser-core">
+ <ClassDiagramComponents>
+ <Class name="UserLoginContainer" package="org.mxchange.jusercore.container.login" visibility="public" xPosition="437.0" yPosition="31.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ <Field name="user" type="User" visibility="private"/>
+ <Field name="userPassword" type="String" visibility="private"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="User" name="user"/>
+ <Argument type="String" name="userPassword"/>
+ </Constructor>
+ </Constructors>
+ <Methods>
+ <Method name="getUser" returnType="User" visibility="public"/>
+ <Method name="setUser" returnType="void" visibility="public">
+ <Argument type="User" name="user"/>
+ </Method>
+ <Method name="getUserPassword" returnType="String" visibility="public"/>
+ <Method name="setUserPassword" returnType="void" visibility="public">
+ <Argument type="String" name="userPassword"/>
+ </Method>
+ </Methods>
+ </Class>
+ <Class name="UserLoginEvent" package="org.mxchange.jusercore.events.login" visibility="public" xPosition="954.0" yPosition="81.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ <Field name="user" type="User" visibility="private" isFinal="true"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="User" name="user"/>
+ </Constructor>
+ </Constructors>
+ <Methods>
+ <Method name="getUser" returnType="User" visibility="public"/>
+ </Methods>
+ </Class>
+ <Class name="RegisteredUserEvent" package="org.mxchange.jusercore.events.registration" visibility="public" xPosition="1220.0" yPosition="20.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ <Field name="user" type="User" visibility="private" isFinal="true"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="User" name="user"/>
+ </Constructor>
+ </Constructors>
+ <Methods>
+ <Method name="getUser" returnType="User" visibility="public"/>
+ </Methods>
+ </Class>
+ <Class name="DataRepeatMismatchException" package="org.mxchange.jusercore.exceptions" visibility="public" xPosition="1711.0" yPosition="169.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="String" name="message"/>
+ </Constructor>
+ </Constructors>
+ <Methods/>
+ </Class>
+ <Class name="EmailAddressAlreadyRegisteredException" package="org.mxchange.jusercore.exceptions" visibility="public" xPosition="1711.0" yPosition="20.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="User" name="user"/>
+ </Constructor>
+ </Constructors>
+ <Methods/>
+ </Class>
+ <Class name="UserNameAlreadyRegisteredException" package="org.mxchange.jusercore.exceptions" visibility="public" xPosition="1711.0" yPosition="762.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="User" name="user"/>
+ </Constructor>
+ </Constructors>
+ <Methods/>
+ </Class>
+ <Class name="UserNotFoundException" package="org.mxchange.jusercore.exceptions" visibility="public" xPosition="1711.0" yPosition="913.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="User" name="user"/>
+ </Constructor>
+ <Constructor visibility="public">
+ <Argument type="Long" name="userId"/>
+ </Constructor>
+ </Constructors>
+ <Methods/>
+ </Class>
+ <Class name="UserPasswordMismatchException" package="org.mxchange.jusercore.exceptions" visibility="public" xPosition="1711.0" yPosition="470.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="User" name="user"/>
+ </Constructor>
+ </Constructors>
+ <Methods/>
+ </Class>
+ <Class name="UserStatusLockedException" package="org.mxchange.jusercore.exceptions" visibility="public" xPosition="1711.0" yPosition="616.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="User" name="user"/>
+ </Constructor>
+ </Constructors>
+ <Methods/>
+ </Class>
+ <Class name="UserStatusUnconfirmedException" package="org.mxchange.jusercore.exceptions" visibility="public" xPosition="1711.0" yPosition="317.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public">
+ <Argument type="User" name="user"/>
+ </Constructor>
+ </Constructors>
+ <Methods/>
+ </Class>
+ <Class name="LoginUser" package="org.mxchange.jusercore.model.user" visibility="public" xPosition="1035.0" yPosition="762.0">
+ <Fields>
+ <Field name="serialVersionUID" type="long" visibility="private" isStatic="true" isFinal="true"/>
+ <Field name="userAccountStatus" type="UserAccountStatus" visibility="private"/>
+ <Field name="userConfirmKey" type="String" visibility="private"/>
+ <Field name="userContact" type="Contact" visibility="private"/>
+ <Field name="userCreated" type="Calendar" visibility="private"/>
+ <Field name="userEncryptedPassword" type="String" visibility="private"/>
+ <Field name="userId" type="Long" visibility="private"/>
+ <Field name="userLastLocked" type="Calendar" visibility="private"/>
+ <Field name="lastLockedReason" type="String" visibility="private"/>
+ <Field name="userName" type="String" visibility="private"/>
+ <Field name="userUpdated" type="Calendar" visibility="private"/>
+ <Field name="userProfileMode" type="ProfileMode" visibility="private"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="public"/>
+ </Constructors>
+ <Methods>
+ <Method name="copyAll" returnType="void" visibility="public">
+ <Argument type="User" name="user"/>
+ </Method>
+ <Method name="equals" returnType="boolean" visibility="public">
+ <Argument type="Object" name="object"/>
+ </Method>
+ <Method name="getLastLockedReason" returnType="String" visibility="public"/>
+ <Method name="setLastLockedReason" returnType="void" visibility="public">
+ <Argument type="String" name="lastLockedReason"/>
+ </Method>
+ <Method name="getUserAccountStatus" returnType="UserAccountStatus" visibility="public"/>
+ <Method name="setUserAccountStatus" returnType="void" visibility="public">
+ <Argument type="UserAccountStatus" name="userAccountStatus"/>
+ </Method>
+ <Method name="getUserConfirmKey" returnType="String" visibility="public"/>
+ <Method name="setUserConfirmKey" returnType="void" visibility="public">
+ <Argument type="String" name="userConfirmKey"/>
+ </Method>
+ <Method name="getUserContact" returnType="Contact" visibility="public"/>
+ <Method name="setUserContact" returnType="void" visibility="public">
+ <Argument type="Contact" name="userContact"/>
+ </Method>
+ <Method name="getUserCreated" returnType="Calendar" visibility="public"/>
+ <Method name="setUserCreated" returnType="void" visibility="public">
+ <Argument type="Calendar" name="userCreated"/>
+ </Method>
+ <Method name="getUserEncryptedPassword" returnType="String" visibility="public"/>
+ <Method name="setUserEncryptedPassword" returnType="void" visibility="public">
+ <Argument type="String" name="userEncryptedPassword"/>
+ </Method>
+ <Method name="getUserId" returnType="Long" visibility="public"/>
+ <Method name="setUserId" returnType="void" visibility="public">
+ <Argument type="Long" name="userId"/>
+ </Method>
+ <Method name="getUserLastLocked" returnType="Calendar" visibility="public"/>
+ <Method name="setUserLastLocked" returnType="void" visibility="public">
+ <Argument type="Calendar" name="userLastLocked"/>
+ </Method>
+ <Method name="getUserName" returnType="String" visibility="public"/>
+ <Method name="setUserName" returnType="void" visibility="public">
+ <Argument type="String" name="userName"/>
+ </Method>
+ <Method name="getUserProfileMode" returnType="ProfileMode" visibility="public"/>
+ <Method name="setUserProfileMode" returnType="void" visibility="public">
+ <Argument type="ProfileMode" name="userProfileMode"/>
+ </Method>
+ <Method name="getUserUpdated" returnType="Calendar" visibility="public"/>
+ <Method name="setUserUpdated" returnType="void" visibility="public">
+ <Argument type="Calendar" name="userUpdated"/>
+ </Method>
+ <Method name="hashCode" returnType="int" visibility="public"/>
+ </Methods>
+ </Class>
+ <Class name="UserUtils" package="org.mxchange.jusercore.model.user" visibility="public" xPosition="504.0" yPosition="1367.0">
+ <Fields>
+ <Field name="SALT_LENGTH" type="int" visibility="private" isStatic="true" isFinal="true"/>
+ </Fields>
+ <Constructors>
+ <Constructor visibility="private"/>
+ </Constructors>
+ <Methods>
+ <Method name="encryptPassword" returnType="String" visibility="public" isStatic="true">
+ <Argument type="String" name="userPassword"/>
+ </Method>
+ <Method name="ifPasswordMatches" returnType="boolean" visibility="public" isStatic="true">
+ <Argument type="LoginContainer" name="container"/>
+ <Argument type="User" name="updatedUser"/>
+ </Method>
+ </Methods>
+ </Class>
+ <Interface name="LoginContainer" package="org.mxchange.jusercore.container.login" visibility="public" xPosition="35.0" yPosition="31.0">
+ <Methods>
+ <Method name="getUser" returnType="User" visibility="package"/>
+ <Method name="setUser" returnType="void" visibility="package">
+ <Argument type="User" name="user"/>
+ </Method>
+ <Method name="getUserPassword" returnType="String" visibility="package"/>
+ <Method name="setUserPassword" returnType="void" visibility="package">
+ <Argument type="String" name="userPassword"/>
+ </Method>
+ </Methods>
+ </Interface>
+ <Interface name="UserLoggedInEvent" package="org.mxchange.jusercore.events.login" visibility="public" xPosition="663.0" yPosition="317.0">
+ <Methods>
+ <Method name="getUser" returnType="User" visibility="package"/>
+ </Methods>
+ </Interface>
+ <Interface name="UserRegisteredEvent" package="org.mxchange.jusercore.events.registration" visibility="public" xPosition="1520.0" yPosition="20.0">
+ <Methods>
+ <Method name="getUser" returnType="User" visibility="package"/>
+ </Methods>
+ </Interface>
+ <Interface name="User" package="org.mxchange.jusercore.model.user" visibility="public" xPosition="20.0" yPosition="820.0">
+ <Methods>
+ <Method name="copyAll" returnType="void" visibility="package">
+ <Argument type="User" name="userSource"/>
+ </Method>
+ <Method name="getUserAccountStatus" returnType="UserAccountStatus" visibility="package"/>
+ <Method name="setUserAccountStatus" returnType="void" visibility="package">
+ <Argument type="UserAccountStatus" name="userStatus"/>
+ </Method>
+ <Method name="getUserConfirmKey" returnType="String" visibility="package"/>
+ <Method name="setUserConfirmKey" returnType="void" visibility="package">
+ <Argument type="String" name="userConfirmKey"/>
+ </Method>
+ <Method name="getUserContact" returnType="Contact" visibility="package"/>
+ <Method name="setUserContact" returnType="void" visibility="package">
+ <Argument type="Contact" name="contact"/>
+ </Method>
+ <Method name="getUserCreated" returnType="Calendar" visibility="package"/>
+ <Method name="setUserCreated" returnType="void" visibility="package">
+ <Argument type="Calendar" name="userCreated"/>
+ </Method>
+ <Method name="getUserEncryptedPassword" returnType="String" visibility="package"/>
+ <Method name="setUserEncryptedPassword" returnType="void" visibility="package">
+ <Argument type="String" name="userEncryptedPassword"/>
+ </Method>
+ <Method name="getUserId" returnType="Long" visibility="package"/>
+ <Method name="setUserId" returnType="void" visibility="package">
+ <Argument type="Long" name="customerId"/>
+ </Method>
+ <Method name="getUserLastLocked" returnType="Calendar" visibility="package"/>
+ <Method name="setUserLastLocked" returnType="void" visibility="package">
+ <Argument type="Calendar" name="userLocked"/>
+ </Method>
+ <Method name="getLastLockedReason" returnType="String" visibility="public"/>
+ <Method name="setLastLockedReason" returnType="void" visibility="public">
+ <Argument type="String" name="lastLockedReason"/>
+ </Method>
+ <Method name="getUserName" returnType="String" visibility="package"/>
+ <Method name="setUserName" returnType="void" visibility="package">
+ <Argument type="String" name="userName"/>
+ </Method>
+ <Method name="getUserProfileMode" returnType="ProfileMode" visibility="package"/>
+ <Method name="setUserProfileMode" returnType="void" visibility="package">
+ <Argument type="ProfileMode" name="userPublicProfile"/>
+ </Method>
+ <Method name="getUserUpdated" returnType="Calendar" visibility="package"/>
+ <Method name="setUserUpdated" returnType="void" visibility="package">
+ <Argument type="Calendar" name="userUpdated"/>
+ </Method>
+ <Method name="equals" returnType="boolean" visibility="package">
+ <Argument type="Object" name="object"/>
+ </Method>
+ <Method name="hashCode" returnType="int" visibility="package"/>
+ </Methods>
+ </Interface>
+ <Enum name="ProfileMode" package="org.mxchange.jusercore.model.user.profilemodes" visibility="public" xPosition="1419.0" yPosition="438.0">
+ <Literals>
+ <Literal name="INVISIBLE"/>
+ <Literal name="MEMBERS"/>
+ <Literal name="PUBLIC"/>
+ </Literals>
+ </Enum>
+ <Enum name="UserAccountStatus" package="org.mxchange.jusercore.model.user.status" visibility="public" xPosition="1634.0" yPosition="1397.0">
+ <Literals>
+ <Literal name="UNCONFIRMED"/>
+ <Literal name="CONFIRMED"/>
+ <Literal name="LOCKED"/>
+ </Literals>
+ </Enum>
+ </ClassDiagramComponents>
+ <ClassDiagramRelations>
+ <UseRelation source="org.mxchange.jusercore.events.login.UserLoggedInEvent" target="org.mxchange.jusercore.model.user.User" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <ImplementsRelation name="<<implements>>" source="org.mxchange.jusercore.events.registration.RegisteredUserEvent" target="org.mxchange.jusercore.events.registration.UserRegisteredEvent"/>
+ <ImplementsRelation name="<<implements>>" source="org.mxchange.jusercore.model.user.LoginUser" target="org.mxchange.jusercore.model.user.User"/>
+ <HasRelation name="userAccountStatus" source="org.mxchange.jusercore.model.user.LoginUser" target="org.mxchange.jusercore.model.user.status.UserAccountStatus" type="Aggregation" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.jusercore.model.user.User" target="org.mxchange.jusercore.model.user.User" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.jusercore.events.registration.RegisteredUserEvent" target="org.mxchange.jusercore.model.user.User" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <HasRelation name="user" source="org.mxchange.jusercore.events.registration.RegisteredUserEvent" target="org.mxchange.jusercore.model.user.User" type="Aggregation" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <HasRelation name="user" source="org.mxchange.jusercore.events.login.UserLoginEvent" target="org.mxchange.jusercore.model.user.User" type="Aggregation" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.jusercore.model.user.LoginUser" target="org.mxchange.jusercore.model.user.profilemodes.ProfileMode" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.jusercore.events.login.UserLoginEvent" target="org.mxchange.jusercore.model.user.User" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <ImplementsRelation name="<<implements>>" source="org.mxchange.jusercore.container.login.UserLoginContainer" target="org.mxchange.jusercore.container.login.LoginContainer"/>
+ <HasRelation name="user" source="org.mxchange.jusercore.container.login.UserLoginContainer" target="org.mxchange.jusercore.model.user.User" type="Aggregation" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <HasRelation name="userProfileMode" source="org.mxchange.jusercore.model.user.LoginUser" target="org.mxchange.jusercore.model.user.profilemodes.ProfileMode" type="Aggregation" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.jusercore.model.user.UserUtils" target="org.mxchange.jusercore.model.user.User" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.jusercore.model.user.User" target="org.mxchange.jusercore.model.user.profilemodes.ProfileMode" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.jusercore.model.user.LoginUser" target="org.mxchange.jusercore.model.user.User" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.jusercore.container.login.LoginContainer" target="org.mxchange.jusercore.model.user.User" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <UseRelation source="org.mxchange.jusercore.container.login.UserLoginContainer" target="org.mxchange.jusercore.model.user.User" sourceCardinality="1..1" targetCardinality="1..1"/>
+ <ImplementsRelation name="<<implements>>" source="org.mxchange.jusercore.events.login.UserLoginEvent" target="org.mxchange.jusercore.events.login.UserLoggedInEvent"/>
+ <UseRelation source="org.mxchange.jusercore.events.registration.UserRegisteredEvent" target="org.mxchange.jusercore.model.user.User" sourceCardinality="1..1" targetCardinality="1..1"/>
+ </ClassDiagramRelations>
+</ClassDiagram>