baseten / Documentation / BaseTenObjectRelationships.dot

digraph baseten_relationships 
{	
	compound=true;
	
	node [shape = box]
		BXEntityDescription
		BXDatabaseObject
		BXDatabaseObjectID;
	
	node [shape = ellipse]
		"Object URI";
		"Owning object" [style = normal]
			
	subgraph cluster_fetches
	{
		style=invisible;
		//color=lightgrey;
		//label="By fetch";

		node [shape = ellipse]
			"Collection of objects";
		
		node [shape = box]
			BXArrayProxy;
	}
	
	subgraph properties
	{
		style=filled;
		color=lightgrey;

		node [shape = box]
			BXAttributeDescription
			BXRelationshipDescription;
	}
	
	subgraph object_contents
	{
		style=filled;
		color=lightgrey;

		node [shape = ellipse]
			"Column values"
			"Related objects";
	}
	
	subgraph cluster_database
	{
		style=invisible;
		color=lightgrey;
	
		node [shape = box]
			BXDatabaseContext;		
	}
	
	BXDatabaseContext -> BXDatabaseObject [arrowtail = normal, arrowhead = none];	
	BXDatabaseContext -> BXEntityDescription [arrowhead = normalnormal];

	//BXDatabaseContext -> BXArrayProxy [style = dashed, arrowhead = none, lhead = cluster_fetches];
	BXDatabaseContext -> BXArrayProxy [style = dashed, arrowhead = none];
	BXDatabaseContext -> "Collection of objects" [style = dashed, arrowhead = none];
	
	//BXArrayProxy:e -> BXDatabaseObject [arrowhead = normalnormal, ltail = cluster_fetches]
	BXArrayProxy -> BXDatabaseObject [arrowhead = normalnormal]
	"Collection of objects" -> BXDatabaseObject [arrowhead = normalnormal]
	
	BXDatabaseObject -> "Column values" [arrowhead = normalnormal];
	BXDatabaseObject -> "Related objects" [arrowhead = none];
	BXDatabaseObject -> BXDatabaseObjectID:n;
	BXDatabaseObject -> BXEntityDescription;
	
	BXDatabaseObjectID:s -> BXEntityDescription;
	BXDatabaseObjectID -> "Object URI";
	
	BXEntityDescription -> BXAttributeDescription [arrowhead = normalnormal, arrowtail = normal];
	BXEntityDescription -> BXRelationshipDescription [arrowhead = normalnormal, arrowtail = normal];
	
	"Owning object" -> BXArrayProxy [arrowhead = none, arrowtail = normal];
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.