blob: 0a09c0f13c720e64f472e62cff7b44f46ea7997a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012 Ericsson AB and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Ericsson AB - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.reviews.r4e.ui.internal.utils;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.mylyn.reviews.notifications.core.IMeetingData;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EMeetingData;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.Persistence.ResourceUpdater;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
import org.eclipse.mylyn.reviews.r4e.ui.R4EUIPlugin;
import org.eclipse.mylyn.reviews.r4e.ui.internal.model.R4EUIModelController;
/**
* This class implements the IMeetingData interface used in the notifications plugin
*
* @author Sebastien Dubois
* @version $Revision: 1.0 $
*/
public class R4EUIMeetingData implements IMeetingData {
// ------------------------------------------------------------------------
// Members
// ------------------------------------------------------------------------
private final R4EMeetingData fMeetingData;
private final ResourceUpdater fResUpdater = R4EUIModelController.FResourceUpdater;
// ------------------------------------------------------------------------
// Contructor
// ------------------------------------------------------------------------
/**
* R4EUIMeetingData constructor
*
* @param aMeetingData
*/
public R4EUIMeetingData(R4EMeetingData aMeetingData) {
fMeetingData = aMeetingData;
}
// ------------------------------------------------------------------------
// Methods
// ------------------------------------------------------------------------
/**
* Method getSentCounter
*
* @return int
*/
public int getSentCounter() {
return fMeetingData.getSentCount();
}
/**
* Method incrementSentCounter
*/
public void incrementSentCounter() {
try {
final Long bookNum = fResUpdater.checkOut(fMeetingData, R4EUIModelController.getReviewer());
fMeetingData.setSentCount(fMeetingData.getSentCount() + 1);
fResUpdater.checkIn(bookNum);
} catch (ResourceHandlingException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
} catch (OutOfSyncException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
}
}
/**
* Method clearSentCounter
*/
public void clearSentCounter() {
try {
final Long bookNum = fResUpdater.checkOut(fMeetingData, R4EUIModelController.getReviewer());
fMeetingData.setSentCount(0);
fResUpdater.checkIn(bookNum);
} catch (ResourceHandlingException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
} catch (OutOfSyncException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
}
}
/**
* Method getCustomID
*
* @return String
*/
public String getCustomID() {
return fMeetingData.getId();
}
/**
* Method setCustomID
*
* @param aId
* - String
*/
public void setCustomID(String aId) {
try {
final Long bookNum = fResUpdater.checkOut(fMeetingData, R4EUIModelController.getReviewer());
fMeetingData.setId(aId);
fResUpdater.checkIn(bookNum);
} catch (ResourceHandlingException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
} catch (OutOfSyncException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
}
}
/**
* Method getSubject
*
* @return String
*/
public String getSubject() {
return fMeetingData.getSubject();
}
/**
* Method setSubject
*
* @param aSubject
* - String
*/
public void setSubject(String aSubject) {
try {
final Long bookNum = fResUpdater.checkOut(fMeetingData, R4EUIModelController.getReviewer());
fMeetingData.setSubject(aSubject);
fResUpdater.checkIn(bookNum);
} catch (ResourceHandlingException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
} catch (OutOfSyncException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
}
}
/**
* Method getBody
*
* @return String
*/
public String getBody() {
return fMeetingData.getBody();
}
/**
* Method setBody
*
* @param aBody
* - String
*/
public void setBody(String aBody) {
try {
final Long bookNum = fResUpdater.checkOut(fMeetingData, R4EUIModelController.getReviewer());
fMeetingData.setBody(aBody);
fResUpdater.checkIn(bookNum);
} catch (ResourceHandlingException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
} catch (OutOfSyncException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
}
}
/**
* Method getLocation
*
* @return String
*/
public String getLocation() {
return fMeetingData.getLocation();
}
/**
* Method setLocation
*
* @param aLocation
* - String
*/
public void setLocation(String aLocation) {
try {
final Long bookNum = fResUpdater.checkOut(fMeetingData, R4EUIModelController.getReviewer());
fMeetingData.setLocation(aLocation);
fResUpdater.checkIn(bookNum);
} catch (ResourceHandlingException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
} catch (OutOfSyncException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
}
}
/**
* Method getStartTime
*
* @return Long
*/
public Long getStartTime() {
return Long.valueOf(fMeetingData.getStartTime() + R4EUIConstants.TIME_ZONE_OFFSET);
}
/**
* Method setStartTime
*
* @param aStartTime
* - Long
*/
public void setStartTime(Long aStartTime) {
try {
final Long bookNum = fResUpdater.checkOut(fMeetingData, R4EUIModelController.getReviewer());
fMeetingData.setStartTime(aStartTime.longValue());
fResUpdater.checkIn(bookNum);
} catch (ResourceHandlingException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
} catch (OutOfSyncException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
}
}
/**
* Method getDuration
*
* @return Integer
*/
public Integer getDuration() {
return Integer.valueOf(fMeetingData.getDuration());
}
/**
* Method setDuration
*
* @param aDuration
* - Integer
*/
public void setDuration(Integer aDuration) {
try {
final Long bookNum = fResUpdater.checkOut(fMeetingData, R4EUIModelController.getReviewer());
fMeetingData.setDuration(aDuration.intValue());
fResUpdater.checkIn(bookNum);
} catch (ResourceHandlingException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
} catch (OutOfSyncException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
}
}
/**
* Method getSender
*
* @return String
*/
public String getSender() {
return fMeetingData.getSender();
}
/**
* Method setSender
*
* @param aSender
* - String
*/
public void setSender(String aSender) {
try {
final Long bookNum = fResUpdater.checkOut(fMeetingData, R4EUIModelController.getReviewer());
fMeetingData.setSender(aSender);
fResUpdater.checkIn(bookNum);
} catch (ResourceHandlingException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
} catch (OutOfSyncException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
}
}
/**
* Method getReceivers
*
* @return String[]
*/
public String[] getReceivers() {
final List<String> receiversRaw = fMeetingData.getReceivers();
List<String> receiversFiltered = new ArrayList<String>();
//Remove invalid entries
for (String entry : receiversRaw) {
if (null != entry && !entry.trim().equals("")) {
receiversFiltered.add(entry);
}
}
final String[] receivers = receiversFiltered.toArray(new String[receiversFiltered.size()]);
return receivers;
}
/**
* Method clearReceivers
*/
public void clearReceivers() {
try {
final Long bookNum = fResUpdater.checkOut(fMeetingData, R4EUIModelController.getReviewer());
fMeetingData.getReceivers().clear();
fResUpdater.checkIn(bookNum);
} catch (ResourceHandlingException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
} catch (OutOfSyncException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
}
}
/**
* Method addReceiver
*
* @param aReceiver
* - String
*/
public void addReceiver(String aReceiver) {
try {
final Long bookNum = fResUpdater.checkOut(fMeetingData, R4EUIModelController.getReviewer());
fMeetingData.getReceivers().add(aReceiver);
fResUpdater.checkIn(bookNum);
} catch (ResourceHandlingException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
} catch (OutOfSyncException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
}
}
/**
* Method removeReceiver
*
* @param aReceiver
* - String
*/
public void removeReceiver(String aReceiver) {
try {
final Long bookNum = fResUpdater.checkOut(fMeetingData, R4EUIModelController.getReviewer());
fMeetingData.getReceivers().remove(aReceiver);
fResUpdater.checkIn(bookNum);
} catch (ResourceHandlingException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
} catch (OutOfSyncException e) {
R4EUIPlugin.Ftracer.traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
}
}
/**
* Method equals
*
* @param aData
* - IMeetingData
*/
public boolean equals(IMeetingData aData) {
if (null != aData && this.getLocation().equals(aData.getLocation())
&& this.getDuration().intValue() == aData.getDuration().intValue()
&& this.getStartTime().longValue() == aData.getStartTime().longValue()) {
return true;
}
return false;
}
}