Namensraum
Für größere Projekte und Bibliotheken ist eine klare Abgrenzung der Typen sinnvoll. Hierfür wird ein eigener Namensraum verwendet, wodurch alle Typen in eigenen Bereich verschoben und Überschneidungen somit verhindert werden.
Für kleine Skripte werden Namensräume hingegen eher selten verwendet.
Namensraum
Ein Namesraum beginnt mit einem Großbuchstaben, gefolgt von weiteren Buchstaben und Zahlen ([A-Z][A-Za-z0-9]*).
Zum Beispiel: "Foo"
Der Namensraum "Java" ist hier erklärt: "Das Prefix "Java""
Verwendung
Der Namensraum wird in JayMo mit einem Unterstrich '_' vor den jeweiligen Typ gesetzt (Prefix).
So wird aus dem Typ "MyTest" z.B.:
Project_MyTest
Oder:
MyLib_MyTest
Aufruf
Generell muss ein Typ immer inklusive Namensraum aufgerufen werden:
MyLib_Test.print
Vorgabe
Für jede Skript-Datei lässt sich ein Prefix definieren.
Dies geschieht am Anfang der Datei mit einem parsetime-switch:
>prefix("MyLib")
oder:
>prefix = "MyLib"
Hinweis:
Je Datei kann nur ein Prefix gesetzt werden!
Verwendung
Durch das gesetzte Prefix kann auf die Angabe des Namensraums verzichtet werden. Wird ein Typ mit führendem Unterstrich geschrieben, so wird nun automatisch das prefix davor gesetzt.
So sind die nachfolgenden Beispiele identisch:
::ProjectA_MyTest
ProjectA_MyTest.print
>prefix = "ProjectA"
::_MyTest
_MyTest.print
Austausch
Die Verwendung eines Prefix bietet auch die Möglichkeit, ein ganzes Framework auszutauschen.
So wird z.B. die Swing-GUI ...
>prefix = "Swing"
... ersetzt durch eine native SWT-GUI:
>prefix = "SWT"
Definition in Java /* TODO prüfen!!! */
Wird in Java ein Typ für JayMo geschrieben, so wird ggf. neben dem "JayMo"-Prefix noch der Namensraum eingefügt:
public class JayMo_MySpace_MyType implements JayMo_Object