package mapmaker;
import java.io.*;
import java.util.*;
public class Exit implements Serializable, Comparable
{
int mDirection = -1;
String mName;
MapLocation mFrom;
MapLocation mTo;
String mDummy;
String mType;
public Exit(int aDirection, MapLocation aFrom, MapLocation aTo, String aType)
{
setDirection(aDirection);
setFrom(aFrom);
setTo(aTo);
setType(aType);
}
public Exit(String aName, MapLocation aFrom, MapLocation aTo, String aType)
{
setName(aName);
setFrom(aFrom);
setTo(aTo);
setType(aType);
}
public Exit(int aDirection, MapLocation aFrom, String aTo, String aType)
{
setDirection(aDirection);
setFrom(aFrom);
setDummy(aTo);
setType(aType);
}
public Exit(String aName, MapLocation aFrom, String aTo, String aType)
{
setName(aName);
setFrom(aFrom);
setDummy(aTo);
setType(aType);
}
public void setDirection(int aDirection)
{
mDirection = aDirection;
}
public int getDirection()
{
return mDirection;
}
public boolean isDirection()
{
return mDirection != -1;
}
public void setName(String aName)
{
mDirection = -1;
mName = aName;
}
public String getName()
{
return mName;
}
public void setType(String aType)
{
mType = aType;
}
public String getType()
{
return mType;
}
public void setTo(MapLocation aTo)
{
mTo = aTo;
}
public MapLocation getTo()
{
return mTo;
}
public void setDummy(String aDummy)
{
mDummy = aDummy;
}
public String getDummy()
{
return mDummy;
}
public boolean isDummy()
{
return mDummy != null;
}
public void setFrom(MapLocation aFrom)
{
mFrom = aFrom;
}
public MapLocation getFrom()
{
return mFrom;
}
public Exit getOpposite()
{
if (isDummy())
{
return null;
}
return mTo.getOpposite(this);
}
public int compareTo(Object aExit)
{
Exit exit = (Exit)aExit;
if (Direction.getExitOrder(exit.getDirection()) >
Direction.getExitOrder(this.getDirection()))
{
return -1;
}
else if (Direction.getExitOrder(exit.getDirection()) <
Direction.getExitOrder(this.getDirection()))
{
return 1;
}
return 0;
}
}