/*
- * Copyright (C) 2016 Roland Haeder
+ * Copyright (C) 2016, 2017 Roland Häder
*
* 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
import java.io.Serializable;
import javax.ejb.Remote;
import org.mxchange.jcontacts.contact.Contact;
-import org.mxchange.jphone.exceptions.CellphoneNotLinkedException;
-import org.mxchange.jphone.phonenumbers.cellphone.DialableCellphoneNumber;
+import org.mxchange.jphone.exceptions.PhoneNumberAlreadyLinkedException;
+import org.mxchange.jphone.exceptions.PhoneNumberNotLinkedException;
+import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber;
+import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
+import org.mxchange.jphone.phonenumbers.mobile.DialableMobileNumber;
/**
* A remote interface for administrative purposes around contact's phone numbers
* (any type).
* <p>
- * @author Roland Haeder<roland@mxchange.org>
+ * @author Roland Häder<roland@mxchange.org>
*/
@Remote
public interface AdminContactsPhoneSessionBeanRemote extends Serializable {
/**
- * Unlinks cell phone data from given contact and returns the updated
- * (detached?) version.
+ * Links existing fax number with given contact instance. The id number
+ * should be set.
* <p>
- * @param contact Contact to unlink cell phone instance
- * @param cellphoneNumber Cell phone number being unlinked
+ * @param contact Contact to link to
+ * @param faxNumber Fax number to link
+ * <p>
+ * @return Updated contact
+ * <p>
+ * @throws PhoneNumberAlreadyLinkedException If a fax number is already
+ * linked in contact
+ */
+ Contact linkExistingFaxNumberWithContact (final Contact contact, final DialableFaxNumber faxNumber) throws PhoneNumberAlreadyLinkedException;
+
+ /**
+ * Links existing land-line number with given contact instance. The id
+ * number should be set.
+ * <p>
+ * @param contact Contact to link to
+ * @param landLineNumber Land-line number to link
+ * <p>
+ * @return Updated contact
+ * <p>
+ * @throws PhoneNumberAlreadyLinkedException If a land-line number is
+ * already linked in contact
+ */
+ Contact linkExistingLandLineNumberWithContact (final Contact contact, final DialableLandLineNumber landLineNumber) throws PhoneNumberAlreadyLinkedException;
+
+ /**
+ * Links existing mobile number with given contact instance. The id number
+ * should be set.
+ * <p>
+ * @param contact Contact to link to
+ * @param mobileNumber Mobile number to link
+ * <p>
+ * @return Updated contact
+ * <p>
+ * @throws PhoneNumberAlreadyLinkedException If a mobile number is already
+ * linked in contact
+ */
+ Contact linkExistingMobileNumberWithContact (final Contact contact, final DialableMobileNumber mobileNumber) throws PhoneNumberAlreadyLinkedException;
+
+ /**
+ * Links new fax number with given contact instance. The id number should
+ * NOT be set.
+ * <p>
+ * @param contact Contact to link to
+ * @param faxNumber Fax number to link
+ * <p>
+ * @return Updated contact
+ * <p>
+ * @throws PhoneNumberAlreadyLinkedException If a fax number is already
+ * linked in contact
+ */
+ Contact linkNewFaxNumberWithContact (final Contact contact, final DialableFaxNumber faxNumber) throws PhoneNumberAlreadyLinkedException;
+
+ /**
+ * Links new land-line number with given contact instance. The id number
+ * should NOT be set.
+ * <p>
+ * @param contact Contact to link to
+ * @param landLineNumber Land-line number to link
+ * <p>
+ * @return Updated contact
+ * <p>
+ * @throws PhoneNumberAlreadyLinkedException If a land-line number is
+ * already linked in contact
+ */
+ Contact linkNewLandLineNumberWithContact (final Contact contact, final DialableLandLineNumber landLineNumber) throws PhoneNumberAlreadyLinkedException;
+
+ /**
+ * Links new mobile number with given contact instance. The id number should
+ * NOT be set.
+ * <p>
+ * @param contact Contact to link to
+ * @param mobileNumber Mobile number to link
+ * <p>
+ * @return Updated contact
+ * <p>
+ * @throws PhoneNumberAlreadyLinkedException If a mobile number is already
+ * linked in contact
+ */
+ Contact linkNewMobileNumberWithContact (final Contact contact, final DialableMobileNumber mobileNumber) throws PhoneNumberAlreadyLinkedException;
+
+ /**
+ * Unlinks fax data from given contact and returns the updated (managed)
+ * version.
+ * <p>
+ * @param contact Contact to unlink mobile instance
+ * @param faxNumber Fax number being unlinked
+ * <p>
+ * @return Updated contact instance
+ * <p>
+ * @throws PhoneNumberNotLinkedException If a mobile instance is not linked
+ * (null) with this contact
+ */
+ Contact unlinkFaxDataFromContact (final Contact contact, final DialableFaxNumber faxNumber) throws PhoneNumberNotLinkedException;
+
+ /**
+ * Unlinks land-line data from given contact and returns the updated
+ * (managed) version.
+ * <p>
+ * @param contact Contact to unlink mobile instance
+ * @param landLineNumber Land-line number being unlinked
+ * <p>
+ * @return Updated contact instance
+ * <p>
+ * @throws PhoneNumberNotLinkedException If a mobile instance is not linked
+ * (null) with this contact
+ */
+ Contact unlinkLandLineDataFromContact (final Contact contact, final DialableLandLineNumber landLineNumber) throws PhoneNumberNotLinkedException;
+
+ /**
+ * Unlinks mobile data from given contact and returns the updated (managed)
+ * version.
+ * <p>
+ * @param contact Contact to unlink mobile instance
+ * @param mobileNumber Mobile number being unlinked
* <p>
* @return Updated contact instance
* <p>
- * @throws CellphoneNotLinkedException If a cell phone instance is not
- * linked (null) with this contact
+ * @throws PhoneNumberNotLinkedException If a mobile instance is not linked
+ * (null) with this contact
*/
- Contact unlinkCellphoneDataFromContact (final Contact contact, final DialableCellphoneNumber cellphoneNumber) throws CellphoneNotLinkedException;
+ Contact unlinkMobileDataFromContact (final Contact contact, final DialableMobileNumber mobileNumber) throws PhoneNumberNotLinkedException;
}