From: Roland Haeder <roland@mxchange.org> Date: Fri, 9 Oct 2015 12:20:26 +0000 (+0200) Subject: Continued: X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=68b81ac2a90af4ca3733bc6148eca4c62018fc37;p=addressbook-lib.git Continued: - 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> --- diff --git a/docs/mindmaps/Addressbook Application.mm b/docs/mindmaps/Addressbook Application.mm deleted file mode 100644 index 677e988..0000000 --- a/docs/mindmaps/Addressbook Application.mm +++ /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> 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&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 "Register" 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 "Login" 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 "Restore password" 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 "Change password" 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 "Resend" 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'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 "choose this contact" 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: "company data"" 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 "type"" 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'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: "company hq"" 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 "company branches"" 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: "company employee"" 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 "contacts"" ID="ID_1308367743" CREATED="1443613431339" MODIFIED="1443614745442"> -<font NAME="Liberation Sans"/> -</node> -<node TEXT=""Add user as employee" 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 "company branches"" 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 "Change address" 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 "Change password" 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 "nickname page"" 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'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 "Delete account" 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 "privay settings"" 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 "add as contact"" 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 "send message" 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'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 "special account"" 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> diff --git a/lib/jcontacts-business-core.jar b/lib/jcontacts-business-core.jar index bf2dfa2..1d48fff 100644 Binary files a/lib/jcontacts-business-core.jar and b/lib/jcontacts-business-core.jar differ diff --git a/lib/jcore.jar b/lib/jcore.jar index b3bed2d..8385969 100644 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 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 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 index 0000000..0923bea Binary files /dev/null and b/lib/juser-core.jar differ diff --git a/nbproject/project.properties b/nbproject/project.properties index cd344ff..1d739ec 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -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 index 0000000..26a60b1 --- /dev/null +++ b/src/org/mxchange/addressbook/model/addressbook/Addressbook.java @@ -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 index 0000000..d0806bd --- /dev/null +++ b/src/org/mxchange/addressbook/model/addressbook/AddressbookSessionBeanRemote.java @@ -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 index 0000000..b2d8ee4 --- /dev/null +++ b/src/org/mxchange/addressbook/model/addressbook/UserAddressbook.java @@ -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 index 0000000..6984d6f --- /dev/null +++ b/src/org/mxchange/addressbook/model/addressbook/entry/AddressbookEntry.java @@ -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 index 0000000..a2d543d --- /dev/null +++ b/src/org/mxchange/addressbook/model/addressbook/entry/UserAddressbookEntry.java @@ -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 index 0000000..14be56f --- /dev/null +++ b/src/org/mxchange/addressbook/model/addressbook/status/AddressbokStatus.java @@ -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 index 93e6bb3..0000000 --- a/src/org/mxchange/addressbook/model/addressbooks/AddressbookSessionBeanRemote.java +++ /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 { -}