public class Ditch extends java.lang.Object implements java.io.Serializable, java.lang.Comparable<Ditch>
Diese Klasse repraesentiert einen Graben. Ein Graben wird immer zwischen zwei Position
en gebaut.
Ein Graben kann nach der Erzeugung nicht mehr veraendert werden. Die Reihenfolge, in der die beiden Positionen beim
Erzeugen an den Konstruktor uebergeben werden hat keine Auswirkung darauf, welche der beiden Positionen bei einem
Aufruf von getFirst()
bzw. getSecond()
zurueckgeliefert wird. Intern werden die Positionen
umsortiert, damit zwei Graeben mit identischen Positionen, die jedoch mit vertauschter Reihenfolge der Positionen
erzeugt wurden, dennoch einfach vergleichbar sind.
Die Methode parseDitch(String)
kann einen String
in ein Ditch-Objekt umwandeln, wenn das Format
gueltig ist.
Die Funktion hashCode()
liefert fuer alle gueltigen Graeben einen eindeutigen Hash-Wert zurueck. Spezielle
Datenstrukturen wie zum Beispiel ein HashSet
koennen sich das zu Nutze machen. Ein Graben ist weiterhin mit
anderen Graeben ueber das Comparable
-Interface vergleichbar, um eine sinnvolle Sortierung zu ermoeglichen.
Modifier and Type | Field and Description |
---|---|
private Position[] |
positions
Positionen des Grabens
|
private static long |
serialVersionUID
Serialisierungskonstante
|
Constructor and Description |
---|
Ditch(Position first,
Position second)
Erzeuge einen neuen Graben unter Angabe der beiden Positionen, zwischen denen der Graben gebaut werden soll.
|
Modifier and Type | Method and Description |
---|---|
int |
compareTo(Ditch ditch) |
boolean |
equals(java.lang.Object o) |
Position |
getFirst()
Gib die erste Position des Grabens zurueck.
|
Position |
getSecond()
Gib die zweite Position des Grabens zurueck.
|
int |
hashCode() |
static Ditch |
parseDitch(java.lang.String string)
Wandle einen uebergebenen
String in einen Graben um. |
private void |
setFirst(Position first)
Setze die erste Position des Grabens.
|
private void |
setSecond(Position second)
Setze die zweite Position des Grabens.
|
java.lang.String |
toString() |
private void |
updateOrder()
Sortiere die Positionen des Grabens.
|
private static final long serialVersionUID
private Position[] positions
public Ditch(Position first, Position second)
first
- erste Positionsecond
- zweite Positionjava.lang.IllegalArgumentException
- falls eine der Positionen null
istpublic static Ditch parseDitch(java.lang.String string)
String
in einen Graben um. Das Format ist: {(Pos1.column,Pos1.row),(Pos2.column,Pos2.row)}
string
- umzuwandelnder StringDitch
-ObjektDitchFormatException
- falls kein gueltiger String uebergeben wird oder das Format ungueltig istprivate void updateOrder()
public Position getFirst()
private void setFirst(Position first)
first
- erste Positionjava.lang.IllegalArgumentException
- falls die Position null
istpublic Position getSecond()
private void setSecond(Position second)
second
- zweite Positionjava.lang.IllegalArgumentException
- falls die Position null
istpublic int hashCode()
hashCode
in class java.lang.Object
public int compareTo(Ditch ditch)
compareTo
in interface java.lang.Comparable<Ditch>
public boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object