001 package com.croftsoft.apps.chat.event;
002
003 import com.croftsoft.core.lang.NullArgumentException;
004
005 import com.croftsoft.core.animation.model.ModelId;
006 import com.croftsoft.core.math.geom.PointXY;
007 import com.croftsoft.core.math.geom.Point2DD;
008
009 /*********************************************************************
010 * A model is moving.
011 *
012 * @version
013 * 2003-06-18
014 * @since
015 * 2003-06-07
016 * @author
017 * <a href="https://www.croftsoft.com/">David Wallace Croft</a>
018 *********************************************************************/
019
020 public final class MoveEvent
021 extends AbstractEvent
022 //////////////////////////////////////////////////////////////////////
023 //////////////////////////////////////////////////////////////////////
024 {
025
026 private static final long serialVersionUID = 0L;
027
028 //
029
030 private final ModelId modelId;
031
032 private final PointXY origin;
033
034 private final PointXY destination;
035
036 //////////////////////////////////////////////////////////////////////
037 //////////////////////////////////////////////////////////////////////
038
039 public MoveEvent (
040 ModelId modelId,
041 PointXY origin,
042 PointXY destination )
043 //////////////////////////////////////////////////////////////////////
044 {
045 NullArgumentException.check ( this.modelId = modelId );
046
047 if ( origin != null )
048 {
049 origin = new Point2DD ( origin );
050 }
051
052 this.origin = origin;
053
054 if ( destination != null )
055 {
056 destination = new Point2DD ( destination );
057 }
058
059 this.destination = destination;
060 }
061
062 //////////////////////////////////////////////////////////////////////
063 //////////////////////////////////////////////////////////////////////
064
065 public ModelId getModelId ( ) { return modelId; }
066
067 public PointXY getOrigin ( ) { return origin; }
068
069 public PointXY getDestination ( ) { return destination; }
070
071 //////////////////////////////////////////////////////////////////////
072 //////////////////////////////////////////////////////////////////////
073
074 public boolean equals ( Object other )
075 //////////////////////////////////////////////////////////////////////
076 {
077 if ( other == null )
078 {
079 return false;
080 }
081
082 if ( other.getClass ( ) != MoveEvent.class )
083 {
084 return false;
085 }
086
087 MoveEvent that = ( MoveEvent ) other;
088
089 return this.modelId.equals ( that.modelId );
090 }
091
092 //////////////////////////////////////////////////////////////////////
093 //////////////////////////////////////////////////////////////////////
094 }