Skip to content

Latest commit

 

History

History
76 lines (59 loc) · 1.57 KB

accessgraphresource.md

File metadata and controls

76 lines (59 loc) · 1.57 KB

AccessGraphResource

accessgraphresource

@index(name="path", by="Path.name", many="false")
@index(name="module", by="Module.name", many="false")
@index(name="rule", by="Module.name, rules.name", many="false")
@index(name="template", by="Module.name, rules.name, template.name", many="false")
@index(name="resource", by="Resource.name", many="false")
@index(name="element", by="Resource.name, elements.name", many="false")
@index(name="property", by="Resource.name, elements.name, properties.name", many="false")

@namespace(uri="pictograph", prefix="")

package pictograph;

enum State {
	NEW = 0;
	UPDATED = 1;
	PROCESSED = 2;
}

class PictoGraph {
}

abstract class Entity {
	attr String name;
	attr State state;
	attr String hash; 
}

abstract class InputEntity extends Entity {
	ref Path[*]#affectedBy affects;
}

class Path extends Entity {
	ref InputEntity[*]#affects affectedBy;
}

class Module extends InputEntity {
	val Rule[*]#module rules;
}

class Resource extends InputEntity {
	val Element[*]#resource elements;
}

class Property extends InputEntity {
	ref Element#properties element;
	attr String previousValue;
	attr String value;
}

class Element extends InputEntity {
	ref Resource#elements resource;
	val Property[*]#element properties;
}

class Rule extends InputEntity {
	ref Module#rules module;
	ref Template template;
	ref Element[*] contextElements;
	ref Element[*] elements;
}

class Template extends InputEntity {
	ref Module[*] modules;
	ref Rule[*] rules;
	ref Element[*] elements;
}

More