@namespace(uri="filesystem", prefix="filesystem") | |
package filesystem; | |
@gmf.diagram | |
class Filesystem { | |
val Drive[*] drives; | |
val Sync[*] syncs; | |
} | |
class Drive extends Folder { | |
} | |
class Folder extends File { | |
@gmf.compartment | |
val File[*] contents; | |
} | |
class Shortcut extends File { | |
@gmf.link(target.decoration="arrow", style="dash") | |
ref File target; | |
} | |
@gmf.link(label="lastSync", source="source", | |
target="target", style="dot", width="2") | |
class Sync { | |
ref File source; | |
ref File target; | |
attr String lastSync; | |
} | |
@gmf.node(label = "name") | |
class File { | |
attr String name; | |
} |