]> git.mxchange.org Git - jbonuscard-lib.git/commitdiff
Continued:
authorRoland Haeder <roland@mxchange.org>
Fri, 9 Oct 2015 12:20:26 +0000 (14:20 +0200)
committerRoland Haeder <roland@mxchange.org>
Fri, 9 Oct 2015 12:20:26 +0000 (14:20 +0200)
- added persistence jar
- added juser-core
- added POJO/POJIs for address book handling
- added remote interface for address book handling
- removed mindmap as it should only stay in one place (better in main project)
- updated jars
Signed-off-by:Roland Häder <roland@mxchange.org>

14 files changed:
docs/mindmaps/Addressbook Application.mm [deleted file]
lib/jcontacts-business-core.jar
lib/jcore.jar
lib/jpa20-persistence/javax.persistence-2.1.0-doc.zip [new file with mode: 0644]
lib/jpa20-persistence/javax.persistence_2.1.0.v201304241213.jar [new file with mode: 0644]
lib/juser-core.jar [new file with mode: 0644]
nbproject/project.properties
src/org/mxchange/addressbook/model/addressbook/Addressbook.java [new file with mode: 0644]
src/org/mxchange/addressbook/model/addressbook/AddressbookSessionBeanRemote.java [new file with mode: 0644]
src/org/mxchange/addressbook/model/addressbook/UserAddressbook.java [new file with mode: 0644]
src/org/mxchange/addressbook/model/addressbook/entry/AddressbookEntry.java [new file with mode: 0644]
src/org/mxchange/addressbook/model/addressbook/entry/UserAddressbookEntry.java [new file with mode: 0644]
src/org/mxchange/addressbook/model/addressbook/status/AddressbokStatus.java [new file with mode: 0644]
src/org/mxchange/addressbook/model/addressbooks/AddressbookSessionBeanRemote.java [deleted file]

