use of de.janrufmonitor.framework.ICallerList in project janrufmonitor by tbrandt77.
the class NewAction method run.
public void run() {
Viewer v = this.m_app.getApplication().getViewer();
if (v != null && v instanceof TreeViewer) {
ICaller newCaller = openCallerWizard(null);
if (newCaller != null) {
ICallerList l = this.getRuntime().getCallerFactory().createCallerList(1);
l.add(newCaller);
this.m_app.getController().addElements(l);
this.m_app.updateViews(true);
}
}
}
use of de.janrufmonitor.framework.ICallerList in project janrufmonitor by tbrandt77.
the class MacAddressBookProxy method getContactsByAreaCode.
@SuppressWarnings("unchecked")
public synchronized ICallerList getContactsByAreaCode(String countrycode, String areacode) throws MacAddressBookProxyException {
this.m_total = 0;
this.m_current = 0;
final ICallerList callers = getRuntime().getCallerFactory().createCallerList();
if (this.m_dbh != null) {
try {
List uuids = this.m_dbh.select(countrycode, areacode);
if (uuids.size() > 0) {
List contacts = getRecordsByUIDs(uuids);
if (contacts.size() > 0) {
this.m_total = contacts.size();
ICaller businessCaller, privateCaller = null;
for (Object contact : contacts) {
if (contact instanceof Map<?, ?>) {
this.m_current++;
privateCaller = MacAddressBookMappingManager.getInstance().mapToJamCaller((Map<?, ?>) contact, new PrivateMacAddressBookMapping());
businessCaller = MacAddressBookMappingManager.getInstance().mapToJamCaller((Map<?, ?>) contact, new BusinessMacAddressBookMapping());
if (privateCaller == null && businessCaller != null && this.containsCountryAndAreaCode(businessCaller, countrycode, areacode)) {
callers.add(businessCaller);
}
if (privateCaller != null && businessCaller == null && this.containsCountryAndAreaCode(privateCaller, countrycode, areacode)) {
callers.add(privateCaller);
}
if (privateCaller != null && businessCaller != null) {
if (((IMultiPhoneCaller) businessCaller).getPhonenumbers().size() == 1) {
// only one entry available
IPhonenumber pn = (IPhonenumber) ((IMultiPhoneCaller) businessCaller).getPhonenumbers().get(0);
IAttribute numbertype = businessCaller.getAttribute(IMacAddressBookNumberMapping.MAPPING_ATTTRIBUTE_ID + pn.getTelephoneNumber());
if (numbertype != null && numbertype.getValue().equalsIgnoreCase(IMacAddressBookConst.MOBILE)) {
this.m_logger.info("Bussiness caller will be dropped. Only mobile number available, but still in private contact: " + businessCaller);
businessCaller = null;
}
}
if (((IMultiPhoneCaller) privateCaller).getPhonenumbers().size() == 1 && businessCaller != null) {
// only one entry available
IPhonenumber pn = (IPhonenumber) ((IMultiPhoneCaller) privateCaller).getPhonenumbers().get(0);
IAttribute numbertype = privateCaller.getAttribute(IMacAddressBookNumberMapping.MAPPING_ATTTRIBUTE_ID + pn.getTelephoneNumber());
if (numbertype != null && numbertype.getValue().equalsIgnoreCase(IMacAddressBookConst.MOBILE)) {
this.m_logger.info("Private caller will be dropped. Only mobile number available, but still in business contact: " + privateCaller);
privateCaller = null;
}
}
if (privateCaller != null && this.containsCountryAndAreaCode(privateCaller, countrycode, areacode)) {
callers.add(privateCaller);
}
if (businessCaller != null && this.containsCountryAndAreaCode(businessCaller, countrycode, areacode)) {
callers.add(businessCaller);
}
}
}
}
}
}
} catch (SQLException e) {
this.m_logger.log(Level.SEVERE, e.getMessage(), e);
}
}
if (callers.size() > 0) {
Thread updateDbhThread = new Thread() {
public void run() {
updateProxyDatabase(callers);
}
};
updateDbhThread.setName("JAM-MacAddressBookSync-Thread-(deamon)");
updateDbhThread.start();
}
return callers;
}
use of de.janrufmonitor.framework.ICallerList in project janrufmonitor by tbrandt77.
the class MacAddressBookProxy method preload.
public void preload() throws MacAddressBookProxyException {
final ICallerList callers = getRuntime().getCallerFactory().createCallerList();
List<Object> ac = this.getRawMacContacts();
if (ac == null)
return;
ICaller businessCaller, privateCaller = null;
for (Object contact : ac) {
if (contact instanceof Map<?, ?>) {
privateCaller = MacAddressBookMappingManager.getInstance().mapToJamCaller((Map<?, ?>) contact, new PrivateMacAddressBookMapping());
businessCaller = MacAddressBookMappingManager.getInstance().mapToJamCaller((Map<?, ?>) contact, new BusinessMacAddressBookMapping());
if (businessCaller != null) {
callers.add(businessCaller);
}
if (privateCaller != null) {
callers.add(privateCaller);
}
}
}
if (callers.size() > 0) {
Thread updateDbhThread = new Thread() {
public void run() {
updateProxyDatabase(callers);
}
};
updateDbhThread.setName("JAM-MacAddressBookSync-Thread-(deamon)");
updateDbhThread.start();
}
}
use of de.janrufmonitor.framework.ICallerList in project janrufmonitor by tbrandt77.
the class MacAddressBookProxy method getContactsByCharAttribute.
@SuppressWarnings("unchecked")
public synchronized ICallerList getContactsByCharAttribute(IAttribute charAttribute) throws MacAddressBookProxyException {
this.m_total = 0;
this.m_current = 0;
final ICallerList callers = getRuntime().getCallerFactory().createCallerList();
if (this.m_dbh != null) {
try {
List uuids = this.m_dbh.select(charAttribute);
if (uuids.size() > 0) {
List contacts = getRecordsByUIDs(uuids);
if (contacts.size() > 0) {
this.m_total = contacts.size();
ICaller businessCaller, privateCaller = null;
for (Object contact : contacts) {
if (contact instanceof Map<?, ?>) {
this.m_current++;
privateCaller = MacAddressBookMappingManager.getInstance().mapToJamCaller((Map<?, ?>) contact, new PrivateMacAddressBookMapping());
businessCaller = MacAddressBookMappingManager.getInstance().mapToJamCaller((Map<?, ?>) contact, new BusinessMacAddressBookMapping());
if (privateCaller != null && businessCaller != null) {
// check if firstname, lastname or additional is filled or not
if (privateCaller.getAttribute(IJAMConst.ATTRIBUTE_NAME_FIRSTNAME) == null && privateCaller.getAttribute(IJAMConst.ATTRIBUTE_NAME_LASTNAME) == null && privateCaller.getAttribute(IJAMConst.ATTRIBUTE_NAME_ADDITIONAL) == null) {
((IMultiPhoneCaller) businessCaller).getPhonenumbers().addAll(((IMultiPhoneCaller) privateCaller).getPhonenumbers());
privateCaller = null;
}
if (businessCaller.getAttribute(IJAMConst.ATTRIBUTE_NAME_FIRSTNAME) == null && businessCaller.getAttribute(IJAMConst.ATTRIBUTE_NAME_LASTNAME) == null && businessCaller.getAttribute(IJAMConst.ATTRIBUTE_NAME_ADDITIONAL) == null) {
((IMultiPhoneCaller) privateCaller).getPhonenumbers().addAll(((IMultiPhoneCaller) businessCaller).getPhonenumbers());
businessCaller = null;
}
}
if (businessCaller != null) {
callers.add(businessCaller);
}
if (privateCaller != null) {
callers.add(privateCaller);
}
}
}
}
}
} catch (SQLException e) {
this.m_logger.log(Level.SEVERE, e.getMessage(), e);
}
}
if (callers.size() > 0) {
Thread updateDbhThread = new Thread() {
public void run() {
updateProxyDatabase(callers);
}
};
updateDbhThread.setName("JAM-MacAddressBookSync-Thread-(deamon)");
updateDbhThread.start();
}
return callers;
}
use of de.janrufmonitor.framework.ICallerList in project janrufmonitor by tbrandt77.
the class UpdateCallerList method handleWithException.
public void handleWithException(IHttpRequest req, IMutableHttpResponse resp) throws HandlerException {
ICallerManager mgr = null;
String manager = null;
try {
manager = req.getParameter(UpdateCallerList.PARAMETER_CALLERMANAGER);
} catch (Exception e) {
throw new HandlerException(e.getMessage(), 500);
}
if (manager == null)
mgr = this.getRuntime().getCallerManagerFactory().getDefaultCallerManager();
if (manager != null && manager.length() > 0)
mgr = this.getRuntime().getCallerManagerFactory().getCallerManager(manager);
if (mgr == null || !mgr.isActive() || !mgr.isSupported(IWriteCallerRepository.class)) {
throw new HandlerException("Requested Callermanager does not exist or is not active.", 404);
}
ICallerList l;
try {
l = XMLSerializer.toCallerList(this.getPostData(req));
if (l != null) {
this.m_logger.info("Updating caller list with " + l.size() + " entries.");
for (int i = 0, j = l.size(); i < j; i++) ((IWriteCallerRepository) mgr).updateCaller(l.get(i));
resp.getContentStreamForWrite().close();
} else {
this.m_logger.severe("Invalid caller list transfered from client.");
throw new HandlerException("Invalid caller list transfered from client.", 500);
}
} catch (Exception e) {
throw new HandlerException(e.getMessage(), 500);
}
}
Aggregations