/********************************************************************************
* *
* (c) Copyright 2010 Verizon Communications USA and The Open University UK *
* *
* This software is freely distributed in accordance with *
* the GNU Lesser General Public (LGPL) license, version 3 or later *
* as published by the Free Software Foundation. *
* For details see LGPL: http://www.fsf.org/licensing/licenses/lgpl.html *
* and GPL: http://www.fsf.org/licensing/licenses/gpl-3.0.html *
* *
* This software is provided by the copyright holders and contributors "as is" *
* and any express or implied warranties, including, but not limited to, the *
* implied warranties of merchantability and fitness for a particular purpose *
* are disclaimed. In no event shall the copyright owner or contributors be *
* liable for any direct, indirect, incidental, special, exemplary, or *
* consequential damages (including, but not limited to, procurement of *
* substitute goods or services; loss of use, data, or profits; or business *
* interruption) however caused and on any theory of liability, whether in *
* contract, strict liability, or tort (including negligence or otherwise) *
* arising in any way out of the use of this software, even if advised of the *
* possibility of such damage. *
* *
********************************************************************************/
package com.compendium.core.datamodel;
import java.util.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* The INodePositionSummary object defines the position of a node
* in a view. The position is defined by an X and Y coordinate
* in the view's relative coordinate system.
*
* This is a lightweight version of the NodePosition object and is used
* only to determine if a view is 'dirty' in the groupware sense - i.e.,
* if the view has been changed by someone else.
*
* @author M. Begeman
*/
public class NodePositionSummary extends PCObject implements INodePositionSummary, java.io.Serializable {
/**
* class's own logger
*/
final Logger log = LoggerFactory.getLogger(getClass());
/** the view the node associated with this object is in.*/
protected String sViewID = null;
/** the NodeID if the node */
protected String sNodeID = null;
/** The x coordinates of the node associated with this object.*/
protected int nX = -1;
/** The y coordinates of the node associated with this object.*/
protected int nY = -1;
/** The date the node was last modified.*/
protected Date oModificationDate = null;
/**
* Constructor, creates a new position node,
* defining the position of the given node in the given view.
*
* @param View oView, The view in which the node is placed
* @param NodeSummary oNode, The node for which the position is defined
* @param int x, The X coordinate of the node's position
* @param int y, The Y coordinate of the node's position
* @param Date dCreated, the date this object was created.
* @param Date dModified, the date this object was last modified.
*/
public NodePositionSummary(String sNodeID, String sViewID, Date dModified, int x, int y) {
this.sViewID = sViewID;
this.sNodeID = sNodeID;
this.nX = x;
this.nY = y;
this.oModificationDate = dModified;
}
/**
* The initialize method is called by the Model before adding the object to the cache.
*
* @param PCSession session, the session associated with this object.
* @param IMode model, the model this object belongs to.
*/
public void initialize(PCSession session, IModel model) {
super.initialize(session, model);
}
/**
* This method needs to be called on this object before the Model removes it from the cache.
*/
public void cleanUp() {
super.cleanUp() ;
}
/**
* Returns the node for which this object defines its position
*
* @return NodeSummary, the node summary for which the this position is defined.
*/
public String getNodeID() {
return this.sNodeID;
}
/**
* Returns the view in which the node is placed at the defined position
*
* @return View, the view in which the node is placed at the defined position
*/
public String getViewID() {
return this.sViewID;
}
/**
* Returns the X coordinate of the nodes position in the defined view.
*
* @return int, the X coordinate of the nodes position.
*/
public int getXPos() {
return nX ;
}
/**
* Returns the Y coordinate of the nodes position in the defined view.
*
* @return int, the Y coordinate of the nodes position.
*/
public int getYPos() {
return nY ;
}
/**
* Returns the modification date of this node.
*
* @return Date, the date when this node was last modified.
*/
public Date getModificationDate() {
return oModificationDate;
}
}