Zum Hauptinhalt springen

Organisation von Dateien

- files
- template
- Appointment.java
- solution
- Appointment.java
- test
- AppointmentTest.java
- acceptanceTest
- AppointmentAbnahmeTest.java
- include
- Date.java
- DateTime.java
- Time.java
- misc
- Anhang.pdf

Im files-Ordner können sämtliche Dateien abgelegt werden. Diese müssen in meta.xml referenziert werden, sonst werden diese nicht berücksichtigt. Dort muss dann angegeben werden, um welchen FileType es sich handelt, von wem sie eingesehen werden kann usw.

Die Struktur des files-Ordners ist vorgegeben, die Verzeichnisse darin müssen also so heißen wie die FileTypes. In jedem Verzeichnis müssen Dateien für diesen bestimmten FileType abgelegt werden. Diese Unterteilung ist notwendig, da oft Konflikte auftreten würden, wie das Beispiel zeigt.

Neben den vorgegebenen Ordnern darf man auch weitere erstellen (für Makefiles oder andere Dinge). Diese Ordner/Dateien werden beim Import zwar mitgespeichert, darauf hat aber niemand Zugriff.

Umgang mit Namespaces/Packages

Für die Kompilierung der Lösungen durch den Evaluator müssen Quelldateien so strukturiert werden, wie der Compiler bzw. die Runtime es erwartet. In Java werden Klassen ohne Angabe eines Packages im Dateisystem wie im Beispiel oben organisiert. Bei Klassen mit Package werden dann entsprechende Verzeichnisse vorhanden sein, also für die Klasse Date.java im Package de.panitz.name:

- files
- template
- de
- panitz
- name
- Date.java

In diesem Fall muss die Verzeichnisstruktur genau so im files-Ordner abgebildet werden. In meta.xml muss dann der relative Pfad zur Datei, ausgehend vom Ordner des jeweiligen FileType (hier: template) angegeben werden. In dem Beispiel wäre es path="de/panitz/name/Date.java".

Zuordnung zwischen abgegebenen Dateien und Vorlagen

Die Zuordnung der abgegebenen Dateien zu den Vorlagen hängt von dem SubmissionModes ab, mit dem die Lösung abgegeben wird.

SubmissionMode.TEXT

Der Editor wird standardmäßig mit dem Inhalt der Datei gefüllt, die in der Aufgabe als Vorlage angegeben wurde. Dieser Modus kann nur dann genutzt werden, wenn maximal eine template-Datei für die Aufgabe konfiguriert wurde. Bei Abgabe wird dann der Dateiname der template-Datei verwendet. Wenn keine template-Datei existiert, ist der Dateiname unnamed.txt.

SubmissionMode.FILE

Wenn bei der Aufgabe ein Evaluator konfiguriert wurde, der die Lösung automatisiert überprüft, ist bei der Abgabe zu beachten, dass die Lösung richtig übermittelt wird. In dem Fall müssen unter den abgegebenen Dateien die template-Dateien enthalten sein. Ist kein Evaluator konfiguriert, können beliebige Dateien abgegeben werden.

Beispiel 1: Es wird exakt eine Quelldatei als Lösung abgegeben. Dann wird als Dateiname der Dateiname der template-Datei verwendet (Dateiname der abgegebenen Datei ist also egal).

Beispiel 2: Es wird eine Archiv-Datei (z.B. zip) abgegeben. Die Java-Aufgabe hat die template-Datei Date.java konfiguriert und die Klasse ist keinem Package zugeordnet (Default Package). Dann muss die abgegebene Archiv-Datei diese Datei auf oberster Ebene enthalten.

Beispiel 3: Wie 2.), nur ist die Klasse der Vorlage dem Package de.panitz.name zugeordnet. Dann muss die Archiv-Datei eine der folgenden Ordnerstrukturen widerspiegeln: /de/panitz/name/Date.java, */de/panitz/name/Date.java, src/de/panitz/name/Date.java, */src/de/panitz/name/Date.java. Dabei steht * für einen beliebigen Ordnernamen.

Bei Aufgaben zu anderen Sprachen hängt die Ordnerstruktur davon ab, wie das in der jeweiligen Sprache bzw. von dem jeweiligen Evaluator erwartet wird.

info

Die unterstützten Dateitypen für Archive sind hier aufgeführt.