diff --git a/docs/mindmaps/Addressbook Application.mm b/docs/mindmaps/Addressbook Application.mm
deleted file mode 100644 (file)
index 677e988..0000000
+++ /dev/null
@@ -1,681 +0,0 @@
-<map version="freeplane 1.3.0">
-<!--To view this file, download free mind mapping software Freeplane from http://freeplane.sourceforge.net -->
-<node ID="ID_1723255651" CREATED="1283093380553" MODIFIED="1443614745402"><richcontent TYPE="NODE">
-
-<html>
-  <head>
-    
-  </head>
-  <body>
-    <p align="center" style="text-align: center">
-      <b>Addressbook Application </b>
-    </p>
-    <p align="center" style="text-align: center">
-      <font size="4">Version:<b>&#160;1.0</b></font>
-    </p>
-  </body>
-</html>
-
-</richcontent>
-<hook NAME="MapStyle" zoom="1.25">
-    <properties show_icon_for_attributes="true" show_note_icons="true"/>
-
-<map_styles>
-<stylenode LOCALIZED_TEXT="styles.root_node">
-<stylenode LOCALIZED_TEXT="styles.predefined" POSITION="right">
-<stylenode LOCALIZED_TEXT="default" MAX_WIDTH="600" COLOR="#000000" STYLE="as_parent">
-<font NAME="SansSerif" SIZE="10" BOLD="false" ITALIC="false"/>
-</stylenode>
-<stylenode LOCALIZED_TEXT="defaultstyle.details"/>
-<stylenode LOCALIZED_TEXT="defaultstyle.note"/>
-<stylenode LOCALIZED_TEXT="defaultstyle.floating">
-<edge STYLE="hide_edge"/>
-<cloud COLOR="#f0f0f0" SHAPE="ROUND_RECT"/>
-</stylenode>
-</stylenode>
-<stylenode LOCALIZED_TEXT="styles.user-defined" POSITION="right">
-<stylenode LOCALIZED_TEXT="styles.topic" COLOR="#18898b" STYLE="fork">
-<font NAME="Liberation Sans" SIZE="10" BOLD="true"/>
-</stylenode>
-<stylenode LOCALIZED_TEXT="styles.subtopic" COLOR="#cc3300" STYLE="fork">
-<font NAME="Liberation Sans" SIZE="10" BOLD="true"/>
-</stylenode>
-<stylenode LOCALIZED_TEXT="styles.subsubtopic" COLOR="#669900">
-<font NAME="Liberation Sans" SIZE="10" BOLD="true"/>
-</stylenode>
-<stylenode LOCALIZED_TEXT="styles.important">
-<icon BUILTIN="yes"/>
-</stylenode>
-</stylenode>
-<stylenode LOCALIZED_TEXT="styles.AutomaticLayout" POSITION="right">
-<stylenode LOCALIZED_TEXT="AutomaticLayout.level.root" COLOR="#000000">
-<font SIZE="18"/>
-</stylenode>
-<stylenode LOCALIZED_TEXT="AutomaticLayout.level,1" COLOR="#0033ff">
-<font SIZE="16"/>
-</stylenode>
-<stylenode LOCALIZED_TEXT="AutomaticLayout.level,2" COLOR="#00b439">
-<font SIZE="14"/>
-</stylenode>
-<stylenode LOCALIZED_TEXT="AutomaticLayout.level,3" COLOR="#990000">
-<font NAME="Liberation Sans" SIZE="12"/>
-</stylenode>
-<stylenode LOCALIZED_TEXT="AutomaticLayout.level,4" COLOR="#111111">
-<font SIZE="10"/>
-</stylenode>
-</stylenode>
-</stylenode>
-</map_styles>
-</hook>
-<font NAME="Liberation Sans"/>
-<hook NAME="accessories/plugins/CreationModificationPlugin.properties"/>
-<hook NAME="accessories/plugins/AutomaticLayout.properties" VALUE="ALL"/>
-<node TEXT="Use cases" POSITION="right" ID="ID_155950936" CREATED="1443605760060" MODIFIED="1443614745403">
-<font NAME="Liberation Sans"/>
-<node TEXT="Guest user" ID="ID_1785318272" CREATED="1443603523478" MODIFIED="1443614745404">
-<font NAME="Liberation Sans"/>
-<node TEXT="Register new account" ID="ID_834691137" CREATED="1443603538196" MODIFIED="1443614745404">
-<font NAME="Liberation Sans"/>
-<node TEXT="Enter personal data" ID="ID_389686308" CREATED="1443604020511" MODIFIED="1443614745405">
-<font NAME="Liberation Sans"/>
-<node TEXT="Including email address twice" ID="ID_1856652487" CREATED="1443604028896" MODIFIED="1443614745405">
-<font NAME="Liberation Sans"/>
-<node TEXT="Validate email address usage by AJAX?" ID="ID_658191740" CREATED="1443604717748" MODIFIED="1443614745406">
-<icon BUILTIN="idea"/>
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-</node>
-<node TEXT="Choose own login name and password twice" ID="ID_213763398" CREATED="1443604038826" MODIFIED="1443614745406">
-<font NAME="Liberation Sans"/>
-<node TEXT="Validate login name usage by AJAX?" ID="ID_1816300518" CREATED="1443604653140" MODIFIED="1443614745407">
-<icon BUILTIN="idea"/>
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Show password strength?" ID="ID_1570653501" CREATED="1443604694901" MODIFIED="1443614745407">
-<icon BUILTIN="idea"/>
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Accept T&amp;C + privacy" ID="ID_1498177531" CREATED="1443604072896" MODIFIED="1443614745408">
-<font NAME="Liberation Sans"/>
-<node TEXT="First step for double opt-in" ID="ID_1740160279" CREATED="1443604105453" MODIFIED="1443614745408">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Repeat CATCHA" ID="ID_268477737" CREATED="1443604470073" MODIFIED="1443614745409">
-<font NAME="Liberation Sans"/>
-<node TEXT="Secures against spam bots" ID="ID_634148117" CREATED="1443604254909" MODIFIED="1443614745409">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Click &quot;Register&quot; button" ID="ID_975826038" CREATED="1443604530594" MODIFIED="1443614745410">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Receive confirmation link by email" ID="ID_97848361" CREATED="1443604117411" MODIFIED="1443614745410">
-<font NAME="Liberation Sans"/>
-<node TEXT="Allow resend multiple times" ID="ID_1109187673" CREATED="1443604747060" MODIFIED="1443614745411">
-<font NAME="Liberation Sans"/>
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Liberation Sans" DESTINATION="ID_714330381" STARTINCLINATION="572;0;" ENDINCLINATION="572;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
-</node>
-</node>
-<node TEXT="Confirm account" ID="ID_1482321390" CREATED="1443604215925" MODIFIED="1443614745411">
-<font NAME="Liberation Sans"/>
-<node TEXT="Second step for double opt-in" ID="ID_1455805658" CREATED="1443604221954" MODIFIED="1443614745411">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-</node>
-<node TEXT="Login to existing account" ID="ID_1382863032" CREATED="1443603543820" MODIFIED="1443614745412">
-<font NAME="Liberation Sans"/>
-<node TEXT="Enter login name and password" ID="ID_458679187" CREATED="1443604235706" MODIFIED="1443614745412">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Repeat CAPTCHA" ID="ID_862972259" CREATED="1443604247772" MODIFIED="1443614745413">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Click &quot;Login&quot; button" ID="ID_1578784554" CREATED="1443604265229" MODIFIED="1443614745413">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="User gets overview page" ID="ID_761914834" CREATED="1443604278684" MODIFIED="1443614745414">
-<font NAME="Liberation Sans"/>
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Liberation Sans" DESTINATION="ID_675311534" STARTINCLINATION="958;0;" ENDINCLINATION="496;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
-</node>
-<node TEXT="Redirect to user area if already logged in" ID="ID_1303985650" CREATED="1443604327325" MODIFIED="1443614745414">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Restore password" ID="ID_128725689" CREATED="1443603551612" MODIFIED="1443614745415">
-<font NAME="Liberation Sans"/>
-<node TEXT="Enter login name" ID="ID_1191546905" CREATED="1443604387322" MODIFIED="1443614745415">
-<font NAME="Liberation Sans"/>
-<node TEXT="If known to user" ID="ID_1024770196" CREATED="1443604409763" MODIFIED="1443614745416">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Alternative: Enter email address" ID="ID_1755194712" CREATED="1443604415239" MODIFIED="1443614745416">
-<font NAME="Liberation Sans"/>
-<node TEXT="If login name is not known" ID="ID_1933506967" CREATED="1443604423764" MODIFIED="1443614745417">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Repeat CATCHA" ID="ID_140870253" CREATED="1443604470073" MODIFIED="1443614745417">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Click &quot;Restore password&quot; button" ID="ID_1305818352" CREATED="1443604546444" MODIFIED="1443614745418">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Receive change link" ID="ID_875187648" CREATED="1443604557387" MODIFIED="1443614745418">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Click the link to enter some personal data" ID="ID_1966993495" CREATED="1443604585327" MODIFIED="1443614745419">
-<font NAME="Liberation Sans"/>
-<node TEXT="First name, family name and gender" ID="ID_467871831" CREATED="1443604604023" MODIFIED="1443614745419">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="To make sure the user is really him/her" ID="ID_1598650071" CREATED="1443604615575" MODIFIED="1443614745420">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Enter new password twice" ID="ID_750206161" CREATED="1443604634373" MODIFIED="1443614745420">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Repeat CATCHA" ID="ID_579518267" CREATED="1443605631812" MODIFIED="1443614745421">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Click &quot;Change password&quot; button" ID="ID_1261204013" CREATED="1443605648590" MODIFIED="1443614745421">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Resend confirmation link" ID="ID_714330381" CREATED="1443604136872" MODIFIED="1443614745422">
-<font NAME="Liberation Sans"/>
-<node TEXT="Enter login name" ID="ID_1106725569" CREATED="1443605573367" MODIFIED="1443614745422">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Alternative: Enter email address" ID="ID_197358145" CREATED="1443605585901" MODIFIED="1443614745423">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Repeat CAPTCHA" ID="ID_1556403039" CREATED="1443605614184" MODIFIED="1443614745423">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Click &quot;Resend&quot; button" ID="ID_1974108601" CREATED="1443605619823" MODIFIED="1443614745424">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-</node>
-<node TEXT="Logged-in user" ID="ID_1108223557" CREATED="1443603563094" MODIFIED="1443614745424">
-<font NAME="Liberation Sans"/>
-<node TEXT="Overview" ID="ID_675311534" CREATED="1443603823795" MODIFIED="1443614745425">
-<font NAME="Liberation Sans"/>
-<node TEXT="First page been seen after login" ID="ID_1556677765" CREATED="1443605802632" MODIFIED="1443614745425">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Shows sum of added addresses" ID="ID_1403283314" CREATED="1443605818942" MODIFIED="1443614745426">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Shows more detailed user status (private, commercial)" ID="ID_1912309957" CREATED="1443605868051" MODIFIED="1443614745426">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Provides direct link to sub pages" ID="ID_1747315878" CREATED="1443605844565" MODIFIED="1443614745427">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Add new private address" ID="ID_167887175" CREATED="1443603837016" MODIFIED="1443614745427">
-<font NAME="Liberation Sans"/>
-<node TEXT="Enter personal data" ID="ID_1304960332" CREATED="1443605949952" MODIFIED="1443614745427">
-<font NAME="Liberation Sans"/>
-<node TEXT="Gender" ID="ID_946054746" CREATED="1443605987049" MODIFIED="1443615261408">
-<icon BUILTIN="fema"/>
-<font NAME="Liberation Sans"/>
-<node TEXT="Remove Gender.COMPANY!" ID="ID_1511060829" CREATED="1443613597784" MODIFIED="1443614745428">
-<icon BUILTIN="messagebox_warning"/>
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="First name" ID="ID_592998632" CREATED="1443605980762" MODIFIED="1443614745428">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Family name" ID="ID_24593473" CREATED="1443605990099" MODIFIED="1443614745428">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Titles (Dr., Prof.)" ID="ID_1117613838" CREATED="1443613582457" MODIFIED="1443614745428">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Street + house number" ID="ID_465313977" CREATED="1443605997774" MODIFIED="1443615241203">
-<icon BUILTIN="Mail"/>
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="ZIP code" ID="ID_777785946" CREATED="1443606004350" MODIFIED="1443614745429">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="City name" ID="ID_1146374238" CREATED="1443606009053" MODIFIED="1443614745429">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Country code" ID="ID_1509141256" CREATED="1443606012009" MODIFIED="1443614745429">
-<font NAME="Liberation Sans"/>
-<node TEXT="From selection" ID="ID_157526199" CREATED="1443606020207" MODIFIED="1443614745430">
-<icon BUILTIN="idea"/>
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-</node>
-<node TEXT="Enter contact data" ID="ID_8699686" CREATED="1443606054847" MODIFIED="1443614745430">
-<font NAME="Liberation Sans"/>
-<node TEXT="Email address(-es)" ID="ID_81345401" CREATED="1443606060346" MODIFIED="1443615197621">
-<icon BUILTIN="kmail"/>
-<font NAME="Liberation Sans"/>
-<node TEXT="Allow more than one?" ID="ID_277779194" CREATED="1443612714328" MODIFIED="1443614745430">
-<icon BUILTIN="help"/>
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Phone number(s)" ID="ID_486776528" CREATED="1443606074253" MODIFIED="1443615106716">
-<icon BUILTIN="kaddressbook"/>
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Fax number(s)" ID="ID_779197041" CREATED="1443606079487" MODIFIED="1443614745431">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Mobile number(s)" ID="ID_1468752830" CREATED="1443606083145" MODIFIED="1443614745431">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Chat protocols?" ID="ID_985661701" CREATED="1443612919640" MODIFIED="1443614745431">
-<icon BUILTIN="idea"/>
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Enter other data" ID="ID_986888788" CREATED="1443606093075" MODIFIED="1443614745431">
-<font NAME="Liberation Sans"/>
-<node TEXT="Birthday" ID="ID_357486748" CREATED="1443606097232" MODIFIED="1443614745432">
-<font NAME="Liberation Sans"/>
-<node TEXT="Provide a calendar for easier selection." ID="ID_1050356565" CREATED="1443606106577" MODIFIED="1443614745432">
-<icon BUILTIN="idea"/>
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Homepage URL" ID="ID_1619314083" CREATED="1443612908887" MODIFIED="1443615128671">
-<icon BUILTIN="internet"/>
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Comment field" ID="ID_1452873488" CREATED="1443606135905" MODIFIED="1443614745432">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Don&apos;t accept if user already exists" ID="ID_1027128391" CREATED="1443606171527" MODIFIED="1443614745432">
-<font NAME="Liberation Sans"/>
-<node TEXT="Avoids duplicate data" ID="ID_1564370401" CREATED="1443606179631" MODIFIED="1443614745433">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Provide &quot;choose this contact&quot; link" ID="ID_1683304324" CREATED="1443606189280" MODIFIED="1443614745433">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Check by comparing several data" ID="ID_717048951" CREATED="1443606215995" MODIFIED="1443614745433">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-</node>
-<node TEXT="Add commercial address" ID="ID_693635396" CREATED="1443612871119" MODIFIED="1443614745433">
-<font NAME="Liberation Sans"/>
-<node TEXT="Add basic data" ID="ID_1185818409" CREATED="1443612878231" MODIFIED="1443614786608">
-<font NAME="Liberation Sans"/>
-<node TEXT="Table: &quot;company data&quot;" ID="ID_1169531137" CREATED="1443613507699" MODIFIED="1443614745434">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Company name" ID="ID_491446708" CREATED="1443612884688" MODIFIED="1443614745434">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Company &quot;type&quot;" ID="ID_890227416" CREATED="1443615697203" MODIFIED="1443615701855"/>
-<node TEXT="Company logo" ID="ID_62855329" CREATED="1443613016981" MODIFIED="1443614745434">
-<font NAME="Liberation Sans"/>
-<node TEXT="Upload only as referenced URLs invade user&apos;s privacy" ID="ID_963398999" CREATED="1443613025406" MODIFIED="1443614745435">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Tax number" ID="ID_1451946695" CREATED="1443612888471" MODIFIED="1443614745435">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Website URL" ID="ID_621940095" CREATED="1443612962485" MODIFIED="1443615128670">
-<icon BUILTIN="internet"/>
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Main phone number(s)" ID="ID_427932179" CREATED="1443612972335" MODIFIED="1443615106715">
-<icon BUILTIN="kaddressbook"/>
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Main fax number(s)" ID="ID_1898846435" CREATED="1443612976599" MODIFIED="1443614745436">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Main email address" ID="ID_235300191" CREATED="1443613004654" MODIFIED="1443615197621">
-<icon BUILTIN="kmail"/>
-<font NAME="Liberation Sans"/>
-<node TEXT="info@domain-name can be generated automatically" ID="ID_658200282" CREATED="1443614404980" MODIFIED="1443614745436">
-<icon BUILTIN="idea"/>
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Comments" ID="ID_755778681" CREATED="1443614726025" MODIFIED="1443614745400">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Add/edit HQ" ID="ID_45090171" CREATED="1443613128085" MODIFIED="1443614745436">
-<font NAME="Liberation Sans"/>
-<node TEXT="Table: &quot;company hq&quot;" ID="ID_1912188815" CREATED="1443613492026" MODIFIED="1443614745437">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="HQ address" ID="ID_1554703" CREATED="1443612891606" MODIFIED="1443615241202">
-<icon BUILTIN="Mail"/>
-<font NAME="Liberation Sans"/>
-<node TEXT="Street + house number" ID="ID_583346623" CREATED="1443613081118" MODIFIED="1443614745437">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Floor" ID="ID_1471449386" CREATED="1443613659729" MODIFIED="1443614745437">
-<font NAME="Liberation Sans"/>
-<node TEXT="If in a multi-company building" ID="ID_15507052" CREATED="1443613689194" MODIFIED="1443614745438">
-<icon BUILTIN="idea"/>
-<icon BUILTIN="yes"/>
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Suite number" ID="ID_24684779" CREATED="1443614699928" MODIFIED="1443615763403">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="ZIP code" ID="ID_804384730" CREATED="1443613086782" MODIFIED="1443614745438">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="City" ID="ID_1781302108" CREATED="1443613091342" MODIFIED="1443614745438">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Country code" ID="ID_1565402397" CREATED="1443613093589" MODIFIED="1443614745438">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Phone number(s)" ID="ID_167916446" CREATED="1443613152062" MODIFIED="1443615175312">
-<icon BUILTIN="kaddressbook"/>
-<font NAME="Liberation Sans"/>
-<node TEXT="Only if different to basic data" ID="ID_398382209" CREATED="1443613164078" MODIFIED="1443614745439">
-<icon BUILTIN="idea"/>
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Liberation Sans" DESTINATION="ID_311175298" STARTINCLINATION="230;0;" ENDINCLINATION="230;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Liberation Sans" DESTINATION="ID_683654765" STARTINCLINATION="237;0;" ENDINCLINATION="237;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Fax number(s)" ID="ID_311175298" CREATED="1443613158788" MODIFIED="1443614745439">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Email address" ID="ID_683654765" CREATED="1443613185812" MODIFIED="1443615208473">
-<icon BUILTIN="kmail"/>
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Add branch office" ID="ID_1433895831" CREATED="1443613254491" MODIFIED="1443614745440">
-<font NAME="Liberation Sans"/>
-<node TEXT="Table &quot;company branches&quot;" ID="ID_1288238934" CREATED="1443613522618" MODIFIED="1443614745440">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Branch address" ID="ID_891876306" CREATED="1443613260275" MODIFIED="1443614745440">
-<font NAME="Liberation Sans"/>
-<node TEXT="See HQ address" ID="ID_228103675" CREATED="1443613640162" MODIFIED="1443614745440">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Phone number(s)" ID="ID_1601569096" CREATED="1443613262549" MODIFIED="1443615106714">
-<icon BUILTIN="kaddressbook"/>
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Fax number(s)" ID="ID_847440635" CREATED="1443613266915" MODIFIED="1443614745441">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Email address" ID="ID_1482938937" CREATED="1443613270845" MODIFIED="1443614745441">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Add employee" ID="ID_1027036778" CREATED="1443613297915" MODIFIED="1443614745441">
-<font NAME="Liberation Sans"/>
-<node TEXT="Table: &quot;company employee&quot;" ID="ID_1184916517" CREATED="1443613805321" MODIFIED="1443614745441">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Personal data" ID="ID_1342534646" CREATED="1443613390756" MODIFIED="1443614745442">
-<font NAME="Liberation Sans"/>
-<node TEXT="Link to table &quot;contacts&quot;" ID="ID_1308367743" CREATED="1443613431339" MODIFIED="1443614745442">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="&quot;Add user as employee&quot; feature" ID="ID_1229457039" CREATED="1443614595113" MODIFIED="1443614745442">
-<icon BUILTIN="idea"/>
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Gender" ID="ID_1074968827" CREATED="1443613341685" MODIFIED="1443615261409">
-<icon BUILTIN="fema"/>
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="First name" ID="ID_56988020" CREATED="1443613311877" MODIFIED="1443614745443">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Family name" ID="ID_1077567855" CREATED="1443613332444" MODIFIED="1443614745443">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="..." ID="ID_1496887912" CREATED="1443613878320" MODIFIED="1443614745443">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Position" ID="ID_859911088" CREATED="1443613540290" MODIFIED="1443614745443">
-<font NAME="Liberation Sans"/>
-<node TEXT="E.g. CEO" ID="ID_235375744" CREATED="1443613545536" MODIFIED="1443614745444">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Department" ID="ID_605205126" CREATED="1443615838426" MODIFIED="1443615841175"/>
-<node TEXT="Employee number" ID="ID_1199762778" CREATED="1443615811834" MODIFIED="1443615815312"/>
-<node TEXT="Phone extension" ID="ID_1374666498" CREATED="1443613759243" MODIFIED="1443614745444">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Email address" ID="ID_90310343" CREATED="1443613865639" MODIFIED="1443614745444">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Branch office" ID="ID_1786418186" CREATED="1443613348771" MODIFIED="1443614745444">
-<font NAME="Liberation Sans"/>
-<node TEXT="Link to table &quot;company branches&quot;" ID="ID_1167873625" CREATED="1443613466105" MODIFIED="1443614745444">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-</node>
-</node>
-<node TEXT="Change private address" ID="ID_1360628288" CREATED="1443603860821" MODIFIED="1443614745445">
-<font NAME="Liberation Sans"/>
-<node TEXT="Change personal data" ID="ID_1434819558" CREATED="1443606276531" MODIFIED="1443614745445">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Change contact data" ID="ID_878982916" CREATED="1443606281219" MODIFIED="1443614745445">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Change other data" ID="ID_1355809013" CREATED="1443606285454" MODIFIED="1443614745445">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Change commercial address" ID="ID_1382726824" CREATED="1443613937225" MODIFIED="1443614745445">
-<font NAME="Liberation Sans"/>
-<node TEXT="Change basic data" ID="ID_242566756" CREATED="1443613942486" MODIFIED="1443614745446">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Change HQ data" ID="ID_772799955" CREATED="1443613956416" MODIFIED="1443614745446">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Change branch data" ID="ID_1018325720" CREATED="1443613959662" MODIFIED="1443614745446">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Change employee data" ID="ID_977485094" CREATED="1443613963895" MODIFIED="1443614745446">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Delete address" ID="ID_1396643401" CREATED="1443603867958" MODIFIED="1443615342922">
-<font NAME="Liberation Sans"/>
-<node TEXT="Repeat CAPTCHA" ID="ID_26279124" CREATED="1443606502856" MODIFIED="1443614745447">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Only delete link between user and other address" ID="ID_300038113" CREATED="1443606518339" MODIFIED="1443615342922">
-<font NAME="Liberation Sans"/>
-<node TEXT="Make orphaned addresses visible to admin" ID="ID_1739291717" CREATED="1443606548393" MODIFIED="1443614745447">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-</node>
-<node TEXT="Change profile" ID="ID_1143534683" CREATED="1443603915078" MODIFIED="1443614745447">
-<font NAME="Liberation Sans"/>
-<node TEXT="Change own address data" ID="ID_1929504844" CREATED="1443606697593" MODIFIED="1443614745448">
-<font NAME="Liberation Sans"/>
-<node TEXT="Change personal data" ID="ID_432734086" CREATED="1443606859986" MODIFIED="1443614745448">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Change contatc data" ID="ID_1811870239" CREATED="1443606866249" MODIFIED="1443614745448">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Change other data" ID="ID_839480437" CREATED="1443606870406" MODIFIED="1443614745448">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Allways ask for current password for confirmation" ID="ID_1678829846" CREATED="1443606875453" MODIFIED="1443614745449">
-<icon BUILTIN="messagebox_warning"/>
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Change email address" ID="ID_981840682" CREATED="1443606707194" MODIFIED="1443614745449">
-<font NAME="Liberation Sans"/>
-<node TEXT="Ask current password for confirmation" ID="ID_1718603601" CREATED="1443606807749" MODIFIED="1443614745449">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Enter new email address twice" ID="ID_72530165" CREATED="1443606814979" MODIFIED="1443614745449">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Click &quot;Change address&quot; button" ID="ID_346444161" CREATED="1443606832296" MODIFIED="1443614745450">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Send confirmation mail to user" ID="ID_1735065305" CREATED="1443606847170" MODIFIED="1443614745450">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Change password" ID="ID_1904117050" CREATED="1443606711289" MODIFIED="1443614745450">
-<font NAME="Liberation Sans"/>
-<node TEXT="Ask current password for confirmation" ID="ID_1478767909" CREATED="1443606715993" MODIFIED="1443614745450">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Enter new password twice" ID="ID_433057323" CREATED="1443606724768" MODIFIED="1443614745450">
-<font NAME="Liberation Sans"/>
-<node TEXT="Show password strength?" ID="ID_1205091177" CREATED="1443606740329" MODIFIED="1443614745451">
-<icon BUILTIN="idea"/>
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Click &quot;Change password&quot; button" ID="ID_189042989" CREATED="1443606781346" MODIFIED="1443614745451">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Send notification to user" ID="ID_1386705864" CREATED="1443606821867" MODIFIED="1443614745451">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Change &quot;nickname page&quot;" ID="ID_1961520092" CREATED="1443614315748" MODIFIED="1443614745451">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Delete user profile" ID="ID_444577482" CREATED="1443606643219" MODIFIED="1443614745451">
-<font NAME="Liberation Sans"/>
-<node TEXT="Ask user&apos;s password for confirmation" ID="ID_79929552" CREATED="1443606650309" MODIFIED="1443614745452">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Repeat CAPTCHA" ID="ID_832548421" CREATED="1443606660566" MODIFIED="1443614745452">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Click &quot;Delete account&quot; button" ID="ID_1719618226" CREATED="1443606666408" MODIFIED="1443614745452">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Provide link to feedback form/forum" ID="ID_925651605" CREATED="1443606680378" MODIFIED="1443614745452">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Browse directory" ID="ID_1979883052" CREATED="1443603969171" MODIFIED="1443614745453">
-<font NAME="Liberation Sans"/>
-<node TEXT="Users can see community size" ID="ID_122422663" CREATED="1443606909204" MODIFIED="1443614745453">
-<icon BUILTIN="idea"/>
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Only user name / id is visible" ID="ID_1064378028" CREATED="1443614217053" MODIFIED="1443614745453">
-<font NAME="Liberation Sans"/>
-<node TEXT="User can change this in &quot;privay settings&quot;" ID="ID_1139938591" CREATED="1443614230365" MODIFIED="1443614745453">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Default: only user name / id" ID="ID_787857042" CREATED="1443614244924" MODIFIED="1443614745453">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Selection of possible contacts" ID="ID_1464064946" CREATED="1443606919086" MODIFIED="1443614745454">
-<font NAME="Liberation Sans"/>
-<node TEXT="User profile includes &quot;add as contact&quot;" ID="ID_547208367" CREATED="1443606936176" MODIFIED="1443614745454">
-<font NAME="Liberation Sans"/>
-<node TEXT="Added user must confirm this to expose his/her private data" ID="ID_35810868" CREATED="1443606961503" MODIFIED="1443614745454">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-</node>
-<node TEXT="Provide &quot;send message&quot; link" ID="ID_1801829478" CREATED="1443607011056" MODIFIED="1443614745454">
-<font NAME="Liberation Sans"/>
-<node TEXT="Always include CAPTCHA" ID="ID_1896287012" CREATED="1443607039152" MODIFIED="1443614745454">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="User&apos;s should be able to exclude them from directory" ID="ID_1290789264" CREATED="1443607044854" MODIFIED="1443614745455">
-<icon BUILTIN="messagebox_warning"/>
-<font NAME="Liberation Sans"/>
-<node TEXT="Maybe due to privacy" ID="ID_220987014" CREATED="1443607059900" MODIFIED="1443614745455">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Cannot be found by other users" ID="ID_611166265" CREATED="1443607073729" MODIFIED="1443614745455">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-</node>
-<node TEXT="Export data" ID="ID_403766429" CREATED="1443614001385" MODIFIED="1443614745455">
-<font NAME="Liberation Sans"/>
-<node TEXT="Own profile data" ID="ID_157498066" CREATED="1443614017965" MODIFIED="1443614745455">
-<font NAME="Liberation Sans"/>
-<node TEXT="Maybe VCARD?" ID="ID_264704598" CREATED="1443614023639" MODIFIED="1443614745456">
-<icon BUILTIN="idea"/>
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Address book" ID="ID_1526433448" CREATED="1443614083711" MODIFIED="1443614745456">
-<font NAME="Liberation Sans"/>
-<node TEXT="Which open formats?" ID="ID_852947609" CREATED="1443614089968" MODIFIED="1443614745456">
-<icon BUILTIN="xmag"/>
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Single contact" ID="ID_1141248852" CREATED="1443614147823" MODIFIED="1443614745456">
-<font NAME="Liberation Sans"/>
-<node TEXT="Maybe VCARD again?" ID="ID_994029825" CREATED="1443614158677" MODIFIED="1443614745457">
-<icon BUILTIN="idea"/>
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Whole company" ID="ID_672583327" CREATED="1443614183487" MODIFIED="1443614745457">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-</node>
-<node TEXT="Administrative user" ID="ID_903462380" CREATED="1443612395644" MODIFIED="1443614745457">
-<font NAME="Liberation Sans"/>
-<node TEXT="Overview" ID="ID_1117019377" CREATED="1443612403916" MODIFIED="1443614745457">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="User management" ID="ID_786303213" CREATED="1443612425096" MODIFIED="1443614745457">
-<font NAME="Liberation Sans"/>
-<node TEXT="Users must be managed separately to the container as they are a &quot;special account&quot;" ID="ID_1343868865" CREATED="1443614515867" MODIFIED="1443614745458">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-<node TEXT="Addressbook management" ID="ID_652271942" CREATED="1443612466578" MODIFIED="1443614745458">
-<font NAME="Liberation Sans"/>
-</node>
-<node TEXT="Address management" ID="ID_292202735" CREATED="1443612437259" MODIFIED="1443614745459">
-<font NAME="Liberation Sans"/>
-</node>
-</node>
-</node>
-</node>
-</map>
index bf2dfa241afbce987fc860fe38aabab5e52aed4b..1d48fff8e48eac22533e749af4091cb7fd83c3b5 100644 (file)
Binary files a/lib/jcontacts-business-core.jar and b/lib/jcontacts-business-core.jar differ
index b3bed2d5841c6440f4bffbf90de0469d878a9957..8385969c15904e0574ee34e6cc9cc2560cc24165 100644 (file)
Binary files a/lib/jcore.jar and b/lib/jcore.jar differ
diff --git a/lib/jpa20-persistence/javax.persistence-2.1.0-doc.zip b/lib/jpa20-persistence/javax.persistence-2.1.0-doc.zip
new file mode 100644 (file)
index 0000000..fd55e6e
Binary files /dev/null and b/lib/jpa20-persistence/javax.persistence-2.1.0-doc.zip differ
diff --git a/lib/jpa20-persistence/javax.persistence_2.1.0.v201304241213.jar b/lib/jpa20-persistence/javax.persistence_2.1.0.v201304241213.jar
new file mode 100644 (file)
index 0000000..841d2e1
Binary files /dev/null and b/lib/jpa20-persistence/javax.persistence_2.1.0.v201304241213.jar differ
diff --git a/lib/juser-core.jar b/lib/juser-core.jar
new file mode 100644 (file)
index 0000000..0923bea
Binary files /dev/null and b/lib/juser-core.jar differ
index cd344ffcaa888dc4263b658c8b466d4ce99e824e..1d739ec627a047b5623b9f355a81c42aaf15e9a1 100644 (file)
@@ -35,6 +35,7 @@ file.reference.jcontacts-core.jar=lib/jcontacts-core.jar
 file.reference.jcore-logger-lib.jar=lib/jcore-logger-lib.jar
 file.reference.jcore-swing.jar=lib/jcore-swing.jar
 file.reference.jcore.jar=lib/jcore.jar
