Lightweight Diagram Storage Format

Here is a simple example to demonstrate AgileJ StructureViews' lightweight diagram storage format.

Let's start with the Java source:

Customer.java

package com.agilej.structureViews;

public class Customer {
	private Product[] productsPurchased;
	Product[] getProductsPurchased(){
		return productsPurchased;
	}
}

Product.java

package com.agilej.structureViews;

public class Product {}

Dropped on an AgileJ StructureViews diagram these classes look like this:

Opening the same diagram file with with a text editor reveals some XML as follows:

<diagram style="bootstrapProfileParts.diagramStyle.default" version="1.3.8">
  <class className="com.agilej.structureViews.Customer" x="227" y="103"/>
  <class className="com.agilej.structureViews.Product" x="570" y="62"/>
</diagram>

Notice that an AgileJ StructureViews diagram file is simply a list of classes and coordinates; and not much else. Any methods, fields, inner-classes, inheritance lines, association lines, dependency lines or symbols are populated on-the-fly directly from source code.

The implications of this are: