From 6a8532dd89833f816e0ea8ab30e64ea3a45452f2 Mon Sep 17 00:00:00 2001
From: "maxim.derksen"
Date: Thu, 3 Dec 2020 11:11:10 +0100
Subject: [PATCH] Langlaufsimulator
---
Langlaufsimulator/Athlete.class | Bin 0 -> 1662 bytes
Langlaufsimulator/Athlete.ctxt | 25 +
Langlaufsimulator/Athlete.java | 56 ++
Langlaufsimulator/BinarySearchTree.java | 260 ++++++
Langlaufsimulator/ComparableContent.class | Bin 0 -> 310 bytes
Langlaufsimulator/ComparableContent.ctxt | 13 +
Langlaufsimulator/ComparableContent.java | 60 ++
Langlaufsimulator/Competition.class | Bin 0 -> 703 bytes
Langlaufsimulator/Competition.ctxt | 11 +
Langlaufsimulator/Competition.java | 32 +
.../Dokumente/bluej/bluej-debuglog.txt | 863 ++++++++++++++++++
.../Dokumente/bluej/bluej.properties | 14 +
.../Dokumente/bluej/bluejplus.log | 503 ++++++++++
.../Dokumente/bluej/import-cache.xml | 91 ++
.../Dokumente/bluej/moe.properties | 2 +
Langlaufsimulator/List$ListNode.class | Bin 0 -> 1326 bytes
Langlaufsimulator/List.class | Bin 0 -> 3387 bytes
Langlaufsimulator/List.ctxt | 43 +
Langlaufsimulator/List.java | 345 +++++++
Langlaufsimulator/README.TXT | 14 +
Langlaufsimulator/Racesimulator.class | Bin 0 -> 268 bytes
Langlaufsimulator/Racesimulator.ctxt | 7 +
Langlaufsimulator/Racesimulator.java | 25 +
Langlaufsimulator/package.bluej | 83 ++
24 files changed, 2447 insertions(+)
create mode 100644 Langlaufsimulator/Athlete.class
create mode 100644 Langlaufsimulator/Athlete.ctxt
create mode 100644 Langlaufsimulator/Athlete.java
create mode 100644 Langlaufsimulator/BinarySearchTree.java
create mode 100644 Langlaufsimulator/ComparableContent.class
create mode 100644 Langlaufsimulator/ComparableContent.ctxt
create mode 100644 Langlaufsimulator/ComparableContent.java
create mode 100644 Langlaufsimulator/Competition.class
create mode 100644 Langlaufsimulator/Competition.ctxt
create mode 100644 Langlaufsimulator/Competition.java
create mode 100644 Langlaufsimulator/Dokumente/bluej/bluej-debuglog.txt
create mode 100644 Langlaufsimulator/Dokumente/bluej/bluej.properties
create mode 100644 Langlaufsimulator/Dokumente/bluej/bluejplus.log
create mode 100644 Langlaufsimulator/Dokumente/bluej/import-cache.xml
create mode 100644 Langlaufsimulator/Dokumente/bluej/moe.properties
create mode 100644 Langlaufsimulator/List$ListNode.class
create mode 100644 Langlaufsimulator/List.class
create mode 100644 Langlaufsimulator/List.ctxt
create mode 100644 Langlaufsimulator/List.java
create mode 100644 Langlaufsimulator/README.TXT
create mode 100644 Langlaufsimulator/Racesimulator.class
create mode 100644 Langlaufsimulator/Racesimulator.ctxt
create mode 100644 Langlaufsimulator/Racesimulator.java
create mode 100644 Langlaufsimulator/package.bluej
diff --git a/Langlaufsimulator/Athlete.class b/Langlaufsimulator/Athlete.class
new file mode 100644
index 0000000000000000000000000000000000000000..7be394ce32cd981f28a88c2db4914c9a080476bc
GIT binary patch
literal 1662
zcma)*-A~g{7{;Hom6g^4+XPfZRODkH$`BA#2$AsN&4ic{F1#zF8O71fuJd2f7~`!s
zCTb#>cwxNuk1{@|En|!=S(d%0=k$Gl?{l7W`uE?j-vE}dtV2gmLkzPrJd|NhXP8&9
zAjd~CEXuH?;<1V+0*YfETLQ`ak@?oll})FVD|oK$l$HgwnrFJ+t}PS9hJb202f-}1
zVmr3CDln9~T$tV?cD-`Is)4-iSljjEeaqc7_sf2xO3^IunXWD8;iBRl+BNpeuX%@M
z%d^x>;t5UCUcF
z?(>3aJNrjg(OZ@btzefN)2qAmX|`#vVM>0za$GfC>Dzk6@hrz%X-HV5WqP4fcZ=4R
zEqyjZD`(`n8c5)&0Rw#o`Y~W2F2fi`d8T2Wfixx!q-2=Dq(J=qLInK<5|;!B(C%*R*0z}Dhn*L=QQ29iY=!@5sg*F^M9>@BZ{to#Sfydo_*iE81krON
zb>Flp^kCX21SZBBCdPPh17rw{w`VD>tPEM%4y=12i?=7#^^!Z2hn&ow@=*AH{}HP4
z8A|jESEK%62d6XB#7s8yB{9Y07F5qeMI`=AO63jhgn##;1AeZ1JimgD_)i`1i(TU5
zYy8MEA%33LNOQDI_77sGP^Bl$H@4TO1~*mH>jFT9SzqUUJn+Yv
E|BtHTv;Y7A
literal 0
HcmV?d00001
diff --git a/Langlaufsimulator/Athlete.ctxt b/Langlaufsimulator/Athlete.ctxt
new file mode 100644
index 0000000..dd67006
--- /dev/null
+++ b/Langlaufsimulator/Athlete.ctxt
@@ -0,0 +1,25 @@
+#BlueJ class context
+comment0.target=Athlete
+comment0.text=\r\n\ Beschreiben\ Sie\ hier\ die\ Klasse\ Athlete.\r\n\ \r\n\ @author\ (Ihr\ Name)\ \r\n\ @version\ (eine\ Versionsnummer\ oder\ ein\ Datum)\r\n
+comment1.params=pName
+comment1.target=Athlete(java.lang.String)
+comment1.text=\r\n\ Konstruktor\ f\u00FCr\ Objekte\ der\ Klasse\ Athlete\r\n
+comment10.params=pOther
+comment10.target=boolean\ isLess(Athlete)
+comment2.params=
+comment2.target=java.lang.String\ getName()
+comment3.params=
+comment3.target=double\ getStartTime()
+comment4.params=
+comment4.target=double\ getEndTime()
+comment5.params=
+comment5.target=double\ getFinalTime()
+comment6.params=pStartTime
+comment6.target=void\ setStartTime(double)
+comment7.params=pEndTime
+comment7.target=void\ setEndTime(double)
+comment8.params=pOther
+comment8.target=boolean\ isGreater(Athlete)
+comment9.params=pOther
+comment9.target=boolean\ isEqual(Athlete)
+numComments=11
diff --git a/Langlaufsimulator/Athlete.java b/Langlaufsimulator/Athlete.java
new file mode 100644
index 0000000..faab6f1
--- /dev/null
+++ b/Langlaufsimulator/Athlete.java
@@ -0,0 +1,56 @@
+
+/**
+ * Beschreiben Sie hier die Klasse Athlete.
+ *
+ * @author (Ihr Name)
+ * @version (eine Versionsnummer oder ein Datum)
+ */
+public class Athlete implements ComparableContent {
+
+ String name;
+ double startTime;
+ double endTime;
+
+ /**
+ * Konstruktor für Objekte der Klasse Athlete
+ */
+ public Athlete(String pName) {
+ name = pName;
+ }
+
+ public String getName(){
+ return name;
+ }
+
+ public double getStartTime(){
+ return startTime;
+ }
+
+ public double getEndTime(){
+ return endTime;
+ }
+
+ public double getFinalTime() {
+ return endTime - startTime;
+ }
+
+ public void setStartTime(double pStartTime){
+ startTime=pStartTime;
+ }
+
+ public void setEndTime(double pEndTime){
+ endTime= pEndTime;
+ }
+
+ public boolean isGreater(Athlete pOther){
+ return pOther.getFinalTime() < getFinalTime();
+ }
+
+ public boolean isEqual(Athlete pOther){
+ return pOther.getFinalTime() == getFinalTime();
+ }
+
+ public boolean isLess(Athlete pOther){
+ return pOther.getFinalTime() > getFinalTime();
+ }
+}
diff --git a/Langlaufsimulator/BinarySearchTree.java b/Langlaufsimulator/BinarySearchTree.java
new file mode 100644
index 0000000..cb72a1b
--- /dev/null
+++ b/Langlaufsimulator/BinarySearchTree.java
@@ -0,0 +1,260 @@
+/**
+ *
+ * Materialien zu den zentralen NRW-Abiturpruefungen im Fach Informatik ab 2018
+ *
+ *
+ * Generische Klasse BinarySearchTree
+ *
+ *
+ * Mithilfe der generischen Klasse BinarySearchTree koennen beliebig viele
+ * Objekte in einem Binaerbaum (binaerer Suchbaum) entsprechend einer
+ * Ordnungsrelation verwaltet werden.
+ * Ein Objekt der Klasse stellt entweder einen leeren binaeren Suchbaum dar oder
+ * verwaltet ein Inhaltsobjekt sowie einen linken und einen rechten Teilbaum,
+ * die ebenfalls Objekte der Klasse BinarySearchTree sind.
+ * Die Klasse der Objekte, die in dem Suchbaum verwaltet werden sollen, muss
+ * das generische Interface ComparableContent implementieren. Dabei muss durch
+ * Ueberschreiben der drei Vergleichsmethoden isLess, isEqual, isGreater (s.
+ * Dokumentation des Interfaces) eine eindeutige Ordnungsrelation festgelegt
+ * sein.
+ * Alle Objekte im linken Teilbaum sind kleiner als das Inhaltsobjekt des
+ * binaeren Suchbaums. Alle Objekte im rechten Teilbaum sind groesser als das
+ * Inhaltsobjekt des binaeren Suchbaums. Diese Bedingung gilt (rekursiv) auch in
+ * beiden Teilbaeumen.
+ * Hinweis: In dieser Version wird die Klasse BinaryTree nicht benutzt.
+ *
+ *
+ * @author Qualitaets- und UnterstuetzungsAgentur - Landesinstitut fuer Schule
+ * @version Generisch_03 2017-11-28
+ */
+public class BinarySearchTree> {
+
+ /* --------- Anfang der privaten inneren Klasse -------------- */
+
+ /**
+ * Durch diese innere Klasse kann man dafuer sorgen, dass ein leerer Baum
+ * null ist, ein nicht-leerer Baum jedoch immer eine nicht-null-Wurzel sowie
+ * nicht-null-Teilbaeume hat.
+ */
+ private class BSTNode> {
+
+ private CT content;
+ private BinarySearchTree left, right;
+
+ public BSTNode(CT pContent) {
+ // Der Knoten hat einen linken und rechten Teilbaum, die
+ // beide von null verschieden sind. Also hat ein Blatt immer zwei
+ // leere Teilbaeume unter sich.
+ this.content = pContent;
+ left = new BinarySearchTree();
+ right = new BinarySearchTree();
+ }
+
+ }
+
+ /* ----------- Ende der privaten inneren Klasse -------------- */
+
+ private BSTNode node;
+
+ /**
+ * Der Konstruktor erzeugt einen leeren Suchbaum.
+ */
+ public BinarySearchTree() {
+ this.node = null;
+ }
+
+ /**
+ * Diese Anfrage liefert den Wahrheitswert true, wenn der Suchbaum leer ist,
+ * sonst liefert sie den Wert false.
+ *
+ * @return true, wenn der binaere Suchbaum leer ist, sonst false
+ *
+ */
+ public boolean isEmpty() {
+ return this.node == null;
+ }
+
+ /**
+ * Falls der Parameter null ist, geschieht nichts.
+ * Falls ein bezueglich der verwendeten Vergleichsmethode isEqual mit
+ * pContent uebereinstimmendes Objekt im geordneten binaeren Suchbau
+ * enthalten ist, passiert nichts.
+ * Achtung: hier wird davon ausgegangen, dass isEqual genau dann true
+ * liefert, wenn isLess und isGreater false liefern.
+ * Andernfalls (isLess oder isGreater) wird das Objekt pContent entsprechend
+ * der vorgegebenen Ordnungsrelation in den BinarySearchTree eingeordnet.
+ *
+ * @param pContent
+ * einzufuegendes Objekt vom Typ ContentType
+ *
+ */
+ public void insert(ContentType pContent) {
+ if (pContent != null) {
+ if (isEmpty()) {
+ this.node = new BSTNode(pContent);
+ } else if (pContent.isLess(this.node.content)) {
+ this.node.left.insert(pContent);
+ } else if(pContent.isGreater(this.node.content)) {
+ this.node.right.insert(pContent);
+ }
+ }
+ }
+
+ /**
+ * Diese Anfrage liefert den linken Teilbaum des binaeren Suchbaumes.
+ * Wenn er leer ist, wird null zurueckgegeben.
+ *
+ * @return den linken Teilbaum (Objekt vom Typ BinarySearchTree)
+ * bzw. null, wenn der Suchbaum leer ist
+ *
+ */
+ public BinarySearchTree getLeftTree() {
+ if (this.isEmpty()) {
+ return null;
+ } else {
+ return this.node.left;
+ }
+ }
+
+ /**
+ * Diese Anfrage liefert das Inhaltsobjekt des Suchbaumes. Wenn der Suchbaum
+ * leer ist, wird null zurueckgegeben.
+ *
+ * @return das Inhaltsobjekt vom Typ ContentType bzw. null, wenn der aktuelle
+ * Suchbaum leer ist
+ *
+ */
+ public ContentType getContent() {
+ if (this.isEmpty()) {
+ return null;
+ } else {
+ return this.node.content;
+ }
+ }
+
+ /**
+ * Diese Anfrage liefert den rechten Teilbaum des binaeren Suchbaumes.
+ * Wenn er leer ist, wird null zurueckgegeben.
+ *
+ * @return den rechten Teilbaum (Objekt vom Typ BinarySearchTree)
+ * bzw. null, wenn der aktuelle Suchbaum leer ist
+ *
+ */
+ public BinarySearchTree getRightTree() {
+ if (this.isEmpty()) {
+ return null;
+ } else {
+ return this.node.right;
+ }
+ }
+
+ /**
+ * Falls ein bezueglich der verwendeten Vergleichsmethode mit
+ * pContent uebereinstimmendes Objekt im binaeren Suchbaum enthalten
+ * ist, wird dieses entfernt. Falls der Parameter null ist, aendert sich
+ * nichts.
+ *
+ * @param pContent
+ * zu entfernendes Objekt vom Typ ContentType
+ *
+ */
+ public void remove(ContentType pContent) {
+ if (isEmpty() || pContent == null ) {
+ // Abbrechen, da kein Element zum entfernen vorhanden ist.
+ return;
+ }
+
+ if (pContent.isLess(node.content)) {
+ // Element ist im linken Teilbaum zu loeschen.
+ node.left.remove(pContent);
+ } else if (pContent.isGreater(node.content)) {
+ // Element ist im rechten Teilbaum zu loeschen.
+ node.right.remove(pContent);
+ } else {
+ // Element ist gefunden.
+ if (node.left.isEmpty()) {
+ if (node.right.isEmpty()) {
+ // Es gibt keinen Nachfolger.
+ node = null;
+ } else {
+ // Es gibt nur rechts einen Nachfolger.
+ node = getNodeOfRightSuccessor();
+ }
+ } else if (node.right.isEmpty()) {
+ // Es gibt nur links einen Nachfolger.
+ node = getNodeOfLeftSuccessor();
+ } else {
+ // Es gibt links und rechts einen Nachfolger.
+ if (getNodeOfRightSuccessor().left.isEmpty()) {
+ // Der rechte Nachfolger hat keinen linken Nachfolger.
+ node.content = getNodeOfRightSuccessor().content;
+ node.right = getNodeOfRightSuccessor().right;
+ } else {
+ BinarySearchTree previous = node.right
+ .ancestorOfSmallRight();
+ BinarySearchTree smallest = previous.node.left;
+ this.node.content = smallest.node.content;
+ previous.remove(smallest.node.content);
+ }
+ }
+ }
+ }
+
+ /**
+ * Falls ein bezueglich der verwendeten Vergleichsmethode isEqual mit
+ * pContent uebereinstimmendes Objekt im binaeren Suchbaum enthalten ist,
+ * liefert die Anfrage dieses, ansonsten wird null zurueckgegeben.
+ * Falls der Parameter null ist, wird null zurueckgegeben.
+ *
+ * @param pContent
+ * zu suchendes Objekt vom Typ ContentType
+ * @return das gefundene Objekt vom Typ ContentType, bei erfolgloser Suche null
+ *
+ */
+ public ContentType search(ContentType pContent) {
+ if (this.isEmpty() || pContent == null) {
+ // Abbrechen, da es kein Element zu suchen gibt.
+ return null;
+ } else {
+ ContentType content = this.getContent();
+ if (pContent.isLess(content)) {
+ // Element wird im linken Teilbaum gesucht.
+ return this.getLeftTree().search(pContent);
+ } else if (pContent.isGreater(content)) {
+ // Element wird im rechten Teilbaum gesucht.
+ return this.getRightTree().search(pContent);
+ } else if (pContent.isEqual(content)) {
+ // Element wurde gefunden.
+ return content;
+ } else {
+ // Dieser Fall sollte nicht auftreten.
+ return null;
+ }
+ }
+ }
+
+ /* ----------- Weitere private Methoden -------------- */
+
+ /**
+ * Die Methode liefert denjenigen Baum, dessen linker Nachfolger keinen linken
+ * Nachfolger mehr hat. Es ist also spaeter moeglich, in einem Baum im
+ * rechten Nachfolger den Vorgaenger des linkesten Nachfolgers zu finden.
+ *
+ */
+ private BinarySearchTree ancestorOfSmallRight() {
+ if (getNodeOfLeftSuccessor().left.isEmpty()) {
+ return this;
+ } else {
+ return node.left.ancestorOfSmallRight();
+ }
+ }
+
+ private BSTNode getNodeOfLeftSuccessor() {
+ return node.left.node;
+ }
+
+ private BSTNode getNodeOfRightSuccessor() {
+ return node.right.node;
+ }
+
+}
diff --git a/Langlaufsimulator/ComparableContent.class b/Langlaufsimulator/ComparableContent.class
new file mode 100644
index 0000000000000000000000000000000000000000..ab370f3e527e4d4a47c8a0a1bc3464deae89c273
GIT binary patch
literal 310
zcmZXPy$ZrW5QJy_N&H6(eFkk5Yy=e>Q5(TRE4xcrc6%_Amr?)K)yi8qhPscDF?^0`^Tj;ThG^7M&+|neF0V?N(uk~
literal 0
HcmV?d00001
diff --git a/Langlaufsimulator/ComparableContent.ctxt b/Langlaufsimulator/ComparableContent.ctxt
new file mode 100644
index 0000000..a860892
--- /dev/null
+++ b/Langlaufsimulator/ComparableContent.ctxt
@@ -0,0 +1,13 @@
+#BlueJ class context
+comment0.target=ComparableContent
+comment0.text=\r\n\ \r\n\ Materialien\ zu\ den\ zentralen\ NRW-Abiturpruefungen\ im\ Fach\ Informatik\ ab\ 2018\r\n\
\r\n\ \r\n\ Generisches\ Interface\ (Schnittstelle)\ ComparableContent\r\n\
\r\n\ \r\n\
Das\ generische\ Interface\ ComparableContent\ legt\ die\ Methoden\r\n\ fest,\ ueber\ die\ Objekte\ verfuegen\ muessen,\ die\ in\ einen\ binaeren\ Suchbaum\r\n\ (BinarySearchTree)\ eingefuegt\ werden\ sollen.\ Die\ Ordnungsrelation\ wird\ in\r\n\ Klassen,\ die\ ComparableContent\ implementieren\ durch\ Ueberschreiben\ der\ drei\r\n\ implizit\ abstrakten\ Methoden\ isGreater,\ isEqual\ und\ isLess\ festgelegt.\ \r\n\
\r\n\
\r\n\ @author\ Qualitaets-\ und\ UnterstuetzungsAgentur\ -\ Landesinstitut\ fuer\ Schule\r\n\ @version\ Generisch_02\ 2014-03-01\r\n
+comment1.params=pContent
+comment1.target=boolean\ isGreater(java.lang.Object)
+comment1.text=\r\n\ Wenn\ festgestellt\ wird,\ dass\ das\ Objekt,\ von\ dem\ die\ Methode\ aufgerufen\r\n\ wird,\ bzgl.\ der\ gewuenschten\ Ordnungsrelation\ groesser\ als\ das\ Objekt\r\n\ pContent\ ist,\ wird\ true\ geliefert.\ Sonst\ wird\ false\ geliefert.\r\n\r\n\ @param\ pContent\r\n\ \ \ \ \ \ \ \ \ \ das\ mit\ dem\ aufrufenden\ Objekt\ zu\ vergleichende\ Objekt\ vom\r\n\ \ \ \ \ \ \ \ \ \ Typ\ ContentType\r\n\ @return\ true,\ wenn\ das\ aufrufende\ Objekt\ groesser\ ist\ als\ das\ Objekt\r\n\ \ \ \ \ \ \ \ \ pContent,\ sonst\ false\r\n
+comment2.params=pContent
+comment2.target=boolean\ isEqual(java.lang.Object)
+comment2.text=\r\n\ Wenn\ festgestellt\ wird,\ dass\ das\ Objekt,\ von\ dem\ die\ Methode\ aufgerufen\r\n\ wird,\ bzgl.\ der\ gewuenschten\ Ordnungsrelation\ gleich\ gross\ wie\ das\ Objekt\r\n\ pContent\ ist,\ wird\ true\ geliefert.\ Sonst\ wird\ false\ geliefert.\r\n\r\n\ @param\ pContent\r\n\ \ \ \ \ \ \ \ \ \ das\ mit\ dem\ aufrufenden\ Objekt\ zu\ vergleichende\ Objekt\ vom\r\n\ \ \ \ \ \ \ \ \ \ Typ\ ContentType\r\n\ @return\ true,\ wenn\ das\ aufrufende\ Objekt\ gleich\ gross\ ist\ wie\ das\ Objekt\r\n\ \ \ \ \ \ \ \ \ pContent,\ sonst\ false\r\n
+comment3.params=pContent
+comment3.target=boolean\ isLess(java.lang.Object)
+comment3.text=\r\n\ Wenn\ festgestellt\ wird,\ dass\ das\ Objekt,\ von\ dem\ die\ Methode\ aufgerufen\r\n\ wird,\ bzgl.\ der\ gewuenschten\ Ordnungsrelation\ kleiner\ als\ das\ Objekt\r\n\ pContent\ ist,\ wird\ true\ geliefert.\ Sonst\ wird\ false\ geliefert.\r\n\r\n\ @param\ pContent\r\n\ \ \ \ \ \ \ \ \ \ das\ mit\ dem\ aufrufenden\ Objekt\ zu\ vergleichende\ Objekt\ vom\r\n\ \ \ \ \ \ \ \ \ \ Typ\ ContentType\r\n\ @return\ true,\ wenn\ das\ aufrufende\ Objekt\ kleiner\ ist\ als\ das\ Objekt\r\n\ \ \ \ \ \ \ \ \ pContent,\ sonst\ false\ \ \ \r\n
+numComments=4
diff --git a/Langlaufsimulator/ComparableContent.java b/Langlaufsimulator/ComparableContent.java
new file mode 100644
index 0000000..c07baa1
--- /dev/null
+++ b/Langlaufsimulator/ComparableContent.java
@@ -0,0 +1,60 @@
+ /**
+ *
+ * Materialien zu den zentralen NRW-Abiturpruefungen im Fach Informatik ab 2018
+ *
+ *
+ * Generisches Interface (Schnittstelle) ComparableContent
+ *
+ *
+ *
Das generische Interface ComparableContent legt die Methoden
+ * fest, ueber die Objekte verfuegen muessen, die in einen binaeren Suchbaum
+ * (BinarySearchTree) eingefuegt werden sollen. Die Ordnungsrelation wird in
+ * Klassen, die ComparableContent implementieren durch Ueberschreiben der drei
+ * implizit abstrakten Methoden isGreater, isEqual und isLess festgelegt.
+ *
+ *
+ * @author Qualitaets- und UnterstuetzungsAgentur - Landesinstitut fuer Schule
+ * @version Generisch_02 2014-03-01
+ */
+public interface ComparableContent {
+
+ /**
+ * Wenn festgestellt wird, dass das Objekt, von dem die Methode aufgerufen
+ * wird, bzgl. der gewuenschten Ordnungsrelation groesser als das Objekt
+ * pContent ist, wird true geliefert. Sonst wird false geliefert.
+ *
+ * @param pContent
+ * das mit dem aufrufenden Objekt zu vergleichende Objekt vom
+ * Typ ContentType
+ * @return true, wenn das aufrufende Objekt groesser ist als das Objekt
+ * pContent, sonst false
+ */
+ public boolean isGreater(ContentType pContent);
+
+ /**
+ * Wenn festgestellt wird, dass das Objekt, von dem die Methode aufgerufen
+ * wird, bzgl. der gewuenschten Ordnungsrelation gleich gross wie das Objekt
+ * pContent ist, wird true geliefert. Sonst wird false geliefert.
+ *
+ * @param pContent
+ * das mit dem aufrufenden Objekt zu vergleichende Objekt vom
+ * Typ ContentType
+ * @return true, wenn das aufrufende Objekt gleich gross ist wie das Objekt
+ * pContent, sonst false
+ */
+ public boolean isEqual(ContentType pContent);
+
+ /**
+ * Wenn festgestellt wird, dass das Objekt, von dem die Methode aufgerufen
+ * wird, bzgl. der gewuenschten Ordnungsrelation kleiner als das Objekt
+ * pContent ist, wird true geliefert. Sonst wird false geliefert.
+ *
+ * @param pContent
+ * das mit dem aufrufenden Objekt zu vergleichende Objekt vom
+ * Typ ContentType
+ * @return true, wenn das aufrufende Objekt kleiner ist als das Objekt
+ * pContent, sonst false
+ */
+ public boolean isLess(ContentType pContent);
+
+}
diff --git a/Langlaufsimulator/Competition.class b/Langlaufsimulator/Competition.class
new file mode 100644
index 0000000000000000000000000000000000000000..62701cc0f77cadd8b0a2351fc82c89ddea02986d
GIT binary patch
literal 703
zcmZXST}vB56o%i~#9en?HKwN8+7J63W6_IV^dce@!KrU+h6(jks)W@R$l{;on%
zu+SgSA0>Tf6HH23m^0_hInQ~|%>KE(`3>MbItdo>IKqMfP(>nprWB`Kh$p`_o|EoohB*&W?)FrE=Qo!uXy>eg9l35ooou3;9j%
z=h6)Kd(LVz?D|FvmnU*masNB!9CD(Ns5`L&i(@@1bLm)>^or6B)Uo!`8gt$EJT1jC
zR!Eu7>D^X}7)gZJDc)cuMH@Q;OLK+9%!GXEU#NlOZTL$h$Q8%h`dz5aSXplV8EcZx
zvG^7dp9v6rB=)0Sq8A`VjeDx%y2{8qT0y(exrX>rr8Kzuw*?dGSmOtlRY_>#9zB6|
zw77b}fWR8F
hZPE+4e|V>Ow-P`RGjPZRU~5h(f0L=wEuI8;^cM_Se)#|Z
literal 0
HcmV?d00001
diff --git a/Langlaufsimulator/Competition.ctxt b/Langlaufsimulator/Competition.ctxt
new file mode 100644
index 0000000..ab66a25
--- /dev/null
+++ b/Langlaufsimulator/Competition.ctxt
@@ -0,0 +1,11 @@
+#BlueJ class context
+comment0.target=Competition
+comment0.text=\r\n\ Beschreiben\ Sie\ hier\ die\ Klasse\ Competition.\r\n\ \r\n\ @author\ (Ihr\ Name)\ \r\n\ @version\ (eine\ Versionsnummer\ oder\ ein\ Datum)\r\n
+comment1.params=
+comment1.target=Competition()
+comment1.text=\r\n\ Konstruktor\ f\u00FCr\ Objekte\ der\ Klasse\ Competition\r\n
+comment2.params=pName
+comment2.target=void\ newRunner(java.lang.String)
+comment3.params=
+comment3.target=void\ simulate()
+numComments=4
diff --git a/Langlaufsimulator/Competition.java b/Langlaufsimulator/Competition.java
new file mode 100644
index 0000000..3dcf4d4
--- /dev/null
+++ b/Langlaufsimulator/Competition.java
@@ -0,0 +1,32 @@
+
+/**
+ * Beschreiben Sie hier die Klasse Competition.
+ *
+ * @author (Ihr Name)
+ * @version (eine Versionsnummer oder ein Datum)
+ */
+public class Competition {
+
+ private List runners;
+
+ /**
+ * Konstruktor für Objekte der Klasse Competition
+ */
+ public Competition() {
+ // ggf. Instanzvariable initialisieren
+ }
+
+ public void newRunner(String pName){
+ Athlete athlete = new Athlete(pName);
+ runners.toFirst();
+ runners.insert(athlete);
+ }
+
+ public void simulate(){
+
+ }
+
+ // public Athlete top3(){
+
+ // }
+}
diff --git a/Langlaufsimulator/Dokumente/bluej/bluej-debuglog.txt b/Langlaufsimulator/Dokumente/bluej/bluej-debuglog.txt
new file mode 100644
index 0000000..03666cf
--- /dev/null
+++ b/Langlaufsimulator/Dokumente/bluej/bluej-debuglog.txt
@@ -0,0 +1,863 @@
+BlueJ run started: Thu Dec 03 10:34:26 CET 2020
+BlueJ version 4.2.2
+Java version 11.0.2
+JavaFX version 11.0.2+1
+Virtual machine: OpenJDK 64-Bit Server VM 11.0.2+9 (Oracle Corporation)
+Running on: Windows 7 6.1 (amd64)
+Java Home: C:\Program Files\BlueJ\jdk
+----
+getExtensionsClass: jarFile=._CleanProjectExtension.jar Exception=zip END header not found
+java.util.zip.ZipException: zip END header not found
+ at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529)
+ at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430)
+ at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437)
+ at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268)
+ at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231)
+ at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726)
+ at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:246)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:176)
+ at java.base/java.util.jar.JarFile.(JarFile.java:346)
+ at java.base/java.util.jar.JarFile.(JarFile.java:317)
+ at java.base/java.util.jar.JarFile.(JarFile.java:283)
+ at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128)
+ at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94)
+ at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155)
+ at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105)
+ at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66)
+ at bluej.Main.lambda$new$2(Main.java:152)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+getExtensionsClass: jarFile=._GUI_Extension.jar Exception=zip END header not found
+java.util.zip.ZipException: zip END header not found
+ at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529)
+ at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430)
+ at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437)
+ at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268)
+ at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231)
+ at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726)
+ at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:246)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:176)
+ at java.base/java.util.jar.JarFile.(JarFile.java:346)
+ at java.base/java.util.jar.JarFile.(JarFile.java:317)
+ at java.base/java.util.jar.JarFile.(JarFile.java:283)
+ at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128)
+ at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94)
+ at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155)
+ at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105)
+ at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66)
+ at bluej.Main.lambda$new$2(Main.java:152)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Opening project: H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator
+1606988070529: Listening for JDWP connection on address: javadebug
+Connected to debug VM via dt_shmem transport...
+java.io.FileNotFoundException while reading import cache: H:Dokumente\bluej\import-cache.xml (Das System kann die angegebene Datei nicht finden)
+Communication with debug VM fully established.
+Simple GUI Extension terminates
+====
+
+====
+BlueJ run started: Thu Dec 03 10:35:26 CET 2020
+BlueJ version 4.2.2
+Java version 11.0.2
+JavaFX version 11.0.2+1
+Virtual machine: OpenJDK 64-Bit Server VM 11.0.2+9 (Oracle Corporation)
+Running on: Windows 7 6.1 (amd64)
+Java Home: C:\Program Files\BlueJ\jdk
+----
+getExtensionsClass: jarFile=._CleanProjectExtension.jar Exception=zip END header not found
+java.util.zip.ZipException: zip END header not found
+ at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529)
+ at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430)
+ at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437)
+ at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268)
+ at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231)
+ at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726)
+ at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:246)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:176)
+ at java.base/java.util.jar.JarFile.(JarFile.java:346)
+ at java.base/java.util.jar.JarFile.(JarFile.java:317)
+ at java.base/java.util.jar.JarFile.(JarFile.java:283)
+ at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128)
+ at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94)
+ at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155)
+ at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105)
+ at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66)
+ at bluej.Main.lambda$new$2(Main.java:152)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+getExtensionsClass: jarFile=._GUI_Extension.jar Exception=zip END header not found
+java.util.zip.ZipException: zip END header not found
+ at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529)
+ at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430)
+ at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437)
+ at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268)
+ at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231)
+ at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726)
+ at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:246)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:176)
+ at java.base/java.util.jar.JarFile.(JarFile.java:346)
+ at java.base/java.util.jar.JarFile.(JarFile.java:317)
+ at java.base/java.util.jar.JarFile.(JarFile.java:283)
+ at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128)
+ at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94)
+ at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155)
+ at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105)
+ at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66)
+ at bluej.Main.lambda$new$2(Main.java:152)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Opening project: H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator
+1606988128452: Listening for JDWP connection on address: javadebug
+Connected to debug VM via dt_shmem transport...
+Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException
+ at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111)
+ at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508)
+ at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139)
+ at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.getAllEntities(ClassInfoFrontendBlueJ.java:32)
+ at de.upb.bluej.plus.subclasses.Subclasses.findAllClassNames(Subclasses.java:60)
+ at de.upb.bluej.plus.subclasses.Subclasses.updateTarget(Subclasses.java:156)
+ at de.upb.bluej.plus.subclasses.Subclasses$1.run(Subclasses.java:193)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException
+ at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111)
+ at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508)
+ at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139)
+ at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.reparse(ClassInfoFrontendBlueJ.java:142)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.(ClassInfoFrontendBlueJ.java:77)
+ at de.upb.bluej.plus.umleditor2.UmlEditor.updateTargetPane(UmlEditor.java:128)
+ at de.upb.bluej.plus.umleditor2.UmlEditor.updateTarget(UmlEditor.java:230)
+ at de.upb.bluej.plus.umleditor2.UmlEditor$1.run(UmlEditor.java:192)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Communication with debug VM fully established.
+Simple GUI Extension terminates
+====
+
+====
+BlueJ run started: Thu Dec 03 10:35:53 CET 2020
+BlueJ version 4.2.2
+Java version 11.0.2
+JavaFX version 11.0.2+1
+Virtual machine: OpenJDK 64-Bit Server VM 11.0.2+9 (Oracle Corporation)
+Running on: Windows 7 6.1 (amd64)
+Java Home: C:\Program Files\BlueJ\jdk
+----
+getExtensionsClass: jarFile=._CleanProjectExtension.jar Exception=zip END header not found
+java.util.zip.ZipException: zip END header not found
+ at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529)
+ at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430)
+ at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437)
+ at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268)
+ at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231)
+ at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726)
+ at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:246)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:176)
+ at java.base/java.util.jar.JarFile.(JarFile.java:346)
+ at java.base/java.util.jar.JarFile.(JarFile.java:317)
+ at java.base/java.util.jar.JarFile.(JarFile.java:283)
+ at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128)
+ at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94)
+ at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155)
+ at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105)
+ at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66)
+ at bluej.Main.lambda$new$2(Main.java:152)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+getExtensionsClass: jarFile=._GUI_Extension.jar Exception=zip END header not found
+java.util.zip.ZipException: zip END header not found
+ at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529)
+ at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430)
+ at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437)
+ at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268)
+ at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231)
+ at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726)
+ at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:246)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:176)
+ at java.base/java.util.jar.JarFile.(JarFile.java:346)
+ at java.base/java.util.jar.JarFile.(JarFile.java:317)
+ at java.base/java.util.jar.JarFile.(JarFile.java:283)
+ at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128)
+ at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94)
+ at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155)
+ at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105)
+ at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66)
+ at bluej.Main.lambda$new$2(Main.java:152)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Opening project: H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator
+1606988155961: Listening for JDWP connection on address: javadebug
+Connected to debug VM via dt_shmem transport...
+Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException
+ at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111)
+ at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508)
+ at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139)
+ at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.getAllEntities(ClassInfoFrontendBlueJ.java:32)
+ at de.upb.bluej.plus.subclasses.Subclasses.findAllClassNames(Subclasses.java:60)
+ at de.upb.bluej.plus.subclasses.Subclasses.updateTarget(Subclasses.java:156)
+ at de.upb.bluej.plus.subclasses.Subclasses$1.run(Subclasses.java:193)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException
+ at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111)
+ at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508)
+ at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139)
+ at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.reparse(ClassInfoFrontendBlueJ.java:142)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.(ClassInfoFrontendBlueJ.java:77)
+ at de.upb.bluej.plus.umleditor2.UmlEditor.updateTargetPane(UmlEditor.java:128)
+ at de.upb.bluej.plus.umleditor2.UmlEditor.updateTarget(UmlEditor.java:230)
+ at de.upb.bluej.plus.umleditor2.UmlEditor$1.run(UmlEditor.java:192)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Communication with debug VM fully established.
+ExtensionWrapper.safePostGenGetMenuItem: Class=org.bluej.UMLextension.UMLExtension Exception=component must be showing on the screen to determine its location
+java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location
+ at java.desktop/java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2101)
+ at java.desktop/java.awt.Component.getLocationOnScreen(Component.java:2075)
+ at org.bluej.UMLextension.MenuBuilder.notifyPostClassMenu(MenuBuilder.java:48)
+ at bluej.extmgr.ClassExtensionMenu.postMenuItem(ClassExtensionMenu.java:66)
+ at bluej.extensions.BlueJ.postMenuItem(BlueJ.java:964)
+ at bluej.extensions.ExtensionBridge.postMenuItem(ExtensionBridge.java:142)
+ at bluej.extmgr.ExtensionWrapper.safePostMenuItem(ExtensionWrapper.java:673)
+ at bluej.extmgr.FXMenuManager.lambda$menuWillBecomeVisible$5(FXMenuManager.java:196)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Dez. 03, 2020 10:51:34 VORM. javafx.scene.CssStyleHelper calculateValue
+WARNING: Could not resolve '-fx-text-background-color' while resolving lookups for '-fx-text-fill' from rule '*.label' in stylesheet jar:file:/C:/Program%20Files/BlueJ/lib/javafx/lib/javafx.controls.jar!/com/sun/javafx/scene/control/skin/modena/modena.bss
+Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.reparse(ClassInfoFrontendBlueJ.java:221)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.(ClassInfoFrontendBlueJ.java:77)
+ at de.upb.bluej.plus.umleditor2.UmlEditor.updateTargetPane(UmlEditor.java:128)
+ at de.upb.bluej.plus.umleditor2.UmlEditor.updateTarget(UmlEditor.java:230)
+ at de.upb.bluej.plus.umleditor2.UmlEditor$1.run(UmlEditor.java:192)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.reparse(ClassInfoFrontendBlueJ.java:221)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.(ClassInfoFrontendBlueJ.java:77)
+ at de.upb.bluej.plus.umleditor2.UmlEditor.updateTargetPane(UmlEditor.java:128)
+ at de.upb.bluej.plus.umleditor2.UmlEditor.updateTarget(UmlEditor.java:230)
+ at de.upb.bluej.plus.umleditor2.UmlEditor$1.run(UmlEditor.java:192)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Dez. 03, 2020 10:56:57 VORM. javafx.scene.CssStyleHelper calculateValue
+WARNING: Could not resolve '-fx-text-background-color' while resolving lookups for '-fx-text-fill' from rule '*.label' in stylesheet jar:file:/C:/Program%20Files/BlueJ/lib/javafx/lib/javafx.controls.jar!/com/sun/javafx/scene/control/skin/modena/modena.bss
+Simple GUI Extension terminates
+====
+
+====
+BlueJ run started: Thu Dec 03 11:00:47 CET 2020
+BlueJ version 4.2.2
+Java version 11.0.2
+JavaFX version 11.0.2+1
+Virtual machine: OpenJDK 64-Bit Server VM 11.0.2+9 (Oracle Corporation)
+Running on: Windows 7 6.1 (amd64)
+Java Home: C:\Program Files\BlueJ\jdk
+----
+getExtensionsClass: jarFile=._CleanProjectExtension.jar Exception=zip END header not found
+java.util.zip.ZipException: zip END header not found
+ at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529)
+ at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430)
+ at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437)
+ at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268)
+ at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231)
+ at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726)
+ at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:246)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:176)
+ at java.base/java.util.jar.JarFile.(JarFile.java:346)
+ at java.base/java.util.jar.JarFile.(JarFile.java:317)
+ at java.base/java.util.jar.JarFile.(JarFile.java:283)
+ at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128)
+ at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94)
+ at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155)
+ at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105)
+ at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66)
+ at bluej.Main.lambda$new$2(Main.java:152)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+getExtensionsClass: jarFile=._GUI_Extension.jar Exception=zip END header not found
+java.util.zip.ZipException: zip END header not found
+ at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529)
+ at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430)
+ at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437)
+ at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268)
+ at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231)
+ at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726)
+ at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:246)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:176)
+ at java.base/java.util.jar.JarFile.(JarFile.java:346)
+ at java.base/java.util.jar.JarFile.(JarFile.java:317)
+ at java.base/java.util.jar.JarFile.(JarFile.java:283)
+ at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128)
+ at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94)
+ at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155)
+ at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105)
+ at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66)
+ at bluej.Main.lambda$new$2(Main.java:152)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Opening project: H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator
+1606989650221: Listening for JDWP connection on address: javadebug
+Connected to debug VM via dt_shmem transport...
+Communication with debug VM fully established.
+Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException
+ at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111)
+ at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508)
+ at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139)
+ at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.getAllEntities(ClassInfoFrontendBlueJ.java:32)
+ at de.upb.bluej.plus.subclasses.Subclasses.findAllClassNames(Subclasses.java:60)
+ at de.upb.bluej.plus.subclasses.Subclasses.updateTarget(Subclasses.java:156)
+ at de.upb.bluej.plus.subclasses.Subclasses$1.run(Subclasses.java:193)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException
+ at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111)
+ at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508)
+ at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139)
+ at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.reparse(ClassInfoFrontendBlueJ.java:142)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.(ClassInfoFrontendBlueJ.java:77)
+ at de.upb.bluej.plus.umleditor2.UmlEditor.updateTargetPane(UmlEditor.java:128)
+ at de.upb.bluej.plus.umleditor2.UmlEditor.updateTarget(UmlEditor.java:230)
+ at de.upb.bluej.plus.umleditor2.UmlEditor$1.run(UmlEditor.java:192)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Simple GUI Extension terminates
+====
+
+====
+BlueJ run started: Thu Dec 03 11:03:45 CET 2020
+BlueJ version 4.2.2
+Java version 11.0.2
+JavaFX version 11.0.2+1
+Virtual machine: OpenJDK 64-Bit Server VM 11.0.2+9 (Oracle Corporation)
+Running on: Windows 7 6.1 (amd64)
+Java Home: C:\Program Files\BlueJ\jdk
+----
+getExtensionsClass: jarFile=._CleanProjectExtension.jar Exception=zip END header not found
+java.util.zip.ZipException: zip END header not found
+ at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529)
+ at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430)
+ at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437)
+ at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268)
+ at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231)
+ at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726)
+ at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:246)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:176)
+ at java.base/java.util.jar.JarFile.(JarFile.java:346)
+ at java.base/java.util.jar.JarFile.(JarFile.java:317)
+ at java.base/java.util.jar.JarFile.(JarFile.java:283)
+ at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128)
+ at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94)
+ at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155)
+ at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105)
+ at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66)
+ at bluej.Main.lambda$new$2(Main.java:152)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+getExtensionsClass: jarFile=._GUI_Extension.jar Exception=zip END header not found
+java.util.zip.ZipException: zip END header not found
+ at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529)
+ at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430)
+ at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437)
+ at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268)
+ at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231)
+ at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726)
+ at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:246)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:176)
+ at java.base/java.util.jar.JarFile.(JarFile.java:346)
+ at java.base/java.util.jar.JarFile.(JarFile.java:317)
+ at java.base/java.util.jar.JarFile.(JarFile.java:283)
+ at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128)
+ at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94)
+ at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155)
+ at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105)
+ at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66)
+ at bluej.Main.lambda$new$2(Main.java:152)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Opening project: H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator
+1606989827405: Listening for JDWP connection on address: javadebug
+Connected to debug VM via dt_shmem transport...
+Communication with debug VM fully established.
+Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException
+ at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111)
+ at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508)
+ at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139)
+ at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.getAllEntities(ClassInfoFrontendBlueJ.java:32)
+ at de.upb.bluej.plus.subclasses.Subclasses.findAllClassNames(Subclasses.java:60)
+ at de.upb.bluej.plus.subclasses.Subclasses.updateTarget(Subclasses.java:156)
+ at de.upb.bluej.plus.subclasses.Subclasses$1.run(Subclasses.java:193)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException
+ at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111)
+ at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508)
+ at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139)
+ at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.reparse(ClassInfoFrontendBlueJ.java:142)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.(ClassInfoFrontendBlueJ.java:77)
+ at de.upb.bluej.plus.umleditor2.UmlEditor.updateTargetPane(UmlEditor.java:128)
+ at de.upb.bluej.plus.umleditor2.UmlEditor.updateTarget(UmlEditor.java:230)
+ at de.upb.bluej.plus.umleditor2.UmlEditor$1.run(UmlEditor.java:192)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+ExtensionWrapper.safePostGenGetMenuItem: Class=org.bluej.UMLextension.UMLExtension Exception=component must be showing on the screen to determine its location
+java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location
+ at java.desktop/java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2101)
+ at java.desktop/java.awt.Component.getLocationOnScreen(Component.java:2075)
+ at org.bluej.UMLextension.MenuBuilder.notifyPostClassMenu(MenuBuilder.java:48)
+ at bluej.extmgr.ClassExtensionMenu.postMenuItem(ClassExtensionMenu.java:66)
+ at bluej.extensions.BlueJ.postMenuItem(BlueJ.java:964)
+ at bluej.extensions.ExtensionBridge.postMenuItem(ExtensionBridge.java:142)
+ at bluej.extmgr.ExtensionWrapper.safePostMenuItem(ExtensionWrapper.java:673)
+ at bluej.extmgr.FXMenuManager.lambda$menuWillBecomeVisible$5(FXMenuManager.java:196)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+ExtensionWrapper.safePostGenGetMenuItem: Class=org.bluej.UMLextension.UMLExtension Exception=component must be showing on the screen to determine its location
+java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location
+ at java.desktop/java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2101)
+ at java.desktop/java.awt.Component.getLocationOnScreen(Component.java:2075)
+ at org.bluej.UMLextension.MenuBuilder.notifyPostClassMenu(MenuBuilder.java:48)
+ at bluej.extmgr.ClassExtensionMenu.postMenuItem(ClassExtensionMenu.java:66)
+ at bluej.extensions.BlueJ.postMenuItem(BlueJ.java:964)
+ at bluej.extensions.ExtensionBridge.postMenuItem(ExtensionBridge.java:142)
+ at bluej.extmgr.ExtensionWrapper.safePostMenuItem(ExtensionWrapper.java:673)
+ at bluej.extmgr.FXMenuManager.lambda$menuWillBecomeVisible$5(FXMenuManager.java:196)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Simple GUI Extension terminates
+====
+
+====
+BlueJ run started: Thu Dec 03 11:04:51 CET 2020
+BlueJ version 4.2.2
+Java version 11.0.2
+JavaFX version 11.0.2+1
+Virtual machine: OpenJDK 64-Bit Server VM 11.0.2+9 (Oracle Corporation)
+Running on: Windows 7 6.1 (amd64)
+Java Home: C:\Program Files\BlueJ\jdk
+----
+getExtensionsClass: jarFile=._CleanProjectExtension.jar Exception=zip END header not found
+java.util.zip.ZipException: zip END header not found
+ at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529)
+ at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430)
+ at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437)
+ at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268)
+ at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231)
+ at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726)
+ at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:246)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:176)
+ at java.base/java.util.jar.JarFile.(JarFile.java:346)
+ at java.base/java.util.jar.JarFile.(JarFile.java:317)
+ at java.base/java.util.jar.JarFile.(JarFile.java:283)
+ at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128)
+ at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94)
+ at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155)
+ at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105)
+ at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66)
+ at bluej.Main.lambda$new$2(Main.java:152)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+getExtensionsClass: jarFile=._GUI_Extension.jar Exception=zip END header not found
+java.util.zip.ZipException: zip END header not found
+ at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529)
+ at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430)
+ at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437)
+ at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268)
+ at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231)
+ at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726)
+ at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:246)
+ at java.base/java.util.zip.ZipFile.(ZipFile.java:176)
+ at java.base/java.util.jar.JarFile.(JarFile.java:346)
+ at java.base/java.util.jar.JarFile.(JarFile.java:317)
+ at java.base/java.util.jar.JarFile.(JarFile.java:283)
+ at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128)
+ at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94)
+ at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155)
+ at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105)
+ at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66)
+ at bluej.Main.lambda$new$2(Main.java:152)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Opening project: H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator
+1606989893440: Listening for JDWP connection on address: javadebug
+Connected to debug VM via dt_shmem transport...
+Communication with debug VM fully established.
+Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException
+ at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111)
+ at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508)
+ at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139)
+ at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.getAllEntities(ClassInfoFrontendBlueJ.java:32)
+ at de.upb.bluej.plus.subclasses.Subclasses.findAllClassNames(Subclasses.java:60)
+ at de.upb.bluej.plus.subclasses.Subclasses.updateTarget(Subclasses.java:156)
+ at de.upb.bluej.plus.subclasses.Subclasses$1.run(Subclasses.java:193)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException
+ at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127)
+ at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111)
+ at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508)
+ at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658)
+ at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139)
+ at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.reparse(ClassInfoFrontendBlueJ.java:142)
+ at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.(ClassInfoFrontendBlueJ.java:77)
+ at de.upb.bluej.plus.umleditor2.UmlEditor.updateTargetPane(UmlEditor.java:128)
+ at de.upb.bluej.plus.umleditor2.UmlEditor.updateTarget(UmlEditor.java:230)
+ at de.upb.bluej.plus.umleditor2.UmlEditor$1.run(UmlEditor.java:192)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+ExtensionWrapper.safePostGenGetMenuItem: Class=org.bluej.UMLextension.UMLExtension Exception=component must be showing on the screen to determine its location
+java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location
+ at java.desktop/java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2101)
+ at java.desktop/java.awt.Component.getLocationOnScreen(Component.java:2075)
+ at org.bluej.UMLextension.MenuBuilder.notifyPostClassMenu(MenuBuilder.java:48)
+ at bluej.extmgr.ClassExtensionMenu.postMenuItem(ClassExtensionMenu.java:66)
+ at bluej.extensions.BlueJ.postMenuItem(BlueJ.java:964)
+ at bluej.extensions.ExtensionBridge.postMenuItem(ExtensionBridge.java:142)
+ at bluej.extmgr.ExtensionWrapper.safePostMenuItem(ExtensionWrapper.java:673)
+ at bluej.extmgr.FXMenuManager.lambda$menuWillBecomeVisible$5(FXMenuManager.java:196)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+ExtensionWrapper.safePostGenGetMenuItem: Class=org.bluej.UMLextension.UMLExtension Exception=component must be showing on the screen to determine its location
+java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location
+ at java.desktop/java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2101)
+ at java.desktop/java.awt.Component.getLocationOnScreen(Component.java:2075)
+ at org.bluej.UMLextension.MenuBuilder.notifyPostClassMenu(MenuBuilder.java:48)
+ at bluej.extmgr.ClassExtensionMenu.postMenuItem(ClassExtensionMenu.java:66)
+ at bluej.extensions.BlueJ.postMenuItem(BlueJ.java:964)
+ at bluej.extensions.ExtensionBridge.postMenuItem(ExtensionBridge.java:142)
+ at bluej.extmgr.ExtensionWrapper.safePostMenuItem(ExtensionWrapper.java:673)
+ at bluej.extmgr.FXMenuManager.lambda$menuWillBecomeVisible$5(FXMenuManager.java:196)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+ExtensionWrapper.safePostGenGetMenuItem: Class=org.bluej.UMLextension.UMLExtension Exception=component must be showing on the screen to determine its location
+java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location
+ at java.desktop/java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2101)
+ at java.desktop/java.awt.Component.getLocationOnScreen(Component.java:2075)
+ at org.bluej.UMLextension.MenuBuilder.notifyPostClassMenu(MenuBuilder.java:48)
+ at bluej.extmgr.ClassExtensionMenu.postMenuItem(ClassExtensionMenu.java:66)
+ at bluej.extensions.BlueJ.postMenuItem(BlueJ.java:964)
+ at bluej.extensions.ExtensionBridge.postMenuItem(ExtensionBridge.java:142)
+ at bluej.extmgr.ExtensionWrapper.safePostMenuItem(ExtensionWrapper.java:673)
+ at bluej.extmgr.FXMenuManager.lambda$menuWillBecomeVisible$5(FXMenuManager.java:196)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+ExtensionWrapper.safePostGenGetMenuItem: Class=org.bluej.UMLextension.UMLExtension Exception=component must be showing on the screen to determine its location
+java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location
+ at java.desktop/java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2101)
+ at java.desktop/java.awt.Component.getLocationOnScreen(Component.java:2075)
+ at org.bluej.UMLextension.MenuBuilder.notifyPostClassMenu(MenuBuilder.java:48)
+ at bluej.extmgr.ClassExtensionMenu.postMenuItem(ClassExtensionMenu.java:66)
+ at bluej.extensions.BlueJ.postMenuItem(BlueJ.java:964)
+ at bluej.extensions.ExtensionBridge.postMenuItem(ExtensionBridge.java:142)
+ at bluej.extmgr.ExtensionWrapper.safePostMenuItem(ExtensionWrapper.java:673)
+ at bluej.extmgr.FXMenuManager.lambda$menuWillBecomeVisible$5(FXMenuManager.java:196)
+ at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
+ at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
+ at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
+ at java.base/java.security.AccessController.doPrivileged(Native Method)
+ at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
+ at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
+ at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
+ at java.base/java.lang.Thread.run(Thread.java:834)
+Dez. 03, 2020 11:07:05 VORM. javafx.scene.CssStyleHelper calculateValue
+WARNING: Could not resolve '-fx-text-background-color' while resolving lookups for '-fx-text-fill' from rule '*.label' in stylesheet jar:file:/C:/Program%20Files/BlueJ/lib/javafx/lib/javafx.controls.jar!/com/sun/javafx/scene/control/skin/modena/modena.bss
+Dez. 03, 2020 11:07:16 VORM. javafx.scene.CssStyleHelper calculateValue
+WARNING: Could not resolve '-fx-text-background-color' while resolving lookups for '-fx-text-fill' from rule '*.label' in stylesheet jar:file:/C:/Program%20Files/BlueJ/lib/javafx/lib/javafx.controls.jar!/com/sun/javafx/scene/control/skin/modena/modena.bss
+Simple GUI Extension terminates
diff --git a/Langlaufsimulator/Dokumente/bluej/bluej.properties b/Langlaufsimulator/Dokumente/bluej/bluej.properties
new file mode 100644
index 0000000..404edc3
--- /dev/null
+++ b/Langlaufsimulator/Dokumente/bluej/bluej.properties
@@ -0,0 +1,14 @@
+#BlueJ-Eigenschaften. Einstellungen in dieser Datei haben Vorrang vor "bluej.defs"
+#Thu Dec 03 11:10:42 CET 2020
+session.numeditors.stride=0
+bluej.uid=d7f88ba8-9f5a-449f-b60b-0388a539b6b8
+bluej.openPackage1=H\:\\Dokumente\\GitHub\\Langlaufsimulator\\Langlaufsimulator
+bluej.editor.stride.sidebarShowing=true
+bluej.startWithTextEval=false
+bluej.recentProject0=H\:\\Dokumente\\GitHub\\Langlaufsimulator\\Langlaufsimulator
+blackbox.uuid=15c55f30-6de2-43e6-a318-b9b25709c0b1
+bluej.editor.fontsize=13
+extensions.org.bluej.extensions.submitter.Submitter.settings.saslrealm=
+bluej.terminal.y=16
+bluej.terminal.x=16
+session.numeditors.java=3
diff --git a/Langlaufsimulator/Dokumente/bluej/bluejplus.log b/Langlaufsimulator/Dokumente/bluej/bluejplus.log
new file mode 100644
index 0000000..e438584
--- /dev/null
+++ b/Langlaufsimulator/Dokumente/bluej/bluejplus.log
@@ -0,0 +1,503 @@
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusExtension.java:startup] Loading core version 0.8.1-SNAPSHOT
+[BlueJ-Plus DEBUG JavaFX Application Thread @ DefaultBlueJPermissionHandler.java:loadPropertiesInto] Trying to load H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Dokumente\bluej\features.properties
+[BlueJ-Plus DEBUG Thread-6 @ FileMonitorThread.java:run] FileMonitorThread started
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Provisioning.java:reload] State of provisioning is true
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loading module Provisioning
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Provisioning.java:reload] State of provisioning is true
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loaded module Provisioning
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loading module Subclasses
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loaded module Subclasses
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loading module UmlEditor
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loaded module UmlEditor
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loading module CodeCompletion
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loaded module CodeCompletion
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SnippetDefs.java:load] Snippet file does not exist. Loading defaults
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loading module Snippets
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SnippetDefs.java:load] Snippet file does not exist. Loading defaults
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loaded module Snippets
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:onFrwChange] Found PkgMgrFrameWrapper for PkgMgrFrame(): Package: Project:Langlaufsimulator
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:setupMenuBarHook] Installed MenuBar hook
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:setupObjectBenchHook] Installed ObjectBench hook
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:setupFXWindowHook] Installed FXWindow hook
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:updatePermissions] Updating permissions for PkgMgrFrame(): Package: Project:Langlaufsimulator
+[BlueJ-Plus ERROR JavaFX Application Thread @ PkgMgrFrameMonitor.java:updateToolbar] Could not find bar in PkgMgrFrame(): Package: Project:Langlaufsimulator
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:updatePermissions] Updating permissions for PkgMgrFrame(): Package: Project:Langlaufsimulator
+[BlueJ-Plus ERROR JavaFX Application Thread @ PkgMgrFrameMonitor.java:updateToolbar] Could not find bar in PkgMgrFrame(): Package: Project:Langlaufsimulator
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: Racesimulator
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: ComparableContent
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: Athlete
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: List
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for List
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: List
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for List
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for List
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Racesimulator
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Racesimulator
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Racesimulator
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Racesimulator
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Racesimulator
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Racesimulator
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Racesimulator
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: ComparableContent
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for ComparableContent
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: ComparableContent
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: ComparableContent
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for ComparableContent
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: ComparableContent
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for ComparableContent
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Athlete
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Athlete
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Athlete
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Athlete
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Athlete
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Athlete
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Athlete
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Queue
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Queue
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Queue
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Queue
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Queue
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: BinarySearchTree
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for BinarySearchTree
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: BinarySearchTree
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for BinarySearchTree
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for BinarySearchTree
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: Racesimulator
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: ComparableContent
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: Athlete
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Competition$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Competition.java]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Competition LocatableToken [beginLine=, hiddenBefore=null, type=69, position=316, length=11, text=Competition]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Competition 316 327
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken newRunner LocatableToken [beginLine=, hiddenBefore=null, type=69, position=402, length=9, text=newRunner]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken newRunner 402 411
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken simulate LocatableToken [beginLine=, hiddenBefore=null, type=69, position=478, length=8, text=simulate]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken simulate 478 486
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities] ListNode
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Subclasses.java:ensureSubClassesMatches] Adding custom target : ListNode
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: List$ListNode
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for List$ListNode
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] wrp is List.ListNode
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target is List
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for List$ListNode
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] wrp is List.ListNode
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target is List
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] BClass has parent. Values used instead are: Class name: List and subclass: ListNode
+[BlueJ-Plus ERROR JavaFX Application Thread @ Subclasses.java:update] Class is a custom targetList$ListNode
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: List$ListNode
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for List$ListNode
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] wrp is List.ListNode
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target is List
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for List$ListNode
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] wrp is List.ListNode
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target is List
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] BClass has parent. Values used instead are: Class name: List and subclass: ListNode
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for List$ListNode
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
+[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .List$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\List.java]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] List
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken first LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2475, length=5, text=first]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken first 2475 2480
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken last LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2525, length=4, text=last]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken last 2525 2529
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken current LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2576, length=7, text=current]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken current 2576 2583
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken List LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2643, length=4, text=List]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken List 2643 2647
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isEmpty LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2921, length=7, text=isEmpty]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isEmpty 2921 2928
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken hasAccess LocatableToken [beginLine=, hiddenBefore=null, type=69, position=3229, length=9, text=hasAccess]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken hasAccess 3229 3238
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken next LocatableToken [beginLine=, hiddenBefore=null, type=69, position=3705, length=4, text=next]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken next 3705 3709
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken toFirst LocatableToken [beginLine=, hiddenBefore=null, type=69, position=3948, length=7, text=toFirst]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken toFirst 3948 3955
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken toLast LocatableToken [beginLine=, hiddenBefore=null, type=69, position=4173, length=6, text=toLast]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken toLast 4173 4179
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getContent LocatableToken [beginLine=, hiddenBefore=null, type=69, position=4581, length=10, text=getContent]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getContent 4581 4591
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken setContent LocatableToken [beginLine=, hiddenBefore=null, type=69, position=5000, length=10, text=setContent]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken setContent 5000 5010
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken insert LocatableToken [beginLine=, hiddenBefore=null, type=69, position=5814, length=6, text=insert]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken insert 5814 5820
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken append LocatableToken [beginLine=, hiddenBefore=null, type=69, position=7186, length=6, text=append]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken append 7186 7192
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken concat LocatableToken [beginLine=, hiddenBefore=null, type=69, position=8104, length=6, text=concat]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken concat 8104 8110
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken remove LocatableToken [beginLine=, hiddenBefore=null, type=69, position=9108, length=6, text=remove]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken remove 9108 9114
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getPrevious LocatableToken [beginLine=, hiddenBefore=null, type=69, position=10298, length=11, text=getPrevious]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getPrevious 10298 10309
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in List
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Racesimulator$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Racesimulator.java]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Racesimulator
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Racesimulator LocatableToken [beginLine=, hiddenBefore=null, type=69, position=323, length=13, text=Racesimulator]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Racesimulator 323 336
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Racesimulator
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .ComparableContent$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\ComparableContent.java]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] ComparableContent
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isGreater LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1256, length=9, text=isGreater]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isGreater 1256 1265
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isEqual LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1785, length=7, text=isEqual]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isEqual 1785 1792
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isLess LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2310, length=6, text=isLess]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isLess 2310 2316
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in ComparableContent
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Athlete$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Athlete.java]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Athlete
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken name LocatableToken [beginLine=, hiddenBefore=null, type=69, position=202, length=4, text=name]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken name 202 206
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken startTime LocatableToken [beginLine=, hiddenBefore=null, type=69, position=219, length=9, text=startTime]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken startTime 219 228
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken endTime LocatableToken [beginLine=, hiddenBefore=null, type=69, position=241, length=7, text=endTime]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken endTime 241 248
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Athlete LocatableToken [beginLine=, hiddenBefore=null, type=69, position=328, length=7, text=Athlete]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Athlete 328 335
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getName LocatableToken [beginLine=, hiddenBefore=null, type=69, position=399, length=7, text=getName]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getName 399 406
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getStartTime LocatableToken [beginLine=, hiddenBefore=null, type=69, position=456, length=12, text=getStartTime]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getStartTime 456 468
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getEndTime LocatableToken [beginLine=, hiddenBefore=null, type=69, position=523, length=10, text=getEndTime]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getEndTime 523 533
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getFinalTime LocatableToken [beginLine=, hiddenBefore=null, type=69, position=586, length=12, text=getFinalTime]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getFinalTime 586 598
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken setStartTime LocatableToken [beginLine=, hiddenBefore=null, type=69, position=662, length=12, text=setStartTime]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken setStartTime 662 674
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken setEndTime LocatableToken [beginLine=, hiddenBefore=null, type=69, position=748, length=10, text=setEndTime]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken setEndTime 748 758
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isGreater LocatableToken [beginLine=, hiddenBefore=null, type=69, position=830, length=9, text=isGreater]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isGreater 830 839
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isEqual LocatableToken [beginLine=, hiddenBefore=null, type=69, position=938, length=7, text=isEqual]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isEqual 938 945
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isLess LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1045, length=6, text=isLess]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isLess 1045 1051
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Athlete
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Queue$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Queue.java]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Queue
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken head LocatableToken [beginLine=, hiddenBefore=null, type=69, position=735, length=4, text=head]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken head 735 739
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken tail LocatableToken [beginLine=, hiddenBefore=null, type=69, position=760, length=4, text=tail]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken tail 760 764
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Queue LocatableToken [beginLine=, hiddenBefore=null, type=69, position=916, length=5, text=Queue]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Queue 916 921
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isEmpty LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1170, length=7, text=isEmpty]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isEmpty 1170 1177
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken enqueue LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1453, length=7, text=enqueue]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken enqueue 1453 1460
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken dequeue LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1833, length=7, text=dequeue]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken dequeue 1833 1840
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken front LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2269, length=5, text=front]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken front 2269 2274
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Queue
+[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .BinarySearchTree$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\BinarySearchTree.java]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in BinarySearchTree
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:updatePermissions] Updating permissions for PkgMgrFrame(): Package: Project:Langlaufsimulator
+[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .List$ListNode in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\List.java]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] List$ListNode
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken contentObject LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1194, length=13, text=contentObject]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken contentObject 1194 1207
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken next LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1230, length=4, text=next]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken next 1230 1234
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken ListNode LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1397, length=8, text=ListNode]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken ListNode 1397 1405
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getContentObject LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1633, length=16, text=getContentObject]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getContentObject 1633 1649
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken setContentObject LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1837, length=16, text=setContentObject]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken setContentObject 1837 1853
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getNextNode LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2073, length=11, text=getNextNode]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getNextNode 2073 2084
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken setNextNode LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2298, length=11, text=setNextNode]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken setNextNode 2298 2309
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PackageEditorWindowChangeMonitor.java:targetsSearchDeleted] Deletion swipe!
+[BlueJ-Plus ERROR JavaFX Application Thread @ BlueJ4BClassBridge.java:toNativeTarget] no target for Queue
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Queue
+[BlueJ-Plus ERROR JavaFX Application Thread @ SourceChangeEventEmitter.java:fireClassRemoved] Exception whilst handling event
+java.lang.NullPointerException : null
+ at de.upb.bluej.plus.snippets.Snippets@bClassUpdate : 42 (Snippets.java)
+ at de.upb.bluej.plus.snippets.Snippets@classRemoved : 204 (Snippets.java)
+ at de.upb.bluej.extend.pkgeditor.SourceChangeEventEmitter@fireClassRemoved : 149 (SourceChangeEventEmitter.java)
+ at de.upb.bluej.extend.pkgeditor.PackageEditorMonitor$2@onChanged : 109 (PackageEditorMonitor.java)
+ at com.sun.javafx.collections.SetListenerHelper$Generic@fireValueChangedEvent : 327 (SetListenerHelper.java)
+ at com.sun.javafx.collections.SetListenerHelper@fireValueChangedEvent : 72 (SetListenerHelper.java)
+ at javafx.collections.FXCollections$SynchronizedObservableSet@lambda$new$0 : 1897 (FXCollections.java)
+ at javafx.collections.WeakSetChangeListener@onChanged : 88 (WeakSetChangeListener.java)
+ at com.sun.javafx.collections.SetListenerHelper$SingleChange@fireValueChangedEvent : 163 (SetListenerHelper.java)
+ at com.sun.javafx.collections.SetListenerHelper@fireValueChangedEvent : 72 (SetListenerHelper.java)
+ at com.sun.javafx.collections.ObservableSetWrapper@callObservers : 128 (ObservableSetWrapper.java)
+ at com.sun.javafx.collections.ObservableSetWrapper@access$100 : 39 (ObservableSetWrapper.java)
+ at com.sun.javafx.collections.ObservableSetWrapper$1@remove : 226 (ObservableSetWrapper.java)
+ at de.upb.bluej.extend.pkgeditor.PackageEditorWindowChangeMonitor@targetsSearchDeleted : 93 (PackageEditorWindowChangeMonitor.java)
+ at de.upb.bluej.extend.pkgeditor.PackageEditorWindowChangeMonitor@onChanged : 136 (PackageEditorWindowChangeMonitor.java)
+ at com.sun.javafx.collections.ListListenerHelper$Generic@fireValueChangedEvent : 329 (ListListenerHelper.java)
+ at com.sun.javafx.collections.ListListenerHelper@fireValueChangedEvent : 73 (ListListenerHelper.java)
+ at com.sun.javafx.collections.VetoableListDecorator@lambda$new$0 : 76 (VetoableListDecorator.java)
+ at com.sun.javafx.collections.ListListenerHelper$Generic@fireValueChangedEvent : 329 (ListListenerHelper.java)
+ at com.sun.javafx.collections.ListListenerHelper@fireValueChangedEvent : 73 (ListListenerHelper.java)
+ at javafx.collections.ObservableListBase@fireChange : 233 (ObservableListBase.java)
+ at javafx.collections.ListChangeBuilder@commit : 482 (ListChangeBuilder.java)
+ at javafx.collections.ListChangeBuilder@endChange : 541 (ListChangeBuilder.java)
+ at javafx.collections.ObservableListBase@endChange : 205 (ObservableListBase.java)
+ at javafx.collections.ModifiableObservableListBase@remove : 183 (ModifiableObservableListBase.java)
+ at com.sun.javafx.collections.VetoableListDecorator@remove : 332 (VetoableListDecorator.java)
+ at com.sun.javafx.collections.VetoableListDecorator@remove : 221 (VetoableListDecorator.java)
+ at bluej.pkgmgr.PackageEditor@graphChanged : 434 (PackageEditor.java)
+ at bluej.pkgmgr.Package@fireChangedEvent : 630 (Package.java)
+ at bluej.pkgmgr.Package@removeTarget : 1845 (Package.java)
+ at bluej.pkgmgr.target.ClassTarget@remove : 2581 (ClassTarget.java)
+ at bluej.pkgmgr.target.ClassTarget$RemoveAction@actionPerformed : 2282 (ClassTarget.java)
+ at bluej.pkgmgr.target.ClassTarget$RemoveAction@lambda$new$0 : 2272 (ClassTarget.java)
+ at com.sun.javafx.event.CompositeEventHandler@dispatchBubblingEvent : 86 (CompositeEventHandler.java)
+ at com.sun.javafx.event.EventHandlerManager@dispatchBubblingEvent : 238 (EventHandlerManager.java)
+ at com.sun.javafx.event.EventHandlerManager@dispatchBubblingEvent : 191 (EventHandlerManager.java)
+ at com.sun.javafx.event.BasicEventDispatcher@dispatchEvent : 58 (BasicEventDispatcher.java)
+ at com.sun.javafx.event.EventDispatchChainImpl@dispatchEvent : 114 (EventDispatchChainImpl.java)
+ at com.sun.javafx.event.EventUtil@fireEventImpl : 74 (EventUtil.java)
+ at com.sun.javafx.event.EventUtil@fireEvent : 49 (EventUtil.java)
+ at javafx.event.Event@fireEvent : 198 (Event.java)
+ at javafx.scene.control.MenuItem@fire : 465 (MenuItem.java)
+ at com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer@doSelect : 1380 (ContextMenuContent.java)
+ at com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer@lambda$createChildren$12 : 1333 (ContextMenuContent.java)
+ at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord@handleBubblingEvent : 218 (CompositeEventHandler.java)
+ at com.sun.javafx.event.CompositeEventHandler@dispatchBubblingEvent : 80 (CompositeEventHandler.java)
+ at com.sun.javafx.event.EventHandlerManager@dispatchBubblingEvent : 238 (EventHandlerManager.java)
+ at com.sun.javafx.event.EventHandlerManager@dispatchBubblingEvent : 191 (EventHandlerManager.java)
+ at com.sun.javafx.event.CompositeEventDispatcher@dispatchBubblingEvent : 59 (CompositeEventDispatcher.java)
+ at com.sun.javafx.event.BasicEventDispatcher@dispatchEvent : 58 (BasicEventDispatcher.java)
+ at com.sun.javafx.event.EventDispatchChainImpl@dispatchEvent : 114 (EventDispatchChainImpl.java)
+ at com.sun.javafx.event.BasicEventDispatcher@dispatchEvent : 56 (BasicEventDispatcher.java)
+ at com.sun.javafx.event.EventDispatchChainImpl@dispatchEvent : 114 (EventDispatchChainImpl.java)
+ at com.sun.javafx.event.BasicEventDispatcher@dispatchEvent : 56 (BasicEventDispatcher.java)
+ at com.sun.javafx.event.EventDispatchChainImpl@dispatchEvent : 114 (EventDispatchChainImpl.java)
+ at com.sun.javafx.event.BasicEventDispatcher@dispatchEvent : 56 (BasicEventDispatcher.java)
+ at com.sun.javafx.event.EventDispatchChainImpl@dispatchEvent : 114 (EventDispatchChainImpl.java)
+ at com.sun.javafx.event.EventUtil@fireEventImpl : 74 (EventUtil.java)
+ at com.sun.javafx.event.EventUtil@fireEvent : 54 (EventUtil.java)
+ at javafx.event.Event@fireEvent : 198 (Event.java)
+ at javafx.scene.Scene$MouseHandler@process : 3851 (Scene.java)
+ at javafx.scene.Scene$MouseHandler@access$1200 : 3579 (Scene.java)
+ at javafx.scene.Scene@processMouseEvent : 1849 (Scene.java)
+ at javafx.scene.Scene$ScenePeerListener@mouseEvent : 2588 (Scene.java)
+ at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification@run : 397 (GlassViewEventHandler.java)
+ at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification@run : 295 (GlassViewEventHandler.java)
+ at java.security.AccessController@doPrivileged : -2 (AccessController.java)
+ at com.sun.javafx.tk.quantum.GlassViewEventHandler@lambda$handleMouseEvent$2 : 434 (GlassViewEventHandler.java)
+ at com.sun.javafx.tk.quantum.QuantumToolkit@runWithoutRenderLock : 390 (QuantumToolkit.java)
+ at com.sun.javafx.tk.quantum.GlassViewEventHandler@handleMouseEvent : 433 (GlassViewEventHandler.java)
+ at com.sun.glass.ui.View@handleMouseEvent : 556 (View.java)
+ at com.sun.glass.ui.View@notifyMouse : 942 (View.java)
+ at com.sun.glass.ui.win.WinApplication@_runLoop : -2 (WinApplication.java)
+ at com.sun.glass.ui.win.WinApplication@lambda$runLoop$3 : 174 (WinApplication.java)
+ at java.lang.Thread@run : 834 (Thread.java)
+
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PackageEditorWindowChangeMonitor.java:targetsSearchDeleted] Deletion swipe!
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Queue
+[BlueJ-Plus ERROR JavaFX Application Thread @ SourceChangeEventEmitter.java:fireClassRemoved] Exception whilst handling event
+java.lang.NullPointerException : null
+ at de.upb.bluej.plus.snippets.Snippets@bClassUpdate : 42 (Snippets.java)
+ at de.upb.bluej.plus.snippets.Snippets@classRemoved : 204 (Snippets.java)
+ at de.upb.bluej.extend.pkgeditor.SourceChangeEventEmitter@fireClassRemoved : 149 (SourceChangeEventEmitter.java)
+ at de.upb.bluej.extend.pkgeditor.FileMonitorThread@lambda$0 : 289 (FileMonitorThread.java)
+ at com.sun.javafx.application.PlatformImpl@lambda$runLater$10 : 428 (PlatformImpl.java)
+ at java.security.AccessController@doPrivileged : -2 (AccessController.java)
+ at com.sun.javafx.application.PlatformImpl@lambda$runLater$11 : 427 (PlatformImpl.java)
+ at com.sun.glass.ui.InvokeLaterDispatcher$Future@run : 96 (InvokeLaterDispatcher.java)
+ at com.sun.glass.ui.win.WinApplication@_runLoop : -2 (WinApplication.java)
+ at com.sun.glass.ui.win.WinApplication@lambda$runLoop$3 : 174 (WinApplication.java)
+ at java.lang.Thread@run : 834 (Thread.java)
+
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Competition$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Competition.java]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Competition LocatableToken [beginLine=, hiddenBefore=null, type=69, position=316, length=11, text=Competition]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Competition 316 327
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken newRunner LocatableToken [beginLine=, hiddenBefore=null, type=69, position=402, length=9, text=newRunner]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken newRunner 402 411
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken simulate LocatableToken [beginLine=, hiddenBefore=null, type=69, position=505, length=8, text=simulate]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken simulate 505 513
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Competition$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Competition.java]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Competition LocatableToken [beginLine=, hiddenBefore=null, type=69, position=316, length=11, text=Competition]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Competition 316 327
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken newRunner LocatableToken [beginLine=, hiddenBefore=null, type=69, position=402, length=9, text=newRunner]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken newRunner 402 411
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken simulate LocatableToken [beginLine=, hiddenBefore=null, type=69, position=526, length=8, text=simulate]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken simulate 526 534
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Competition$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Competition.java]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Competition LocatableToken [beginLine=, hiddenBefore=null, type=69, position=316, length=11, text=Competition]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Competition 316 327
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken newRunner LocatableToken [beginLine=, hiddenBefore=null, type=69, position=402, length=9, text=newRunner]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken newRunner 402 411
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken simulate LocatableToken [beginLine=, hiddenBefore=null, type=69, position=526, length=8, text=simulate]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken simulate 526 534
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Competition$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Competition.java]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Competition LocatableToken [beginLine=, hiddenBefore=null, type=69, position=244, length=11, text=Competition]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Competition 244 255
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken newRunner LocatableToken [beginLine=, hiddenBefore=null, type=69, position=330, length=9, text=newRunner]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken newRunner 330 339
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken simulate LocatableToken [beginLine=, hiddenBefore=null, type=69, position=454, length=8, text=simulate]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken simulate 454 462
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Competition$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Competition.java]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken runners LocatableToken [beginLine=, hiddenBefore=null, type=69, position=187, length=7, text=runners]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken runners 187 194
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Competition LocatableToken [beginLine=, hiddenBefore=null, type=69, position=278, length=11, text=Competition]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Competition 278 289
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken newRunner LocatableToken [beginLine=, hiddenBefore=null, type=69, position=364, length=9, text=newRunner]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken newRunner 364 373
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken simulate LocatableToken [beginLine=, hiddenBefore=null, type=69, position=488, length=8, text=simulate]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken simulate 488 496
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Competition$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Competition.java]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken runners LocatableToken [beginLine=, hiddenBefore=null, type=69, position=187, length=7, text=runners]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken runners 187 194
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Competition LocatableToken [beginLine=, hiddenBefore=null, type=69, position=278, length=11, text=Competition]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Competition 278 289
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken newRunner LocatableToken [beginLine=, hiddenBefore=null, type=69, position=364, length=9, text=newRunner]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken newRunner 364 373
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken simulate LocatableToken [beginLine=, hiddenBefore=null, type=69, position=491, length=8, text=simulate]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken simulate 491 499
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Competition$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Competition.java]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken runners LocatableToken [beginLine=, hiddenBefore=null, type=69, position=187, length=7, text=runners]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken runners 187 194
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Competition LocatableToken [beginLine=, hiddenBefore=null, type=69, position=278, length=11, text=Competition]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Competition 278 289
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken newRunner LocatableToken [beginLine=, hiddenBefore=null, type=69, position=364, length=9, text=newRunner]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken newRunner 364 373
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken simulate LocatableToken [beginLine=, hiddenBefore=null, type=69, position=500, length=8, text=simulate]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken simulate 500 508
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Competition$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Competition.java]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken runners LocatableToken [beginLine=, hiddenBefore=null, type=69, position=187, length=7, text=runners]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken runners 187 194
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Competition LocatableToken [beginLine=, hiddenBefore=null, type=69, position=278, length=11, text=Competition]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Competition 278 289
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken newRunner LocatableToken [beginLine=, hiddenBefore=null, type=69, position=364, length=9, text=newRunner]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken newRunner 364 373
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken simulate LocatableToken [beginLine=, hiddenBefore=null, type=69, position=518, length=8, text=simulate]
+[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken simulate 518 526
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for BinarySearchTree
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for ComparableContent
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Racesimulator
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Athlete
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for List
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for List$ListNode
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:onFrwChange] Removed Wrapper for PkgMgrFrame(): empty
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : absent in BinarySearchTree
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : absent in ComparableContent
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : absent in Competition
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : absent in Racesimulator
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : absent in Athlete
+[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : absent in List
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusExtension.java:terminate] Terminating plugin
+[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJExtend.java:teardown] terminating PluginBase
+[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusExtension.java:terminate] Plugin terminated
+[BlueJ-Plus ERROR Thread-6 @ FileMonitorThread.java:run] java.lang.InterruptedException
+[BlueJ-Plus DEBUG Thread-6 @ FileMonitorThread.java:run] FileMonitorThread terminated
diff --git a/Langlaufsimulator/Dokumente/bluej/import-cache.xml b/Langlaufsimulator/Dokumente/bluej/import-cache.xml
new file mode 100644
index 0000000..519e6d7
--- /dev/null
+++ b/Langlaufsimulator/Dokumente/bluej/import-cache.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Langlaufsimulator/Dokumente/bluej/moe.properties b/Langlaufsimulator/Dokumente/bluej/moe.properties
new file mode 100644
index 0000000..54251e8
--- /dev/null
+++ b/Langlaufsimulator/Dokumente/bluej/moe.properties
@@ -0,0 +1,2 @@
+#Moe-Editor-Eigenschaften. Einstellungen in dieser Datei haben Vorrang vor "moe.defs"
+#Thu Dec 03 11:10:42 CET 2020
diff --git a/Langlaufsimulator/List$ListNode.class b/Langlaufsimulator/List$ListNode.class
new file mode 100644
index 0000000000000000000000000000000000000000..af1b6080f00dcae5161d6737825299fdbaf267df
GIT binary patch
literal 1326
zcmb7CYj4s}7=B8jjLU=}!^?CsWn1YcIQ?MamL-P7Xu|Nr2p{}bu)!`^2rWkcl_nAs
zKllUuQO4(O3+0lTNWwWi@9nvq^ZU=wUjUxtSqcdprJ>Sq2pPO
z_qKaw^*jZI=9T%$tPf15Uk_rZ3R0JL-!Z+(*kVJw5p=Y_j4bBjj`f*+8%^8wTEq9O
z$i8tLYup%^u4}mpa!pB9W_h;k`jNAxLFcuF0?qqiyA`t2{7SZHXSQQ|=L&Z8Ahb@i
z+98>S&mh;d9ji6@*tN!OvpXQCLUY(N2OV>4%Q+0j1%}i|p&|vP%8cIUR~;Due;W}t*^HVOolKmS{!)0MTAv5%VF#vhGvKt4Jia3Mpq&@
ziIEg2*b9=^4wKsS<#00YS+8udHYI#&@@i;h%W}QfL)S~g=wf#7K$V?8Plc)IYI+?K`TxdWN334nlD3HkRiE1hUC&jiDZICe?K
u!mR`{E-0gQjf{Q&1w^;8C}W?3W-<?M$>yX0
literal 0
HcmV?d00001
diff --git a/Langlaufsimulator/List.class b/Langlaufsimulator/List.class
new file mode 100644
index 0000000000000000000000000000000000000000..bd63d48b6376587c43d8d002997a8e5a2662e049
GIT binary patch
literal 3387
zcmb7GTWnNS6kTWLcBY+9+v#g41xit{okw51q_mVmr3lQFVoMc_kLhrQ!FFac50rn6
ze;WS;zo9Yl0}?C-6F)H$jqk*m82$0v#OQ}e)V1%qGjpd?P578|&)sLAz0O*DpMB@v
z-*-L+@Hn3JA%G_u(1If}Ov`Z8$KgpId^jev<1#xTL(Ge~JZHpwQf9L}7*iH_ODvT(XNt>z#`mys7+=h`7Kqf+AF5JC!IyXJ>g=!GBzn|m%YoZ!J$T?XK?D6&1_|LwrSoQvC$G=u%uA_E
zkzBlK^A(+DPa>N&)92`x%%qbEx;6A`Ic0BMR&uA%rEO~xJ7$H?nai0=%#cwqm$M3u
z6l1mw)T=jE>Lp|aue=L}KFP$o7?tADJJ%ecvaGOk+);M>Yt@>lH8BfwnPM(!PN$^E
z8iehjWRE;%%zPnkN(tuu*obaF+R@?11{u0!*nvm=n8#^99+BAs!hSrB0VYMllqt&Q
zXZ#q)0YA>*tRFkY$I!wC)|QGEaE7I(RcU28RfS_M1uFHX>x-sJF_lc4>^#=8mb5i;
zLj|R+CQS?2#>Nm}i*fTu=1}P5%!MFFics}VJsj^%oKrB4o9O!@_b5I)!ndKq>I1lB
zaLZuaq}`3p9D}H{d<`VffJHPTNz`-LLaSfzM-R60t+&dujc-a4z){fV`4qIK@GZDL
zf!A1p;eMY6!-DZxi)lyLrkb!~k+9qOtAnd?QX(?h9M>WkcmD(7^1~xMR-;&ZcolV5
z&>SWgV-+4-FwLadO3Z8U;&rs)4F_I(4I{CX7`dU^$fU1~_MDxc0MWcx(I{xHb)eoP
z)LX2Hw;fP{8Yr;?Ugvmy-^gMy34qCN_jatI`8|ns)
zP6e+MYlT?vIj~x5Xo;nYmc9!SVni`uV;1>zF?>hlF4`QpkySKEr8{A7qY)pn!tYqH
zLA}q0Wdsajh_QRQtFk5s&}+k7lk#LT+wE&PLK8cSK8l(om_Y}VM@j0V9Qp{pGvNq<
z<06J+`5HFcwdJ3Q4zR*j(KHa{u!2BT95@X}d1F`5Bh_&Q8yrDoK~~)rZilUo@hPG2
zk>BS$+85;TB|`WLBlsG7@eM}tEe_#3OyheT!w;Cnk2s5;@B)73egDPMV>d5e2u;{U
zCEScMg58|C=;yO%q*hkTbf{I?87%J<1@%s?rR>yN%FdFOO)wr{)C=Ez_+8x&Rri!s
z#Z3~Eb{L_mAuUK_nAvS!LAOJgTX2hrYqaTMp#i@!#P8JR59a<)a{Y^)NFk+U&C>7nI;Eb{ezlP
zFdVTufJ>gdp6(R{SqyHm3N70jkyb8)TL!C@>jDomNl;A)r~o#oR%~U%39An5QJpxT
zHsY}A#!C>f6^(efWojqx8xK^Ju?Mi|)e*d8_nnlD$R#r5wf-
Rp9VdA{5*oA%v#V2*S~=)CCUH*
literal 0
HcmV?d00001
diff --git a/Langlaufsimulator/List.ctxt b/Langlaufsimulator/List.ctxt
new file mode 100644
index 0000000..3bad4ea
--- /dev/null
+++ b/Langlaufsimulator/List.ctxt
@@ -0,0 +1,43 @@
+#BlueJ class context
+comment0.target=List
+comment0.text=\r\n\ \r\n\ Materialien\ zu\ den\ zentralen\ NRW-Abiturpruefungen\ im\ Fach\ Informatik\ ab\ 2018\r\n\
\r\n\ \r\n\ Generische\ Klasse\ List\r\n\
\r\n\ \r\n\ Objekt\ der\ generischen\ Klasse\ List\ verwalten\ beliebig\ viele\ linear\r\n\ angeordnete\ Objekte\ vom\ Typ\ ContentType.\ Auf\ hoechstens\ ein\ Listenobjekt,\r\n\ aktuellesObjekt\ genannt,\ kann\ jeweils\ zugegriffen\ werden.
\r\n\ Wenn\ eine\ Liste\ leer\ ist,\ vollstaendig\ durchlaufen\ wurde\ oder\ das\ aktuelle\r\n\ Objekt\ am\ Ende\ der\ Liste\ geloescht\ wurde,\ gibt\ es\ kein\ aktuelles\ Objekt.
\r\n\ Das\ erste\ oder\ das\ letzte\ Objekt\ einer\ Liste\ koennen\ durch\ einen\ Auftrag\ zum\r\n\ aktuellen\ Objekt\ gemacht\ werden.\ Ausserdem\ kann\ das\ dem\ aktuellen\ Objekt\r\n\ folgende\ Listenobjekt\ zum\ neuen\ aktuellen\ Objekt\ werden.\
\r\n\ Das\ aktuelle\ Objekt\ kann\ gelesen,\ veraendert\ oder\ geloescht\ werden.\ Ausserdem\r\n\ kann\ vor\ dem\ aktuellen\ Objekt\ ein\ Listenobjekt\ eingefuegt\ werden.\r\n\
\r\n\ \r\n\ @author\ Qualitaets-\ und\ UnterstuetzungsAgentur\ -\ Landesinstitut\ fuer\ Schule\r\n\ @version\ Generisch_06\ 2015-10-25\r\n
+comment1.params=
+comment1.target=List()
+comment1.text=\r\n\ Eine\ leere\ Liste\ wird\ erzeugt.\r\n
+comment10.params=pContent
+comment10.target=void\ append(java.lang.Object)
+comment10.text=\r\n\ Falls\ pContent\ gleich\ null\ ist,\ geschieht\ nichts.
\r\n\ Ansonsten\ wird\ ein\ neues\ Objekt\ pContent\ am\ Ende\ der\ Liste\ eingefuegt.\r\n\ Das\ aktuelle\ Objekt\ bleibt\ unveraendert.\
\r\n\ Wenn\ die\ Liste\ leer\ ist,\ wird\ das\ Objekt\ pContent\ in\ die\ Liste\ eingefuegt\r\n\ und\ es\ gibt\ weiterhin\ kein\ aktuelles\ Objekt\ (hasAccess()\ \=\=\ false).\r\n\ \r\n\ @param\ pContent\r\n\ \ \ \ \ \ \ \ \ \ \ \ das\ anzuhaengende\ Objekt\ vom\ Typ\ ContentType\r\n
+comment11.params=pList
+comment11.target=void\ concat(List)
+comment11.text=\r\n\ Falls\ es\ sich\ bei\ der\ Liste\ und\ pList\ um\ dasselbe\ Objekt\ handelt,\r\n\ pList\ null\ oder\ eine\ leere\ Liste\ ist,\ geschieht\ nichts.
\r\n\ Ansonsten\ wird\ die\ Liste\ pList\ an\ die\ aktuelle\ Liste\ angehaengt.\r\n\ Anschliessend\ wird\ pList\ eine\ leere\ Liste.\ Das\ aktuelle\ Objekt\ bleibt\r\n\ unveraendert.\ Insbesondere\ bleibt\ hasAccess\ identisch.\r\n\ \r\n\ @param\ pList\r\n\ \ \ \ \ \ \ \ \ \ \ \ die\ am\ Ende\ anzuhaengende\ Liste\ vom\ Typ\ List\r\n
+comment12.params=
+comment12.target=void\ remove()
+comment12.text=\r\n\ Wenn\ die\ Liste\ leer\ ist\ oder\ es\ kein\ aktuelles\ Objekt\ gibt\ (hasAccess()\r\n\ \=\=\ false),\ geschieht\ nichts.
\r\n\ Falls\ es\ ein\ aktuelles\ Objekt\ gibt\ (hasAccess()\ \=\=\ true),\ wird\ das\r\n\ aktuelle\ Objekt\ geloescht\ und\ das\ Objekt\ hinter\ dem\ geloeschten\ Objekt\r\n\ wird\ zum\ aktuellen\ Objekt.\
\r\n\ Wird\ das\ Objekt,\ das\ am\ Ende\ der\ Liste\ steht,\ geloescht,\ gibt\ es\ kein\r\n\ aktuelles\ Objekt\ mehr.\r\n
+comment13.params=pNode
+comment13.target=List.ListNode\ getPrevious(List.ListNode)
+comment13.text=\r\n\ Liefert\ den\ Vorgaengerknoten\ des\ Knotens\ pNode.\ Ist\ die\ Liste\ leer,\ pNode\r\n\ \=\=\ null,\ pNode\ nicht\ in\ der\ Liste\ oder\ pNode\ der\ erste\ Knoten\ der\ Liste,\r\n\ wird\ null\ zurueckgegeben.\r\n\r\n\ @param\ pNode\r\n\ \ \ \ \ \ \ \ \ der\ Knoten,\ dessen\ Vorgaenger\ zurueckgegeben\ werden\ soll\r\n\ @return\ der\ Vorgaenger\ des\ Knotens\ pNode\ oder\ null,\ falls\ die\ Liste\ leer\ ist,\r\n\ \ \ \ \ \ \ \ \ pNode\ \=\=\ null\ ist,\ pNode\ nicht\ in\ der\ Liste\ ist\ oder\ pNode\ der\ erste\ Knoten\r\n\ \ \ \ \ \ \ \ \ der\ Liste\ ist\r\n
+comment2.params=
+comment2.target=boolean\ isEmpty()
+comment2.text=\r\n\ Die\ Anfrage\ liefert\ den\ Wert\ true,\ wenn\ die\ Liste\ keine\ Objekte\ enthaelt,\r\n\ sonst\ liefert\ sie\ den\ Wert\ false.\r\n\ \r\n\ @return\ true,\ wenn\ die\ Liste\ leer\ ist,\ sonst\ false\r\n
+comment3.params=
+comment3.target=boolean\ hasAccess()
+comment3.text=\r\n\ Die\ Anfrage\ liefert\ den\ Wert\ true,\ wenn\ es\ ein\ aktuelles\ Objekt\ gibt,\r\n\ sonst\ liefert\ sie\ den\ Wert\ false.\r\n\ \r\n\ @return\ true,\ falls\ Zugriff\ moeglich,\ sonst\ false\r\n
+comment4.params=
+comment4.target=void\ next()
+comment4.text=\r\n\ Falls\ die\ Liste\ nicht\ leer\ ist,\ es\ ein\ aktuelles\ Objekt\ gibt\ und\ dieses\r\n\ nicht\ das\ letzte\ Objekt\ der\ Liste\ ist,\ wird\ das\ dem\ aktuellen\ Objekt\ in\r\n\ der\ Liste\ folgende\ Objekt\ zum\ aktuellen\ Objekt,\ andernfalls\ gibt\ es\ nach\r\n\ Ausfuehrung\ des\ Auftrags\ kein\ aktuelles\ Objekt,\ d.h.\ hasAccess()\ liefert\r\n\ den\ Wert\ false.\r\n
+comment5.params=
+comment5.target=void\ toFirst()
+comment5.text=\r\n\ Falls\ die\ Liste\ nicht\ leer\ ist,\ wird\ das\ erste\ Objekt\ der\ Liste\ aktuelles\r\n\ Objekt.\ Ist\ die\ Liste\ leer,\ geschieht\ nichts.\r\n
+comment6.params=
+comment6.target=void\ toLast()
+comment6.text=\r\n\ Falls\ die\ Liste\ nicht\ leer\ ist,\ wird\ das\ letzte\ Objekt\ der\ Liste\r\n\ aktuelles\ Objekt.\ Ist\ die\ Liste\ leer,\ geschieht\ nichts.\r\n
+comment7.params=
+comment7.target=java.lang.Object\ getContent()
+comment7.text=\r\n\ Falls\ es\ ein\ aktuelles\ Objekt\ gibt\ (hasAccess()\ \=\=\ true),\ wird\ das\r\n\ aktuelle\ Objekt\ zurueckgegeben,\ andernfalls\ (hasAccess()\ \=\=\ false)\ gibt\r\n\ die\ Anfrage\ den\ Wert\ null\ zurueck.\r\n\ \r\n\ @return\ das\ aktuelle\ Objekt\ (vom\ Typ\ ContentType)\ oder\ null,\ wenn\ es\r\n\ \ \ \ \ \ \ \ \ kein\ aktuelles\ Objekt\ gibt\r\n
+comment8.params=pContent
+comment8.target=void\ setContent(java.lang.Object)
+comment8.text=\r\n\ Falls\ es\ ein\ aktuelles\ Objekt\ gibt\ (hasAccess()\ \=\=\ true)\ und\ pContent\r\n\ ungleich\ null\ ist,\ wird\ das\ aktuelle\ Objekt\ durch\ pContent\ ersetzt.\ Sonst\r\n\ geschieht\ nichts.\r\n\ \r\n\ @param\ pContent\r\n\ \ \ \ \ \ \ \ \ \ \ \ das\ zu\ schreibende\ Objekt\ vom\ Typ\ ContentType\r\n
+comment9.params=pContent
+comment9.target=void\ insert(java.lang.Object)
+comment9.text=\r\n\ Falls\ es\ ein\ aktuelles\ Objekt\ gibt\ (hasAccess()\ \=\=\ true),\ wird\ ein\ neues\r\n\ Objekt\ vor\ dem\ aktuellen\ Objekt\ in\ die\ Liste\ eingefuegt.\ Das\ aktuelle\r\n\ Objekt\ bleibt\ unveraendert.\
\r\n\ Wenn\ die\ Liste\ leer\ ist,\ wird\ pContent\ in\ die\ Liste\ eingefuegt\ und\ es\r\n\ gibt\ weiterhin\ kein\ aktuelles\ Objekt\ (hasAccess()\ \=\=\ false).\
\r\n\ Falls\ es\ kein\ aktuelles\ Objekt\ gibt\ (hasAccess()\ \=\=\ false)\ und\ die\ Liste\r\n\ nicht\ leer\ ist\ oder\ pContent\ gleich\ null\ ist,\ geschieht\ nichts.\r\n\ \r\n\ @param\ pContent\r\n\ \ \ \ \ \ \ \ \ \ \ \ das\ einzufuegende\ Objekt\ vom\ Typ\ ContentType\r\n
+numComments=14
diff --git a/Langlaufsimulator/List.java b/Langlaufsimulator/List.java
new file mode 100644
index 0000000..8c82b92
--- /dev/null
+++ b/Langlaufsimulator/List.java
@@ -0,0 +1,345 @@
+ /**
+ *
+ * Materialien zu den zentralen NRW-Abiturpruefungen im Fach Informatik ab 2018
+ *
+ *
+ * Generische Klasse List
+ *
+ *
+ * Objekt der generischen Klasse List verwalten beliebig viele linear
+ * angeordnete Objekte vom Typ ContentType. Auf hoechstens ein Listenobjekt,
+ * aktuellesObjekt genannt, kann jeweils zugegriffen werden.
+ * Wenn eine Liste leer ist, vollstaendig durchlaufen wurde oder das aktuelle
+ * Objekt am Ende der Liste geloescht wurde, gibt es kein aktuelles Objekt.
+ * Das erste oder das letzte Objekt einer Liste koennen durch einen Auftrag zum
+ * aktuellen Objekt gemacht werden. Ausserdem kann das dem aktuellen Objekt
+ * folgende Listenobjekt zum neuen aktuellen Objekt werden.
+ * Das aktuelle Objekt kann gelesen, veraendert oder geloescht werden. Ausserdem
+ * kann vor dem aktuellen Objekt ein Listenobjekt eingefuegt werden.
+ *
+ *
+ * @author Qualitaets- und UnterstuetzungsAgentur - Landesinstitut fuer Schule
+ * @version Generisch_06 2015-10-25
+ */
+public class List {
+
+ /* --------- Anfang der privaten inneren Klasse -------------- */
+
+ private class ListNode {
+
+ private ContentType contentObject;
+ private ListNode next;
+
+ /**
+ * Ein neues Objekt wird erschaffen. Der Verweis ist leer.
+ *
+ * @param pContent das Inhaltsobjekt vom Typ ContentType
+ */
+ private ListNode(ContentType pContent) {
+ contentObject = pContent;
+ next = null;
+ }
+
+ /**
+ * Der Inhalt des Knotens wird zurueckgeliefert.
+ *
+ * @return das Inhaltsobjekt des Knotens
+ */
+ public ContentType getContentObject() {
+ return contentObject;
+ }
+
+ /**
+ * Der Inhalt dieses Kontens wird gesetzt.
+ *
+ * @param pContent das Inhaltsobjekt vom Typ ContentType
+ */
+ public void setContentObject(ContentType pContent) {
+ contentObject = pContent;
+ }
+
+ /**
+ * Der Nachfolgeknoten wird zurueckgeliefert.
+ *
+ * @return das Objekt, auf das der aktuelle Verweis zeigt
+ */
+ public ListNode getNextNode() {
+ return this.next;
+ }
+
+ /**
+ * Der Verweis wird auf das Objekt, das als Parameter uebergeben
+ * wird, gesetzt.
+ *
+ * @param pNext der Nachfolger des Knotens
+ */
+ public void setNextNode(ListNode pNext) {
+ this.next = pNext;
+ }
+
+ }
+
+ /* ----------- Ende der privaten inneren Klasse -------------- */
+
+ // erstes Element der Liste
+ ListNode first;
+
+ // letztes Element der Liste
+ ListNode last;
+
+ // aktuelles Element der Liste
+ ListNode current;
+
+ /**
+ * Eine leere Liste wird erzeugt.
+ */
+ public List() {
+ first = null;
+ last = null;
+ current = null;
+ }
+
+ /**
+ * Die Anfrage liefert den Wert true, wenn die Liste keine Objekte enthaelt,
+ * sonst liefert sie den Wert false.
+ *
+ * @return true, wenn die Liste leer ist, sonst false
+ */
+ public boolean isEmpty() {
+ // Die Liste ist leer, wenn es kein erstes Element gibt.
+ return first == null;
+ }
+
+ /**
+ * Die Anfrage liefert den Wert true, wenn es ein aktuelles Objekt gibt,
+ * sonst liefert sie den Wert false.
+ *
+ * @return true, falls Zugriff moeglich, sonst false
+ */
+ public boolean hasAccess() {
+ // Es gibt keinen Zugriff, wenn current auf kein Element verweist.
+ return current != null;
+ }
+
+ /**
+ * Falls die Liste nicht leer ist, es ein aktuelles Objekt gibt und dieses
+ * nicht das letzte Objekt der Liste ist, wird das dem aktuellen Objekt in
+ * der Liste folgende Objekt zum aktuellen Objekt, andernfalls gibt es nach
+ * Ausfuehrung des Auftrags kein aktuelles Objekt, d.h. hasAccess() liefert
+ * den Wert false.
+ */
+ public void next() {
+ if (this.hasAccess()) {
+ current = current.getNextNode();
+ }
+ }
+
+ /**
+ * Falls die Liste nicht leer ist, wird das erste Objekt der Liste aktuelles
+ * Objekt. Ist die Liste leer, geschieht nichts.
+ */
+ public void toFirst() {
+ if (!isEmpty()) {
+ current = first;
+ }
+ }
+
+ /**
+ * Falls die Liste nicht leer ist, wird das letzte Objekt der Liste
+ * aktuelles Objekt. Ist die Liste leer, geschieht nichts.
+ */
+ public void toLast() {
+ if (!isEmpty()) {
+ current = last;
+ }
+ }
+
+ /**
+ * Falls es ein aktuelles Objekt gibt (hasAccess() == true), wird das
+ * aktuelle Objekt zurueckgegeben, andernfalls (hasAccess() == false) gibt
+ * die Anfrage den Wert null zurueck.
+ *
+ * @return das aktuelle Objekt (vom Typ ContentType) oder null, wenn es
+ * kein aktuelles Objekt gibt
+ */
+ public ContentType getContent() {
+ if (this.hasAccess()) {
+ return current.getContentObject();
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Falls es ein aktuelles Objekt gibt (hasAccess() == true) und pContent
+ * ungleich null ist, wird das aktuelle Objekt durch pContent ersetzt. Sonst
+ * geschieht nichts.
+ *
+ * @param pContent
+ * das zu schreibende Objekt vom Typ ContentType
+ */
+ public void setContent(ContentType pContent) {
+ // Nichts tun, wenn es keinen Inhalt oder kein aktuelles Element gibt.
+ if (pContent != null && this.hasAccess()) {
+ current.setContentObject(pContent);
+ }
+ }
+
+ /**
+ * Falls es ein aktuelles Objekt gibt (hasAccess() == true), wird ein neues
+ * Objekt vor dem aktuellen Objekt in die Liste eingefuegt. Das aktuelle
+ * Objekt bleibt unveraendert.
+ * Wenn die Liste leer ist, wird pContent in die Liste eingefuegt und es
+ * gibt weiterhin kein aktuelles Objekt (hasAccess() == false).
+ * Falls es kein aktuelles Objekt gibt (hasAccess() == false) und die Liste
+ * nicht leer ist oder pContent gleich null ist, geschieht nichts.
+ *
+ * @param pContent
+ * das einzufuegende Objekt vom Typ ContentType
+ */
+ public void insert(ContentType pContent) {
+ if (pContent != null) { // Nichts tun, wenn es keinen Inhalt gibt.
+ if (this.hasAccess()) { // Fall: Es gibt ein aktuelles Element.
+
+ // Neuen Knoten erstellen.
+ ListNode newNode = new ListNode(pContent);
+
+ if (current != first) { // Fall: Nicht an erster Stelle einfuegen.
+ ListNode previous = this.getPrevious(current);
+ newNode.setNextNode(previous.getNextNode());
+ previous.setNextNode(newNode);
+ } else { // Fall: An erster Stelle einfuegen.
+ newNode.setNextNode(first);
+ first = newNode;
+ }
+
+ } else { //Fall: Es gibt kein aktuelles Element.
+
+ if (this.isEmpty()) { // Fall: In leere Liste einfuegen.
+
+ // Neuen Knoten erstellen.
+ ListNode newNode = new ListNode(pContent);
+
+ first = newNode;
+ last = newNode;
+ }
+
+ }
+ }
+ }
+
+ /**
+ * Falls pContent gleich null ist, geschieht nichts.
+ * Ansonsten wird ein neues Objekt pContent am Ende der Liste eingefuegt.
+ * Das aktuelle Objekt bleibt unveraendert.
+ * Wenn die Liste leer ist, wird das Objekt pContent in die Liste eingefuegt
+ * und es gibt weiterhin kein aktuelles Objekt (hasAccess() == false).
+ *
+ * @param pContent
+ * das anzuhaengende Objekt vom Typ ContentType
+ */
+ public void append(ContentType pContent) {
+ if (pContent != null) { // Nichts tun, wenn es keine Inhalt gibt.
+
+ if (this.isEmpty()) { // Fall: An leere Liste anfuegen.
+ this.insert(pContent);
+ } else { // Fall: An nicht-leere Liste anfuegen.
+
+ // Neuen Knoten erstellen.
+ ListNode newNode = new ListNode(pContent);
+
+ last.setNextNode(newNode);
+ last = newNode; // Letzten Knoten aktualisieren.
+ }
+
+ }
+ }
+
+ /**
+ * Falls es sich bei der Liste und pList um dasselbe Objekt handelt,
+ * pList null oder eine leere Liste ist, geschieht nichts.
+ * Ansonsten wird die Liste pList an die aktuelle Liste angehaengt.
+ * Anschliessend wird pList eine leere Liste. Das aktuelle Objekt bleibt
+ * unveraendert. Insbesondere bleibt hasAccess identisch.
+ *
+ * @param pList
+ * die am Ende anzuhaengende Liste vom Typ List
+ */
+ public void concat(List pList) {
+ if (pList != this && pList != null && !pList.isEmpty()) { // Nichts tun,
+ // wenn pList und this identisch, pList leer oder nicht existent.
+
+ if (this.isEmpty()) { // Fall: An leere Liste anfuegen.
+ this.first = pList.first;
+ this.last = pList.last;
+ } else { // Fall: An nicht-leere Liste anfuegen.
+ this.last.setNextNode(pList.first);
+ this.last = pList.last;
+ }
+
+ // Liste pList loeschen.
+ pList.first = null;
+ pList.last = null;
+ pList.current = null;
+ }
+ }
+
+ /**
+ * Wenn die Liste leer ist oder es kein aktuelles Objekt gibt (hasAccess()
+ * == false), geschieht nichts.
+ * Falls es ein aktuelles Objekt gibt (hasAccess() == true), wird das
+ * aktuelle Objekt geloescht und das Objekt hinter dem geloeschten Objekt
+ * wird zum aktuellen Objekt.
+ * Wird das Objekt, das am Ende der Liste steht, geloescht, gibt es kein
+ * aktuelles Objekt mehr.
+ */
+ public void remove() {
+ // Nichts tun, wenn es kein aktuelle Element gibt oder die Liste leer ist.
+ if (this.hasAccess() && !this.isEmpty()) {
+
+ if (current == first) {
+ first = first.getNextNode();
+ } else {
+ ListNode previous = this.getPrevious(current);
+ if (current == last) {
+ last = previous;
+ }
+ previous.setNextNode(current.getNextNode());
+ }
+
+ ListNode temp = current.getNextNode();
+ current.setContentObject(null);
+ current.setNextNode(null);
+ current = temp;
+
+ //Beim loeschen des letzten Elements last auf null setzen.
+ if (this.isEmpty()) {
+ last = null;
+ }
+ }
+ }
+
+ /**
+ * Liefert den Vorgaengerknoten des Knotens pNode. Ist die Liste leer, pNode
+ * == null, pNode nicht in der Liste oder pNode der erste Knoten der Liste,
+ * wird null zurueckgegeben.
+ *
+ * @param pNode
+ * der Knoten, dessen Vorgaenger zurueckgegeben werden soll
+ * @return der Vorgaenger des Knotens pNode oder null, falls die Liste leer ist,
+ * pNode == null ist, pNode nicht in der Liste ist oder pNode der erste Knoten
+ * der Liste ist
+ */
+ private ListNode getPrevious(ListNode pNode) {
+ if (pNode != null && pNode != first && !this.isEmpty()) {
+ ListNode temp = first;
+ while (temp != null && temp.getNextNode() != pNode) {
+ temp = temp.getNextNode();
+ }
+ return temp;
+ } else {
+ return null;
+ }
+ }
+
+}
diff --git a/Langlaufsimulator/README.TXT b/Langlaufsimulator/README.TXT
new file mode 100644
index 0000000..0ad193f
--- /dev/null
+++ b/Langlaufsimulator/README.TXT
@@ -0,0 +1,14 @@
+------------------------------------------------------------------------
+Dies ist die README-Datei des Projekts. Hier sollten Sie Ihr Projekt
+beschreiben.
+Erzählen Sie dem Leser (jemand, der nichts über dieses Projekt weiss),
+alles, was er/sie wissen muss. Üblicherweise sollte der Kommentar
+zumindest die folgenden Angaben umfassen:
+------------------------------------------------------------------------
+
+PROJEKTBEZEICHNUNG:
+PROJEKTZWECK:
+VERSION oder DATUM:
+WIE IST DAS PROJEKT ZU STARTEN:
+AUTOR(EN):
+BENUTZERHINWEISE:
diff --git a/Langlaufsimulator/Racesimulator.class b/Langlaufsimulator/Racesimulator.class
new file mode 100644
index 0000000000000000000000000000000000000000..373cb1c3924b5b2e7983d9b42e42edf95f82a7ae
GIT binary patch
literal 268
zcmY*T%MQUn6g{`9rRx0!c39}b!h+aHtb_!ypVowtK9XwvmzBiA2lyy)M{GKioIB@r
zGw;vy1z>`fgA(dC8aA2)Yo=nA%?YLc;6N}J$x#xTD;3Li9{Doe3qNF~vq}OH9z?1%
z|BGgJR#%?ezsMj%
v4+j5MAL7d;MvK|_$AR+j0lKqbz-DxK0&Na