+file.reference.juser-core.jar=lib\\juser-core.jar
 includes=**
 jar.archive.disabled=${jnlp.enabled}
 jar.compress=false
@@ -45,7 +46,9 @@ javac.classpath=\
     ${file.reference.jcore-logger-lib.jar}:\
     ${file.reference.jcontacts-core.jar}:\
     ${file.reference.jcontacts-business-core.jar}:\
-    ${libs.javaee-api-7.0.classpath}
+    ${file.reference.juser-core.jar}:\
+    ${libs.javaee-api-7.0.classpath}:\
+    ${libs.jpa20-persistence.classpath}
 # Space-separated list of extra javac options
 javac.compilerargs=-Xlint:deprecation -Xlint:unchecked
 javac.deprecation=true
@@ -99,5 +102,6 @@ source.reference.jcontacts-core.jar=../jcontacts-core/src/
 source.reference.jcore-logger-lib.jar=../jcore-logger-lib/src/
 source.reference.jcore-swing.jar=../jcore-swing/src
 source.reference.jcore.jar=../jcore/src
+source.reference.juser-core.jar=../juser-core/src/
 src.dir=src
 test.src.dir=test
diff --git a/src/org/mxchange/addressbook/model/addressbook/Addressbook.java b/src/org/mxchange/addressbook/model/addressbook/Addressbook.java
new file mode 100644 (file)
index 0000000..26a60b1
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2015 Roland Haeder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.addressbook.model.addressbook;
+
+import java.io.Serializable;
+
+/**
+ * A POJI for addressbooks
+ * <p>
+ * @author Roland Haeder
+ */
+public interface Addressbook extends Serializable {
+
+       /**
+        * Getter for id number
+        * <p>
+        * @return Id number
+        */
+       public Long getAddressbookId ();
+
+       /**
+        * Setter for id number
+        * <p>
+        * @param addressbookId Id number
+        */
+       public void setAddressbookId (final Long addressbookId);
+
+}
diff --git a/src/org/mxchange/addressbook/model/addressbook/AddressbookSessionBeanRemote.java b/src/org/mxchange/addressbook/model/addressbook/AddressbookSessionBeanRemote.java
new file mode 100644 (file)
index 0000000..d0806bd
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2015 Roland Haeder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.addressbook.model.addressbook;
+
+import java.io.Serializable;
+import javax.ejb.Remote;
+
+/**
+ * A remote session interface for addressbook handling
+ * <p>
+ * @author Roland Haeder
+ */
+@Remote
+public interface AddressbookSessionBeanRemote extends Serializable {
+}
diff --git a/src/org/mxchange/addressbook/model/addressbook/UserAddressbook.java b/src/org/mxchange/addressbook/model/addressbook/UserAddressbook.java
new file mode 100644 (file)
index 0000000..b2d8ee4
--- /dev/null
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2015 Roland Haeder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.addressbook.model.addressbook;
+
+import java.util.Calendar;
+import javax.persistence.Basic;
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+import org.mxchange.addressbook.model.addressbook.status.AddressbokStatus;
+import org.mxchange.jusercore.model.user.LoginUser;
+import org.mxchange.jusercore.model.user.User;
+
+/**
+ * A POJO for user addressbooks
+ * <p>
+ * @author Roland Haeder
+ */
+@Entity (name = "addressbooks")
+@Table (name = "addressbooks")
+public class UserAddressbook implements Addressbook, Comparable<Addressbook> {
+
+       /**
+        * Serial number
+        */
+       private static final long serialVersionUID = 176_573_148_678_169L;
+
+       /**
+        * Id number
+        */
+       @Id
+       @GeneratedValue (strategy = GenerationType.IDENTITY)
+       @Column (name = "addressbook_id", length = 20, nullable = false, updatable = false)
+       private Long addressbookId;
+
+       /**
+        * Connection to "users" table
+        */
+       @JoinColumn (name = "addressbook_user_id", nullable = false)
+       @OneToOne (targetEntity = LoginUser.class, optional = false, cascade = CascadeType.ALL)
+       private User addressbookUser;
+
+       /**
+        * When this address book has been created
+        */
+       @Basic (optional = false)
+       @Temporal (TemporalType.TIMESTAMP)
+       @Column (name = "addressbook_created", nullable = false, updatable = false)
+       private Calendar addressbookCreated;
+
+       /**
+        * Adress book status
+        */
+       @Basic (optional = false)
+       @Enumerated (EnumType.STRING)
+       @Column (name = "addressbook_status", nullable = false, length = 10)
+       private AddressbokStatus addressbookStatus;
+
+       /**
+        * Name for this address book
+        */
+       @Basic (optional = false)
+       @Column (name = "addressbook_name", length = 50, nullable = false)
+       private String addressbookName;
+
+       @Override
+       public int compareTo (final Addressbook addressbook) {
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+       }
+
+       @Override
+       public Long getAddressbookId () {
+               return this.addressbookId;
+       }
+
+       @Override
+       public void setAddressbookId (final Long addressbookId) {
+               this.addressbookId = addressbookId;
+       }
+
+}
diff --git a/src/org/mxchange/addressbook/model/addressbook/entry/AddressbookEntry.java b/src/org/mxchange/addressbook/model/addressbook/entry/AddressbookEntry.java
new file mode 100644 (file)
index 0000000..6984d6f
--- /dev/null
@@ -0,0 +1,133 @@
+/*
+ * Copyright (C) 2015 Roland Haeder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.addressbook.model.addressbook.entry;
+
+import java.io.Serializable;
+import java.util.Calendar;
+import java.util.List;
+import org.mxchange.addressbook.model.addressbook.Addressbook;
+import org.mxchange.jcontacts.contact.Contact;
+import org.mxchange.jcontactsbusiness.BusinessContact;
+import org.mxchange.jusercore.model.user.User;
+
+/**
+ * A POJI for addressbook entries
+ * <p>
+ * @author Roland Haeder
+ */
+public interface AddressbookEntry extends Serializable {
+
+       /**
+        * Getter for id number
+        * <p>
+        * @return Id number
+        */
+       public Long getAddressbookEntryId ();
+
+       /**
+        * Setter for id number
+        * <p>
+        * @param addressbookEntryId Id number
+        */
+       public void setAddressbookEntryId (final Long addressbookEntryId);
+
+       /**
+        * Getter for business contact
+        * <p>
+        * @return Business contact
+        */
+       public BusinessContact getAddressbookEntryBusinessContact ();
+
+       /**
+        * Setter for business contact
+        * <p>
+        * @param addressbookEntryBusinessContact Business contact
+        */
+       public void setAddressbookEntryBusinessContact (final BusinessContact addressbookEntryBusinessContact);
+
+       /**
+        * Getter for entry created timestamp
+        * <p>
+        * @return Entry created timestamp
+        */
+       public Calendar getAddressbookEntryCreated ();
+
+       /**
+        * Setter for entry created timestamp
+        * <p>
+        * @param addressbookEntryCreated Entry created timestamp
+        */
+       public void setAddressbookEntryCreated (final Calendar addressbookEntryCreated);
+
+       /**
+        * Getter for private contact
+        * <p>
+        * @return Private contact
+        */
+       public Contact getAddressbookEntryPrivateContact ();
+
+       /**
+        * Setter for private contact
+        * <p>
+        * @param addressbookEntryPrivateContact Private contact
+        */
+       public void setAddressbookEntryPrivateContact (final Contact addressbookEntryPrivateContact);
+
+       /**
+        * Getter for user who has added this entry to his/her addressbook
+        * <p>
+        * @return User who has added this entry
+        */
+       public List<User> getAddressbookEntryUserAddedList ();
+
+       /**
+        * Setter for user who has added this entry to his/her addressbook
+        * <p>
+        * @param addressbookEntryUserAdded User who has added this entry
+        */
+       public void setAddressbookEntryUserAddedList (final List<User> addressbookEntryUserAdded);
+
+       /**
+        * Getter for user who has initially created the address book entry
+        * <p>
+        * @return User who has created initially this address book entry
+        */
+       public List<User> getAddressbookEntryUserOriginList ();
+
+       /**
+        * Setter for user who has initially created the address book entry
+        * <p>
+        * @param addressbookEntryUserOrigin User who has created initially this
+        * address book entry
+        */
+       public void setAddressbookEntryUserOriginList (final List<User> addressbookEntryUserOrigin);
+
+       /**
+        * Getter for address book
+        * <p>
+        * @return Address book
+        */
+       public Addressbook getAddressbookId ();
+
+       /**
+        * Setter for address book
+        * <p>
+        * @param addressbookId Address book
+        */
+       public void setAddressbookId (final Addressbook addressbookId);
+
+}
diff --git a/src/org/mxchange/addressbook/model/addressbook/entry/UserAddressbookEntry.java b/src/org/mxchange/addressbook/model/addressbook/entry/UserAddressbookEntry.java
new file mode 100644 (file)
index 0000000..a2d543d
--- /dev/null
@@ -0,0 +1,184 @@
+/*
+ * Copyright (C) 2015 Roland Haeder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.addressbook.model.addressbook.entry;
+
+import java.util.Calendar;
+import java.util.List;
+import javax.persistence.Basic;
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToMany;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+import org.mxchange.addressbook.model.addressbook.Addressbook;
+import org.mxchange.addressbook.model.addressbook.UserAddressbook;
+import org.mxchange.jcontacts.contact.Contact;
+import org.mxchange.jcontacts.contact.UserContact;
+import org.mxchange.jcontactsbusiness.BusinessContact;
+import org.mxchange.jcontactsbusiness.CompanyContact;
+import org.mxchange.jusercore.model.user.LoginUser;
+import org.mxchange.jusercore.model.user.User;
+
+/**
+ * A POJO for address book entries
+ * <p>
+ * @author Roland Haeder
+ */
+@Entity (name = "addressbook_entries")
+@Table (name = "addressbook_entries")
+public class UserAddressbookEntry implements AddressbookEntry, Comparable<AddressbookEntry> {
+
+       /**
+        * Serial number
+        */
+       private static final long serialVersionUID = 178_581_768_581_960L;
+
+       /**
+        * Id number
+        */
+       @Id
+       @GeneratedValue (strategy = GenerationType.IDENTITY)
+       @Column (name = "addressbook_entry_id", nullable = false, updatable = false)
+       private Long addressbookEntryId;
+
+       /**
+        * When this address book entry has been created
+        */
+       @Basic (optional = false)
+       @Temporal (TemporalType.TIMESTAMP)
+       @Column (name = "addressbook_entry_created", nullable = false, updatable = false)
+       private Calendar addressbookEntryCreated;
+
+       /**
+        * Connection to table "addressbooks"
+        */
+       @JoinColumn (name = "addressbook_id", nullable = false, updatable = false)
+       @OneToOne (targetEntity = UserAddressbook.class, optional = false, cascade = CascadeType.ALL)
+       private Addressbook addressbookId;
+
+       /**
+        * Connection to table "users" (who has initially created this entry
+        */
+       @JoinColumn (name = "addressbook_entry_origin_user_id", nullable = false, updatable = false)
+       @ManyToOne (targetEntity = LoginUser.class, optional = false, cascade = CascadeType.ALL)
+       private List<User> addressbookEntryUserOriginList;
+
+       /**
+        * Connection to table "users" (who has added this entry)
+        */
+       @JoinColumn (name = "addressbook_entry_added_user_id", updatable = false)
+       @OneToMany (targetEntity = LoginUser.class, cascade = CascadeType.ALL)
+       private List<User> addressbookEntryUserAddedList;
+
+       /**
+        * Connection to table "contacts" (private contacts)
+        */
+       @JoinColumn (name = "addressbook_entry_private_contact_id", updatable = false)
+       @OneToOne (targetEntity = UserContact.class, cascade = CascadeType.ALL)
+       private Contact addressbookEntryPrivateContact;
+
+       /**
+        * Connection to table "business_contacts" (commercial contacts)
+        */
+       @JoinColumn (name = "addressbook_entry_business_contact_id", updatable = false)
+       @OneToOne (targetEntity = CompanyContact.class, cascade = CascadeType.ALL)
+       private BusinessContact addressbookEntryBusinessContact;
+
+       @Override
+       public int compareTo (final AddressbookEntry addressbookEntry) {
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+       }
+
+       @Override
+       public BusinessContact getAddressbookEntryBusinessContact () {
+               return this.addressbookEntryBusinessContact;
+       }
+
+       @Override
+       public void setAddressbookEntryBusinessContact (final BusinessContact addressbookEntryBusinessContact) {
+               this.addressbookEntryBusinessContact = addressbookEntryBusinessContact;
+       }
+
+       @Override
+       public Calendar getAddressbookEntryCreated () {
+               return this.addressbookEntryCreated;
+       }
+
+       @Override
+       public void setAddressbookEntryCreated (final Calendar addressbookEntryCreated) {
+               this.addressbookEntryCreated = addressbookEntryCreated;
+       }
+
+       @Override
+       public Long getAddressbookEntryId () {
+               return this.addressbookEntryId;
+       }
+
+       @Override
+       public void setAddressbookEntryId (final Long addressbookEntryId) {
+               this.addressbookEntryId = addressbookEntryId;
+       }
+
+       @Override
+       public Contact getAddressbookEntryPrivateContact () {
+               return this.addressbookEntryPrivateContact;
+       }
+
+       @Override
+       public void setAddressbookEntryPrivateContact (final Contact addressbookEntryPrivateContact) {
+               this.addressbookEntryPrivateContact = addressbookEntryPrivateContact;
+       }
+
+       @Override
+       public List<User> getAddressbookEntryUserAddedList () {
+               return this.addressbookEntryUserAddedList;
+       }
+
+       @Override
+       public void setAddressbookEntryUserAddedList (final List<User> addressbookEntryUserAddedList) {
+               this.addressbookEntryUserAddedList = addressbookEntryUserAddedList;
+       }
+
+       @Override
+       public List<User> getAddressbookEntryUserOriginList () {
+               return this.addressbookEntryUserOriginList;
+       }
+
+       @Override
+       public void setAddressbookEntryUserOriginList (final List<User> addressbookEntryUserOriginList) {
+               this.addressbookEntryUserOriginList = addressbookEntryUserOriginList;
+       }
+
+       @Override
+       public Addressbook getAddressbookId () {
+               return this.addressbookId;
+       }
+
+       @Override
+       public void setAddressbookId (final Addressbook addressbookId) {
+               this.addressbookId = addressbookId;
+       }
+
+}
diff --git a/src/org/mxchange/addressbook/model/addressbook/status/AddressbokStatus.java b/src/org/mxchange/addressbook/model/addressbook/status/AddressbokStatus.java
new file mode 100644 (file)
index 0000000..14be56f
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2015 Roland Haeder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.addressbook.model.addressbook.status;
+
+import java.io.Serializable;
+
+/**
+ * An enum for the addressbook status
+ * <p>
+ * @author Roland Haeder
+ */
+public enum AddressbokStatus implements Serializable {
+
+       /**
+        * When the addressbook is unlocked
+        */
+       UNLOCKED("ADDRESSBOOK_STATUS_UNLOCKED"), //NOI18N
+
+       /**
+        * When the addressbook is locked by administrator
+        */
+       LOCKED("ADDRESSBOOK_STATUS_LOCKED"); //NOI18N
+
+       /**
+        * Message key
+        */
+       private final String messageKey;
+
+       /**
+        * Constructor
+        * <p>
+        * @param messageKey Message key for this enum
+        */
+       private AddressbokStatus (final String messageKey) {
+               this.messageKey = messageKey;
+       }
+
+       /**
+        * Getter for message key
+        * <p>
+        * @return Message key
+        */
+       public String getMessageKey () {
+               return this.messageKey;
+       }
+}
diff --git a/src/org/mxchange/addressbook/model/addressbooks/AddressbookSessionBeanRemote.java b/src/org/mxchange/addressbook/model/addressbooks/AddressbookSessionBeanRemote.java
deleted file mode 100644 (file)
index 93e6bb3..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2015 Roland Haeder
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-package org.mxchange.addressbook.model.addressbooks;
-
-import java.io.Serializable;
-import javax.ejb.Remote;
-
-/**
- * A remote session interface for addressbook handling
- * <p>
- * @author Roland Haeder
- */
-@Remote
-public interface AddressbookSessionBeanRemote extends Serializable {
-}