updates
This commit is contained in:
@@ -1,58 +1,41 @@
|
|||||||
digraph InventoryManagementSystem {
|
digraph InventoryMClassDiagram {
|
||||||
rankdir=TB;
|
rankdir=TB;
|
||||||
node [shape=record, fontname=Arial, fontsize=10];
|
node [shape=record, style=filled, fillcolor=lightblue];
|
||||||
edge [fontname=Arial, fontsize=9];
|
|
||||||
|
|
||||||
// Abstract and Base Classes
|
// Abstract Classes
|
||||||
InventoryPiece [label="{InventoryPiece\n(abstract)|+ id: String\n+ price: float\n+ created: ZonedDateTime\n+ title: String\n+ description: String\n+ Author: String\n- iventoryType: InventoryType|+ getId(): String\n+ setId(String): void\n+ getPrice(): float\n+ setPrice(float): void\n+ getCreated(): ZonedDateTime\n+ setCreated(ZonedDateTime): void\n+ getTitle(): String\n+ setTitle(String): void\n+ getDescription(): String\n+ setDescription(String): void\n+ getAuthor(): String\n+ setAuthor(String): void\n+ isArt(InventoryPiece): Boolean\n+ getType(): String}", style=filled, fillcolor=lightblue];
|
InventoryPiece [label="{InventoryPiece\n«abstract»|+ id : String\l+ price : float\l+ created : ZonedDateTime\l+ title : String\l+ description : String\l+ Author : String\l|+ getType() : String\l+ computePrice() : float\l}", fillcolor=lightyellow];
|
||||||
|
|
||||||
// Concrete Inventory Classes
|
// Concrete Classes - Inventory Items
|
||||||
Drawing [label="{Drawing|+ style: String\n+ technique: String\n+ category: String|+ Drawing()}", style=filled, fillcolor=lightgreen];
|
Drawing [label="{Drawing|+ style : String\l+ technique : String\l+ category : String\l|+ computePrice() : float\l}", fillcolor=lightyellow];
|
||||||
|
Painting [label="{Painting|- height : int\l- width : int\l- style : String\l- technique : String\l- category : String\l|+ computePrice() : float\l}", fillcolor=lightyellow];
|
||||||
|
Print [label="{Print|- openEditionType : String\l- category : String\l|+ computePrice() : float\l}", fillcolor=lightyellow];
|
||||||
|
Sculpture [label="{Sculpture|- material : String\l- weight : float\l|+ computePrice() : float\l}", fillcolor=lightyellow];
|
||||||
|
|
||||||
Painting [label="{Painting|+ height: int\n+ width: int\n+ style: String\n+ technique: String\n+ category: String|+ Painting()}", style=filled, fillcolor=lightgreen];
|
// Customer and Address
|
||||||
|
Customer [label="{Customer|# id : String\l# updated : ZonedDateTime\l- phone : String\l- mailing : Address\l- email : String\l- nameFirst : String\l- nameLast : String\l|+ Customer(nameFirst, nameLast, phone, email)\l+ getId() : String\l+ getEmail() : String\l}"];
|
||||||
Print [label="{Print|+ openEditionType: String\n+ category: String|+ Print()\n+ Print(String, String)\n+ getOpenEditionType(): String\n+ setOpenEditionType(String): void\n+ getCategory(): String\n+ setCategory(String): void}", style=filled, fillcolor=lightgreen];
|
Address [label="{Address|- street : String\l- city : String\l- state : String\l- zip : String\l|+ Address(street, city, state, zip)\l+ toString() : String\l+ equals(Object) : boolean\l+ hashCode() : int\l}"];
|
||||||
|
|
||||||
Sculpture [label="{Sculpture|+ material: String\n+ weight: float|+ Sculpture()}", style=filled, fillcolor=lightgreen];
|
|
||||||
|
|
||||||
// Enums
|
|
||||||
InventoryType [label="{\\<\\<enumeration\\>\\>\nInventoryType|PAINTING\nDRAWING\nPRINT\nSCULPTURE}", style=filled, fillcolor=lightyellow];
|
|
||||||
|
|
||||||
TransactionOperationEnum [label="{\\<\\<enumeration\\>\\>\nTransactionOperationEnum|Completed\nDraft\nPricing\nRemoved\nShipping}", style=filled, fillcolor=lightyellow];
|
|
||||||
|
|
||||||
// Customer Related Classes
|
|
||||||
Customer [label="{Customer|# id: String\n# updated: ZonedDateTime\n- phone: String\n- mailing: Address\n- email: String\n- nameFirst: String\n- nameLast: String|+ Customer()\n+ Customer(String, String, String, String)\n+ getEmail(): String\n+ getId(): String\n+ setId(String): void\n+ getPhone(): String\n+ setPhone(String): void\n+ getMailing(): Address\n+ setMailing(Address): void\n+ setEmail(String): void\n+ getNameFirst(): String\n+ setNameFirst(String): void\n+ getNameLast(): String\n+ setNameLast(String): void}", style=filled, fillcolor=lightcyan];
|
|
||||||
|
|
||||||
Address [label="{Address|- street: String\n- city: String\n- state: String\n- zip: String|+ Address()\n+ Address(String, String, String, String)\n+ getStreet(): String\n+ setStreet(String): void\n+ getCity(): String\n+ setCity(String): void\n+ getState(): String\n+ setState(String): void\n+ getZip(): String\n+ setZip(String): void\n+ hashCode(): int\n+ equals(Object): boolean\n+ toString(): String}", style=filled, fillcolor=white];
|
|
||||||
|
|
||||||
// Transaction
|
// Transaction
|
||||||
Transaction [label="{Transaction|- id: String\n- created: ZonedDateTime\n- completed: ZonedDateTime\n- customerId: String\n- shipToAddress: Address\n- customerInventoryList: InventoryList\n- attributes: JsonArray|+ Transaction()\n+ getId(): String\n+ setId(String): void\n+ getCreated(): ZonedDateTime\n+ setCreated(ZonedDateTime): void\n+ getCompleted(): ZonedDateTime\n+ setCompleted(ZonedDateTime): void}", style=filled, fillcolor=lightcyan];
|
Transaction [label="{Transaction|- id : String\l- created : ZonedDateTime\l- completed : ZonedDateTime\l- customerId : String\l- shipToAddress : Address\l- customerInventoryList : InventoryList\l- totalPrice : float\l- attributes : JsonArray\l|# Transaction(customer, cart)\l+ check() : void\l+ toString() : String\l}"];
|
||||||
|
|
||||||
// List Classes (Collections)
|
// List Classes
|
||||||
InventoryList [label="{InventoryList|\\<extends ArrayList\\<InventoryPiece\\>\\>|+ InventoryList()}", style=filled, fillcolor=wheat];
|
InventoryList [label="{InventoryList|+ InventoryList()\l+ add(InventoryPiece) : boolean\l}"];
|
||||||
|
CustomerList [label="{CustomerList|+ CustomerList()\l}"];
|
||||||
CustomerList [label="{CustomerList|\\<extends ArrayList\\<Customer\\>\\>|+ CustomerList()}", style=filled, fillcolor=wheat];
|
TransactionList [label="{TransactionList|+ TransactionList()\l+ add(Transaction) : boolean\l}"];
|
||||||
|
|
||||||
TransactionList [label="{TransactionList|\\<extends ArrayList\\<Transaction\\>\\>|+ TransactionList()\n+ add(Transaction): boolean}", style=filled, fillcolor=wheat];
|
|
||||||
|
|
||||||
// Manager Classes (Singletons)
|
// Manager Classes (Singletons)
|
||||||
InventoryManager [label="{InventoryManager|+ INVENTORY: InventoryList\n- INSTANCE: InventoryManager|+ getInstance(): InventoryManager\n+ getArtPieceTypes(): Set\\<InventoryType\\>\n+ add(InventoryPiece): void\n+ find(String): InventoryPiece\n+ update(InventoryPiece): InventoryPiece\n+ save(): void\n+ loadAll(): void\n+ Remove(InventoryPiece): void}", style=filled, fillcolor=lightpink];
|
InventoryManager [label="{InventoryManager|+ INVENTORY : InventoryList\l- INSTANCE : InventoryManager\l|+ getInstance() : InventoryManager\l+ add(InventoryPiece) : void\l+ find(String) : InventoryPiece\l+ Remove(InventoryPiece) : InventoryPiece\l+ save() : void\l+ load() : void\l}"];
|
||||||
|
CustomerManager [label="{CustomerManager|+ CUSTOMERS : CustomerList\l- INSTANCE : CustomerManager\l|+ getInstance() : CustomerManager\l+ add(Customer) : boolean\l+ findByEmail(String) : Customer\l+ save() : void\l+ load() : void\l}"];
|
||||||
CustomerManager [label="{CustomerManager|+ CUSTOMERS: CustomerList\n- INSTANCE: CustomerManager|+ getInstance(): CustomerManager\n+ add(Customer): boolean\n- check(Customer): void\n+ findById(String): Customer\n+ findByEmail(String): Customer}", style=filled, fillcolor=lightpink];
|
TransactionManager [label="{TransactionManager|+ TRANSACTIONS : TransactionList\l- INSTANCE : TransactionManager\l|+ getInstance() : TransactionManager\l+ TransactRequest(Customer, InventoryList) : Transaction\l+ complete(Transaction) : void\l+ compute(Transaction) : void\l+ save() : void\l+ load() : void\l}"];
|
||||||
|
|
||||||
TransactionManager [label="{TransactionManager|+ TRANSACTIONS: TransactionList\n- INSTANCE: TransactionManager|+ getInstance(): TransactionManager\n+ TransactRequest(Customer, InventoryList, Transaction): Transaction\n+ compute(Transaction, TransactionOperationEnum): void\n+ compute(Transaction): void\n+ complete(Transaction): void\n+ findByCustomerEmail(String): TransactionList\n+ findByTransactionId(String): TransactionList\n+ findByTransactionDate(ZonedDateTime): TransactionList\n+ remove(Transaction): void\n+ save(): void}", style=filled, fillcolor=lightpink];
|
|
||||||
|
|
||||||
// Repository
|
// Repository
|
||||||
DataRepository [label="{DataRepository|+ INSTANCE: DataRepository|+ getInstance(): DataRepository\n+ generateRandomID(int): String\n+ generateRandom10DigitID(): String\n+ WalkFileSystemTree(InventoryManager): void\n+ WalkFileSystemTree(CustomerManager): void\n+ WalkFileSystemTree(TransactionManager): void\n- serialize_deserialize(): void\n+ mapJsonToObjectList(String, Class\\<T\\>): List\\<T\\>}", style=filled, fillcolor=orange];
|
DataRepository [label="{DataRepository|- INSTANCE : DataRepository\l|+ getInstance() : DataRepository\l+ generateRandomID(int) : String\l+ generateRandom10DigitID() : String\l+ write(InventoryManager) : void\l+ write(CustomerManager) : void\l+ write(TransactionManager) : void\l+ WalkFileSystemTree(...) : void\l}" , fillcolor=lightyellow ];
|
||||||
|
|
||||||
// Exception Classes
|
// Exception Classes
|
||||||
InvalidArtOperationException [label="{InvalidArtOperationException|\\<extends RuntimeException\\>|+ InvalidArtOperationException(String)\n+ InvalidArtOperationException(String, Throwable)\n+ InvalidArtOperationException(Throwable)}", style=filled, fillcolor=tomato];
|
InvalidArtOperationException [label="{InvalidArtOperationException|+ InvalidArtOperationException(String)\l}", fillcolor=lightcoral];
|
||||||
|
InvalidRecordDataException [label="{InvalidRecordDataException|+ InvalidRecordDataException(String)\l}", fillcolor=lightcoral];
|
||||||
InvalidRecordDataException [label="{InvalidRecordDataException|\\<extends RuntimeException\\>|+ InvalidRecordDataException(String)\n+ InvalidRecordDataException(String, Throwable)\n+ InvalidRecordDataException(Throwable)}", style=filled, fillcolor=tomato];
|
InvalidTransactionException [label="{InvalidTransactionException|+ InvalidTransactionException(String)\l}", fillcolor=lightcoral];
|
||||||
|
InvalidTransOperationException [label="{InvalidTransOperationException|+ InvalidTransOperationException(String)\l}", fillcolor=lightcoral];
|
||||||
InvalidTransactionException [label="{InvalidTransactionException|\\<extends RuntimeException\\>|+ InvalidTransactionException(String)\n+ InvalidTransactionException(String, Throwable)\n+ InvalidTransactionException(Throwable)}", style=filled, fillcolor=tomato];
|
|
||||||
|
|
||||||
InvalidTransOperationException [label="{InvalidTransOperationException|\\<extends RuntimeException\\>|+ InvalidTransOperationException(String)\n+ InvalidTransOperationException(String, Throwable)\n+ InvalidTransOperationException(Throwable)}", style=filled, fillcolor=tomato];
|
|
||||||
|
|
||||||
// Inheritance Relationships
|
// Inheritance Relationships
|
||||||
Drawing -> InventoryPiece [arrowhead=empty, label="extends"];
|
Drawing -> InventoryPiece [arrowhead=empty, label="extends"];
|
||||||
@@ -60,31 +43,42 @@ digraph InventoryManagementSystem {
|
|||||||
Print -> InventoryPiece [arrowhead=empty, label="extends"];
|
Print -> InventoryPiece [arrowhead=empty, label="extends"];
|
||||||
Sculpture -> InventoryPiece [arrowhead=empty, label="extends"];
|
Sculpture -> InventoryPiece [arrowhead=empty, label="extends"];
|
||||||
|
|
||||||
// Associations
|
InventoryList -> ArrayList [arrowhead=empty, label="extends", style=dashed];
|
||||||
InventoryPiece -> InventoryType [arrowhead=open, style=dashed, label="uses"];
|
CustomerList -> ArrayList [arrowhead=empty, label="extends", style=dashed];
|
||||||
Customer -> Address [arrowhead=diamond, label="has"];
|
TransactionList -> ArrayList [arrowhead=empty, label="extends", style=dashed];
|
||||||
Transaction -> Address [arrowhead=open, label="shipToAddress"];
|
|
||||||
Transaction -> InventoryList [arrowhead=open, label="customerInventoryList"];
|
InvalidArtOperationException -> RuntimeException [arrowhead=empty, label="extends", style=dashed];
|
||||||
|
InvalidRecordDataException -> RuntimeException [arrowhead=empty, label="extends", style=dashed];
|
||||||
|
InvalidTransactionException -> RuntimeException [arrowhead=empty, label="extends", style=dashed];
|
||||||
|
InvalidTransOperationException -> RuntimeException [arrowhead=empty, label="extends", style=dashed];
|
||||||
|
|
||||||
|
// Composition/Aggregation Relationships
|
||||||
|
Customer -> Address [arrowhead=diamond, label="mailing"];
|
||||||
|
Transaction -> Address [arrowhead=diamond, label="shipToAddress"];
|
||||||
|
Transaction -> InventoryList [arrowhead=diamond, label="customerInventoryList"];
|
||||||
|
Transaction -> Customer [arrowhead=none, style=dashed, label="customerId"];
|
||||||
|
|
||||||
// Manager to List relationships
|
|
||||||
InventoryManager -> InventoryList [arrowhead=diamond, label="INVENTORY"];
|
InventoryManager -> InventoryList [arrowhead=diamond, label="INVENTORY"];
|
||||||
CustomerManager -> CustomerList [arrowhead=diamond, label="CUSTOMERS"];
|
CustomerManager -> CustomerList [arrowhead=diamond, label="CUSTOMERS"];
|
||||||
TransactionManager -> TransactionList [arrowhead=diamond, label="TRANSACTIONS"];
|
TransactionManager -> TransactionList [arrowhead=diamond, label="TRANSACTIONS"];
|
||||||
|
|
||||||
// List contains relationships
|
InventoryList -> InventoryPiece [arrowhead=odiamond, label="contains 0..* "];
|
||||||
InventoryList -> InventoryPiece [arrowhead=odiamond, style=dashed, label="contains 0..*"];
|
CustomerList -> Customer [arrowhead=odiamond, label="contains 0..* "];
|
||||||
CustomerList -> Customer [arrowhead=odiamond, style=dashed, label="contains 0..*"];
|
TransactionList -> Transaction [arrowhead=odiamond, label="contains 0..* "];
|
||||||
TransactionList -> Transaction [arrowhead=diamond, style=dashed, label="contains"];
|
|
||||||
|
|
||||||
// Manager relationships
|
// Dependencies
|
||||||
DataRepository -> InventoryManager [arrowhead=open, style=dashed, label="uses"];
|
InventoryManager -> DataRepository [arrowhead=vee, style=dashed, label="uses"];
|
||||||
DataRepository -> CustomerManager [arrowhead=open, style=dashed, label="uses"];
|
CustomerManager -> DataRepository [arrowhead=vee, style=dashed, label="uses"];
|
||||||
DataRepository -> TransactionManager [arrowhead=open, style=dashed, label="uses"];
|
TransactionManager -> DataRepository [arrowhead=vee, style=dashed, label="uses"];
|
||||||
|
|
||||||
TransactionManager -> TransactionOperationEnum [arrowhead=open, style=dashed, label="uses"];
|
Customer -> DataRepository [arrowhead=vee, style=dashed, label="uses"];
|
||||||
CustomerManager -> InvalidRecordDataException [arrowhead=open, style=dashed, label="throws"];
|
InventoryPiece -> DataRepository [arrowhead=vee, style=dashed, label="uses"];
|
||||||
|
Transaction -> DataRepository [arrowhead=vee, style=dashed, label="uses"];
|
||||||
|
|
||||||
// Transaction relationships
|
TransactionManager -> Customer [arrowhead=vee, style=dashed, label="uses"];
|
||||||
TransactionManager -> Customer [arrowhead=open, style=dashed, label="uses"];
|
TransactionManager -> InventoryList [arrowhead=vee, style=dashed, label="uses"];
|
||||||
TransactionManager -> InventoryList [arrowhead=open, style=dashed, label="uses"];
|
|
||||||
|
// External Classes (referenced but not defined)
|
||||||
|
ArrayList [label="{ArrayList\n«Java Util»}", fillcolor=lightgray, style="filled,dashed"];
|
||||||
|
RuntimeException [label="{RuntimeException\n«Java Lang»}", fillcolor=lightgray, style="filled,dashed"];
|
||||||
}
|
}
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 208 KiB After Width: | Height: | Size: 188 KiB |
@@ -1,29 +1,29 @@
|
|||||||
<?xml version="1.0" standalone="no"?>
|
<?xml version="1.0" standalone="no"?>
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="2005pt" height="1413pt" viewBox="0.00 0.00 2005.20 1413.20">
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="2005pt" height="1413pt" viewBox="0.00 0.00 2005.20 1413.20">
|
||||||
<g id="graph0" class="graph" transform="translate(-190.69420915524893,1522.1968719923593) scale(1.1486983549970349)" data-name="InventoryMClassDiagram">
|
<g id="graph0" class="graph" transform="translate(4,1409.199951171875) scale(1)" data-name="InventoryMClassDiagram">
|
||||||
|
|
||||||
<polygon fill="white" stroke="none" points="-4,4 -4,-1409.2 2001.2,-1409.2 2001.2,4 -4,4" style=""/>
|
<polygon fill="white" stroke="none" points="-4,4 -4,-1409.2 2001.2,-1409.2 2001.2,4 -4,4" style=""/>
|
||||||
<!-- InventoryPiece -->
|
<!-- InventoryPiece -->
|
||||||
<g id="node1" class="node" pointer-events="visible" data-name="InventoryPiece">
|
<g id="node1" class="node" pointer-events="visible" data-name="InventoryPiece">
|
||||||
|
|
||||||
<polygon fill="lightyellow" stroke="black" points="1173.38,-229.5 1173.38,-421.5 1343.81,-421.5 1343.81,-229.5 1173.38,-229.5" style=""/>
|
<polygon fill="lightyellow" stroke="black" points="1193.38,-229.5 1193.38,-421.5 1363.81,-421.5 1363.81,-229.5 1193.38,-229.5" style=""/>
|
||||||
<text text-anchor="middle" x="1258.59" y="-404.9" font-family="Times,serif" font-size="14.00" style="">InventoryPiece</text>
|
<text text-anchor="middle" x="1278.59" y="-404.9" font-family="Times,serif" font-size="14.00" style="">InventoryPiece</text>
|
||||||
<text text-anchor="middle" x="1258.59" y="-388.1" font-family="Times,serif" font-size="14.00" style="">«abstract»</text>
|
<text text-anchor="middle" x="1278.59" y="-388.1" font-family="Times,serif" font-size="14.00" style="">«abstract»</text>
|
||||||
<polyline fill="none" stroke="black" points="1173.38,-379.9 1343.81,-379.9" style=""/>
|
<polyline fill="none" stroke="black" points="1193.38,-379.9 1363.81,-379.9" style=""/>
|
||||||
<text text-anchor="start" x="1181.38" y="-363.3" font-family="Times,serif" font-size="14.00" style="">+ id : String</text>
|
<text text-anchor="start" x="1201.38" y="-363.3" font-family="Times,serif" font-size="14.00" style="">+ id : String</text>
|
||||||
<text text-anchor="start" x="1181.38" y="-346.5" font-family="Times,serif" font-size="14.00" style="">+ price : float</text>
|
<text text-anchor="start" x="1201.38" y="-346.5" font-family="Times,serif" font-size="14.00" style="">+ price : float</text>
|
||||||
<text text-anchor="start" x="1181.38" y="-329.7" font-family="Times,serif" font-size="14.00" style="">+ created : ZonedDateTime</text>
|
<text text-anchor="start" x="1201.38" y="-329.7" font-family="Times,serif" font-size="14.00" style="">+ created : ZonedDateTime</text>
|
||||||
<text text-anchor="start" x="1181.38" y="-312.9" font-family="Times,serif" font-size="14.00" style="">+ title : String</text>
|
<text text-anchor="start" x="1201.38" y="-312.9" font-family="Times,serif" font-size="14.00" style="">+ title : String</text>
|
||||||
<text text-anchor="start" x="1181.38" y="-296.1" font-family="Times,serif" font-size="14.00" style="">+ description : String</text>
|
<text text-anchor="start" x="1201.38" y="-296.1" font-family="Times,serif" font-size="14.00" style="">+ description : String</text>
|
||||||
<text text-anchor="start" x="1181.38" y="-279.3" font-family="Times,serif" font-size="14.00" style="">+ Author : String</text>
|
<text text-anchor="start" x="1201.38" y="-279.3" font-family="Times,serif" font-size="14.00" style="">+ Author : String</text>
|
||||||
<polyline fill="none" stroke="black" points="1173.38,-271.1 1343.81,-271.1" style=""/>
|
<polyline fill="none" stroke="black" points="1193.38,-271.1 1363.81,-271.1" style=""/>
|
||||||
<text text-anchor="start" x="1181.38" y="-254.5" font-family="Times,serif" font-size="14.00" style="">+ getType() : String</text>
|
<text text-anchor="start" x="1201.38" y="-254.5" font-family="Times,serif" font-size="14.00" style="">+ getType() : String</text>
|
||||||
<text text-anchor="start" x="1181.38" y="-237.7" font-family="Times,serif" font-size="14.00" style="">+ computePrice() : float</text>
|
<text text-anchor="start" x="1201.38" y="-237.7" font-family="Times,serif" font-size="14.00" style="">+ computePrice() : float</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- DataRepository -->
|
<!-- DataRepository -->
|
||||||
<g id="node15" class="node" pointer-events="visible" data-name="DataRepository">
|
<g id="node15" class="node" pointer-events="visible" data-name="DataRepository">
|
||||||
|
|
||||||
<polygon fill="lightblue" stroke="black" points="667.47,-0.5 667.47,-175.7 901.71,-175.7 901.71,-0.5 667.47,-0.5" style=""/>
|
<polygon fill="lightyellow" stroke="black" points="667.47,-0.5 667.47,-175.7 901.71,-175.7 901.71,-0.5 667.47,-0.5" style=""/>
|
||||||
<text text-anchor="middle" x="784.59" y="-159.1" font-family="Times,serif" font-size="14.00" style="">DataRepository</text>
|
<text text-anchor="middle" x="784.59" y="-159.1" font-family="Times,serif" font-size="14.00" style="">DataRepository</text>
|
||||||
<polyline fill="none" stroke="black" points="667.47,-150.9 901.71,-150.9" style=""/>
|
<polyline fill="none" stroke="black" points="667.47,-150.9 901.71,-150.9" style=""/>
|
||||||
<text text-anchor="start" x="675.47" y="-134.3" font-family="Times,serif" font-size="14.00" style="">- INSTANCE : DataRepository</text>
|
<text text-anchor="start" x="675.47" y="-134.3" font-family="Times,serif" font-size="14.00" style="">- INSTANCE : DataRepository</text>
|
||||||
@@ -39,14 +39,14 @@
|
|||||||
<!-- InventoryPiece->DataRepository -->
|
<!-- InventoryPiece->DataRepository -->
|
||||||
<g id="edge26" class="edge" data-name="InventoryPiece->DataRepository">
|
<g id="edge26" class="edge" data-name="InventoryPiece->DataRepository">
|
||||||
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1173.65,-254.56C1145.21,-233.31 1112.58,-211.12 1080.59,-194.2 1027.16,-165.94 964.51,-142.45 910.64,-124.89" style=""/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1193.57,-262.07C1159.54,-238.82 1119.28,-213.44 1080.59,-194.2 1026.71,-167.39 964.27,-144.17 910.67,-126.42" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="901.38,-121.91 912.28,-120.7 906.14,-123.44 910.9,-124.98 910.9,-124.98 910.9,-124.98 906.14,-123.44 909.52,-129.26 901.38,-121.91 901.38,-121.91" style=""/>
|
<polygon fill="black" stroke="black" points="901.46,-123.39 912.36,-122.24 906.21,-124.95 910.96,-126.51 910.96,-126.51 910.96,-126.51 906.21,-124.95 909.55,-130.79 901.46,-123.39 901.46,-123.39" style=""/>
|
||||||
<text text-anchor="middle" x="1119.65" y="-198.4" font-family="Times,serif" font-size="14.00" style="">uses</text>
|
<text text-anchor="middle" x="1121.65" y="-198.4" font-family="Times,serif" font-size="14.00" style="">uses</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Drawing -->
|
<!-- Drawing -->
|
||||||
<g id="node2" class="node" pointer-events="visible" data-name="Drawing">
|
<g id="node2" class="node" pointer-events="visible" data-name="Drawing">
|
||||||
|
|
||||||
<polygon fill="lightblue" stroke="black" points="1094.47,-525.7 1094.47,-633.7 1244.71,-633.7 1244.71,-525.7 1094.47,-525.7" style=""/>
|
<polygon fill="lightyellow" stroke="black" points="1094.47,-525.7 1094.47,-633.7 1244.71,-633.7 1244.71,-525.7 1094.47,-525.7" style=""/>
|
||||||
<text text-anchor="middle" x="1169.59" y="-617.1" font-family="Times,serif" font-size="14.00" style="">Drawing</text>
|
<text text-anchor="middle" x="1169.59" y="-617.1" font-family="Times,serif" font-size="14.00" style="">Drawing</text>
|
||||||
<polyline fill="none" stroke="black" points="1094.47,-608.9 1244.71,-608.9" style=""/>
|
<polyline fill="none" stroke="black" points="1094.47,-608.9 1244.71,-608.9" style=""/>
|
||||||
<text text-anchor="start" x="1102.47" y="-592.3" font-family="Times,serif" font-size="14.00" style="">+ style : String</text>
|
<text text-anchor="start" x="1102.47" y="-592.3" font-family="Times,serif" font-size="14.00" style="">+ style : String</text>
|
||||||
@@ -58,14 +58,14 @@
|
|||||||
<!-- Drawing->InventoryPiece -->
|
<!-- Drawing->InventoryPiece -->
|
||||||
<g id="edge1" class="edge" data-name="Drawing->InventoryPiece">
|
<g id="edge1" class="edge" data-name="Drawing->InventoryPiece">
|
||||||
|
|
||||||
<path fill="none" stroke="black" d="M1188.25,-525.83C1197.89,-498.53 1209.99,-464.21 1221.44,-431.78" style=""/>
|
<path fill="none" stroke="black" d="M1192.44,-525.83C1204.24,-498.53 1219.07,-464.21 1233.09,-431.78" style=""/>
|
||||||
<polygon fill="none" stroke="black" points="1224.59,-433.36 1224.62,-422.76 1217.99,-431.03 1224.59,-433.36" style=""/>
|
<polygon fill="none" stroke="black" points="1236.25,-433.29 1237.01,-422.72 1229.82,-430.51 1236.25,-433.29" style=""/>
|
||||||
<text text-anchor="middle" x="1238.97" y="-444.2" font-family="Times,serif" font-size="14.00" style="">extends</text>
|
<text text-anchor="middle" x="1248.97" y="-444.2" font-family="Times,serif" font-size="14.00" style="">extends</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Painting -->
|
<!-- Painting -->
|
||||||
<g id="node3" class="node" pointer-events="visible" data-name="Painting">
|
<g id="node3" class="node" pointer-events="visible" data-name="Painting">
|
||||||
|
|
||||||
<polygon fill="lightblue" stroke="black" points="1262.47,-508.9 1262.47,-650.5 1412.71,-650.5 1412.71,-508.9 1262.47,-508.9" style=""/>
|
<polygon fill="lightyellow" stroke="black" points="1262.47,-508.9 1262.47,-650.5 1412.71,-650.5 1412.71,-508.9 1262.47,-508.9" style=""/>
|
||||||
<text text-anchor="middle" x="1337.59" y="-633.9" font-family="Times,serif" font-size="14.00" style="">Painting</text>
|
<text text-anchor="middle" x="1337.59" y="-633.9" font-family="Times,serif" font-size="14.00" style="">Painting</text>
|
||||||
<polyline fill="none" stroke="black" points="1262.47,-625.7 1412.71,-625.7" style=""/>
|
<polyline fill="none" stroke="black" points="1262.47,-625.7 1412.71,-625.7" style=""/>
|
||||||
<text text-anchor="start" x="1270.47" y="-609.1" font-family="Times,serif" font-size="14.00" style="">- height : int</text>
|
<text text-anchor="start" x="1270.47" y="-609.1" font-family="Times,serif" font-size="14.00" style="">- height : int</text>
|
||||||
@@ -79,14 +79,14 @@
|
|||||||
<!-- Painting->InventoryPiece -->
|
<!-- Painting->InventoryPiece -->
|
||||||
<g id="edge2" class="edge" data-name="Painting->InventoryPiece">
|
<g id="edge2" class="edge" data-name="Painting->InventoryPiece">
|
||||||
|
|
||||||
<path fill="none" stroke="black" d="M1315.8,-509.12C1308.33,-485.28 1299.8,-458.05 1291.65,-432.02" style=""/>
|
<path fill="none" stroke="black" d="M1321.31,-509.12C1315.76,-485.39 1309.42,-458.29 1303.36,-432.37" style=""/>
|
||||||
<polygon fill="none" stroke="black" points="1295.08,-431.28 1288.75,-422.79 1288.4,-433.38 1295.08,-431.28" style=""/>
|
<polygon fill="none" stroke="black" points="1306.81,-431.76 1301.12,-422.82 1299.99,-433.35 1306.81,-431.76" style=""/>
|
||||||
<text text-anchor="middle" x="1319.97" y="-444.2" font-family="Times,serif" font-size="14.00" style="">extends</text>
|
<text text-anchor="middle" x="1329.97" y="-444.2" font-family="Times,serif" font-size="14.00" style="">extends</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Print -->
|
<!-- Print -->
|
||||||
<g id="node4" class="node" pointer-events="visible" data-name="Print">
|
<g id="node4" class="node" pointer-events="visible" data-name="Print">
|
||||||
|
|
||||||
<polygon fill="lightblue" stroke="black" points="1430.35,-534.1 1430.35,-625.3 1596.83,-625.3 1596.83,-534.1 1430.35,-534.1" style=""/>
|
<polygon fill="lightyellow" stroke="black" points="1430.35,-534.1 1430.35,-625.3 1596.83,-625.3 1596.83,-534.1 1430.35,-534.1" style=""/>
|
||||||
<text text-anchor="middle" x="1513.59" y="-608.7" font-family="Times,serif" font-size="14.00" style="">Print</text>
|
<text text-anchor="middle" x="1513.59" y="-608.7" font-family="Times,serif" font-size="14.00" style="">Print</text>
|
||||||
<polyline fill="none" stroke="black" points="1430.35,-600.5 1596.83,-600.5" style=""/>
|
<polyline fill="none" stroke="black" points="1430.35,-600.5 1596.83,-600.5" style=""/>
|
||||||
<text text-anchor="start" x="1438.35" y="-583.9" font-family="Times,serif" font-size="14.00" style="">- openEditionType : String</text>
|
<text text-anchor="start" x="1438.35" y="-583.9" font-family="Times,serif" font-size="14.00" style="">- openEditionType : String</text>
|
||||||
@@ -97,14 +97,14 @@
|
|||||||
<!-- Print->InventoryPiece -->
|
<!-- Print->InventoryPiece -->
|
||||||
<g id="edge3" class="edge" data-name="Print->InventoryPiece">
|
<g id="edge3" class="edge" data-name="Print->InventoryPiece">
|
||||||
|
|
||||||
<path fill="none" stroke="black" d="M1476.12,-534.27C1459.81,-515.5 1440.21,-493.67 1421.59,-474.8 1399.7,-452.61 1375.22,-429.51 1352.03,-408.35" style=""/>
|
<path fill="none" stroke="black" d="M1475.06,-534.35C1458.74,-515.79 1439.42,-494.09 1421.59,-474.8 1405.49,-457.37 1388.13,-439.02 1371.24,-421.39" style=""/>
|
||||||
<polygon fill="none" stroke="black" points="1354.43,-405.79 1344.67,-401.66 1349.72,-410.97 1354.43,-405.79" style=""/>
|
<polygon fill="none" stroke="black" points="1374.02,-419.23 1364.57,-414.44 1368.97,-424.08 1374.02,-419.23" style=""/>
|
||||||
<text text-anchor="middle" x="1421.97" y="-444.2" font-family="Times,serif" font-size="14.00" style="">extends</text>
|
<text text-anchor="middle" x="1423.97" y="-444.2" font-family="Times,serif" font-size="14.00" style="">extends</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Sculpture -->
|
<!-- Sculpture -->
|
||||||
<g id="node5" class="node" pointer-events="visible" data-name="Sculpture">
|
<g id="node5" class="node" pointer-events="visible" data-name="Sculpture">
|
||||||
|
|
||||||
<polygon fill="lightblue" stroke="black" points="1614.47,-534.1 1614.47,-625.3 1764.71,-625.3 1764.71,-534.1 1614.47,-534.1" style=""/>
|
<polygon fill="lightyellow" stroke="black" points="1614.47,-534.1 1614.47,-625.3 1764.71,-625.3 1764.71,-534.1 1614.47,-534.1" style=""/>
|
||||||
<text text-anchor="middle" x="1689.59" y="-608.7" font-family="Times,serif" font-size="14.00" style="">Sculpture</text>
|
<text text-anchor="middle" x="1689.59" y="-608.7" font-family="Times,serif" font-size="14.00" style="">Sculpture</text>
|
||||||
<polyline fill="none" stroke="black" points="1614.47,-600.5 1764.71,-600.5" style=""/>
|
<polyline fill="none" stroke="black" points="1614.47,-600.5 1764.71,-600.5" style=""/>
|
||||||
<text text-anchor="start" x="1622.47" y="-583.9" font-family="Times,serif" font-size="14.00" style="">- material : String</text>
|
<text text-anchor="start" x="1622.47" y="-583.9" font-family="Times,serif" font-size="14.00" style="">- material : String</text>
|
||||||
@@ -115,9 +115,9 @@
|
|||||||
<!-- Sculpture->InventoryPiece -->
|
<!-- Sculpture->InventoryPiece -->
|
||||||
<g id="edge4" class="edge" data-name="Sculpture->InventoryPiece">
|
<g id="edge4" class="edge" data-name="Sculpture->InventoryPiece">
|
||||||
|
|
||||||
<path fill="none" stroke="black" d="M1661.15,-534.29C1646.48,-514.08 1627.15,-491.1 1605.59,-474.8 1529.51,-417.27 1427.73,-377.21 1354.1,-353.36" style=""/>
|
<path fill="none" stroke="black" d="M1660.8,-534.24C1646.12,-514.14 1626.88,-491.26 1605.59,-474.8 1535.85,-420.86 1443.36,-381.26 1374.55,-356.61" style=""/>
|
||||||
<polygon fill="none" stroke="black" points="1355.48,-350.13 1344.89,-350.42 1353.35,-356.79 1355.48,-350.13" style=""/>
|
<polygon fill="none" stroke="black" points="1375.73,-353.32 1365.14,-353.29 1373.4,-359.92 1375.73,-353.32" style=""/>
|
||||||
<text text-anchor="middle" x="1593.97" y="-444.2" font-family="Times,serif" font-size="14.00" style="">extends</text>
|
<text text-anchor="middle" x="1595.97" y="-444.2" font-family="Times,serif" font-size="14.00" style="">extends</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Customer -->
|
<!-- Customer -->
|
||||||
<g id="node6" class="node" pointer-events="visible" data-name="Customer">
|
<g id="node6" class="node" pointer-events="visible" data-name="Customer">
|
||||||
@@ -140,32 +140,32 @@
|
|||||||
<!-- Address -->
|
<!-- Address -->
|
||||||
<g id="node7" class="node" pointer-events="visible" data-name="Address">
|
<g id="node7" class="node" pointer-events="visible" data-name="Address">
|
||||||
|
|
||||||
<polygon fill="lightblue" stroke="black" points="320.76,-237.9 320.76,-413.1 518.43,-413.1 518.43,-237.9 320.76,-237.9" style=""/>
|
<polygon fill="lightblue" stroke="black" points="350.76,-237.9 350.76,-413.1 548.43,-413.1 548.43,-237.9 350.76,-237.9" style=""/>
|
||||||
<text text-anchor="middle" x="419.59" y="-396.5" font-family="Times,serif" font-size="14.00" style="">Address</text>
|
<text text-anchor="middle" x="449.59" y="-396.5" font-family="Times,serif" font-size="14.00" style="">Address</text>
|
||||||
<polyline fill="none" stroke="black" points="320.76,-388.3 518.43,-388.3" style=""/>
|
<polyline fill="none" stroke="black" points="350.76,-388.3 548.43,-388.3" style=""/>
|
||||||
<text text-anchor="start" x="328.76" y="-371.7" font-family="Times,serif" font-size="14.00" style="">- street : String</text>
|
<text text-anchor="start" x="358.76" y="-371.7" font-family="Times,serif" font-size="14.00" style="">- street : String</text>
|
||||||
<text text-anchor="start" x="328.76" y="-354.9" font-family="Times,serif" font-size="14.00" style="">- city : String</text>
|
<text text-anchor="start" x="358.76" y="-354.9" font-family="Times,serif" font-size="14.00" style="">- city : String</text>
|
||||||
<text text-anchor="start" x="328.76" y="-338.1" font-family="Times,serif" font-size="14.00" style="">- state : String</text>
|
<text text-anchor="start" x="358.76" y="-338.1" font-family="Times,serif" font-size="14.00" style="">- state : String</text>
|
||||||
<text text-anchor="start" x="328.76" y="-321.3" font-family="Times,serif" font-size="14.00" style="">- zip : String</text>
|
<text text-anchor="start" x="358.76" y="-321.3" font-family="Times,serif" font-size="14.00" style="">- zip : String</text>
|
||||||
<polyline fill="none" stroke="black" points="320.76,-313.1 518.43,-313.1" style=""/>
|
<polyline fill="none" stroke="black" points="350.76,-313.1 548.43,-313.1" style=""/>
|
||||||
<text text-anchor="start" x="328.76" y="-296.5" font-family="Times,serif" font-size="14.00" style="">+ Address(street, city, state, zip)</text>
|
<text text-anchor="start" x="358.76" y="-296.5" font-family="Times,serif" font-size="14.00" style="">+ Address(street, city, state, zip)</text>
|
||||||
<text text-anchor="start" x="328.76" y="-279.7" font-family="Times,serif" font-size="14.00" style="">+ toString() : String</text>
|
<text text-anchor="start" x="358.76" y="-279.7" font-family="Times,serif" font-size="14.00" style="">+ toString() : String</text>
|
||||||
<text text-anchor="start" x="328.76" y="-262.9" font-family="Times,serif" font-size="14.00" style="">+ equals(Object) : boolean</text>
|
<text text-anchor="start" x="358.76" y="-262.9" font-family="Times,serif" font-size="14.00" style="">+ equals(Object) : boolean</text>
|
||||||
<text text-anchor="start" x="328.76" y="-246.1" font-family="Times,serif" font-size="14.00" style="">+ hashCode() : int</text>
|
<text text-anchor="start" x="358.76" y="-246.1" font-family="Times,serif" font-size="14.00" style="">+ hashCode() : int</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Customer->Address -->
|
<!-- Customer->Address -->
|
||||||
<g id="edge12" class="edge" data-name="Customer->Address">
|
<g id="edge12" class="edge" data-name="Customer->Address">
|
||||||
|
|
||||||
<path fill="none" stroke="black" d="M313.32,-475.39C325.86,-457.83 338.83,-439.66 351.21,-422.3" style=""/>
|
<path fill="none" stroke="black" d="M325.61,-475.39C340.37,-457.67 355.65,-439.32 370.22,-421.82" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="351.06,-422.52 351.29,-415.31 358.03,-412.75 357.8,-419.96 351.06,-422.52" style=""/>
|
<polygon fill="black" stroke="black" points="370.09,-421.98 370.86,-414.81 377.77,-412.75 377.01,-419.92 370.09,-421.98" style=""/>
|
||||||
<text text-anchor="middle" x="356.98" y="-444.2" font-family="Times,serif" font-size="14.00" style="">mailing</text>
|
<text text-anchor="middle" x="372.98" y="-444.2" font-family="Times,serif" font-size="14.00" style="">mailing</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Customer->DataRepository -->
|
<!-- Customer->DataRepository -->
|
||||||
<g id="edge25" class="edge" data-name="Customer->DataRepository">
|
<g id="edge25" class="edge" data-name="Customer->DataRepository">
|
||||||
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M225.85,-475.48C221.58,-398.59 229.34,-295.79 287.48,-229 335.9,-173.38 527.37,-131.47 658.05,-108.62" style=""/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M236.19,-475.32C239.27,-398.09 256.15,-294.91 317.48,-229 404.73,-135.25 551.97,-103.45 657.84,-93.12" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="667.74,-106.94 658.65,-113.08 662.81,-107.8 657.89,-108.65 657.89,-108.65 657.89,-108.65 662.81,-107.8 657.12,-104.21 667.74,-106.94 667.74,-106.94" style=""/>
|
<polygon fill="black" stroke="black" points="667.63,-92.21 658.09,-97.61 662.65,-92.67 657.68,-93.13 657.68,-93.13 657.68,-93.13 662.65,-92.67 657.26,-88.65 667.63,-92.21 667.63,-92.21" style=""/>
|
||||||
<text text-anchor="middle" x="299.65" y="-321.3" font-family="Times,serif" font-size="14.00" style="">uses</text>
|
<text text-anchor="middle" x="329.65" y="-321.3" font-family="Times,serif" font-size="14.00" style="">uses</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- Transaction -->
|
<!-- Transaction -->
|
||||||
<g id="node8" class="node" pointer-events="visible" data-name="Transaction">
|
<g id="node8" class="node" pointer-events="visible" data-name="Transaction">
|
||||||
@@ -195,9 +195,9 @@
|
|||||||
<!-- Transaction->Address -->
|
<!-- Transaction->Address -->
|
||||||
<g id="edge13" class="edge" data-name="Transaction->Address">
|
<g id="edge13" class="edge" data-name="Transaction->Address">
|
||||||
|
|
||||||
<path fill="none" stroke="black" d="M494.91,-738.07C491.51,-663.04 483.84,-562.26 466.59,-474.8 463.34,-458.33 458.9,-441.11 454.04,-424.49" style=""/>
|
<path fill="none" stroke="black" d="M489.29,-738.07C483.51,-663.47 475.31,-563.19 466.59,-474.8 464.98,-458.46 463.12,-441.11 461.24,-424.27" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="454.07,-424.58 448.51,-419.98 450.61,-413.09 456.17,-417.68 454.07,-424.58" style=""/>
|
<polygon fill="black" stroke="black" points="461.29,-424.64 456.64,-419.12 459.94,-412.71 464.59,-418.23 461.29,-424.64" style=""/>
|
||||||
<text text-anchor="middle" x="534.98" y="-575.5" font-family="Times,serif" font-size="14.00" style="">shipToAddress</text>
|
<text text-anchor="middle" x="527.98" y="-575.5" font-family="Times,serif" font-size="14.00" style="">shipToAddress</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- InventoryList -->
|
<!-- InventoryList -->
|
||||||
<g id="node9" class="node" pointer-events="visible" data-name="InventoryList">
|
<g id="node9" class="node" pointer-events="visible" data-name="InventoryList">
|
||||||
@@ -218,16 +218,16 @@
|
|||||||
<!-- Transaction->DataRepository -->
|
<!-- Transaction->DataRepository -->
|
||||||
<g id="edge27" class="edge" data-name="Transaction->DataRepository">
|
<g id="edge27" class="edge" data-name="Transaction->DataRepository">
|
||||||
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M562.19,-738.07C569.97,-720.64 576.83,-702.47 581.59,-684.6 633.82,-488.7 510.92,-408.81 604.59,-229 617.82,-203.61 637.94,-181.4 660,-162.6" style=""/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M556.35,-738.07C563.59,-720.56 570.03,-702.37 574.59,-684.6 625.01,-488.04 509.46,-408.25 604.59,-229 618.01,-203.72 638.22,-181.55 660.3,-162.76" style=""/>
|
||||||
<polygon fill="black" stroke="black" points="667.55,-156.36 662.71,-166.2 663.7,-159.55 659.84,-162.73 659.84,-162.73 659.84,-162.73 663.7,-159.55 656.97,-159.27 667.55,-156.36 667.55,-156.36" style=""/>
|
<polygon fill="black" stroke="black" points="667.85,-156.52 663.01,-166.36 664,-159.71 660.14,-162.89 660.14,-162.89 660.14,-162.89 664,-159.71 657.28,-159.42 667.85,-156.52 667.85,-156.52" style=""/>
|
||||||
<text text-anchor="middle" x="590.65" y="-444.2" font-family="Times,serif" font-size="14.00" style="">uses</text>
|
<text text-anchor="middle" x="586.65" y="-444.2" font-family="Times,serif" font-size="14.00" style="">uses</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- InventoryList->InventoryPiece -->
|
<!-- InventoryList->InventoryPiece -->
|
||||||
<g id="edge19" class="edge" data-name="InventoryList->InventoryPiece">
|
<g id="edge19" class="edge" data-name="InventoryList->InventoryPiece">
|
||||||
|
|
||||||
<path fill="none" stroke="black" d="M905.3,-546.5C970.23,-506.07 1082.87,-435.92 1163.52,-385.7" style=""/>
|
<path fill="none" stroke="black" d="M907.85,-546.5C977.2,-505.35 1098.42,-433.41 1183.32,-383.04" style=""/>
|
||||||
<polygon fill="none" stroke="black" points="1163.5,-385.71 1166.48,-379.15 1173.69,-379.37 1170.71,-385.94 1163.5,-385.71" style=""/>
|
<polygon fill="none" stroke="black" points="1183.16,-383.13 1186.28,-376.63 1193.48,-377 1190.37,-383.51 1183.16,-383.13" style=""/>
|
||||||
<text text-anchor="middle" x="1091.92" y="-444.2" font-family="Times,serif" font-size="14.00" style="">contains</text>
|
<text text-anchor="middle" x="1116.92" y="-444.2" font-family="Times,serif" font-size="14.00" style="">contains 0..* </text>
|
||||||
</g>
|
</g>
|
||||||
<!-- ArrayList -->
|
<!-- ArrayList -->
|
||||||
<g id="node20" class="node" pointer-events="visible" data-name="ArrayList">
|
<g id="node20" class="node" pointer-events="visible" data-name="ArrayList">
|
||||||
@@ -256,7 +256,7 @@
|
|||||||
|
|
||||||
<path fill="none" stroke="black" d="M239.59,-826.3C239.59,-797.01 239.59,-744.76 239.59,-695.96" style=""/>
|
<path fill="none" stroke="black" d="M239.59,-826.3C239.59,-797.01 239.59,-744.76 239.59,-695.96" style=""/>
|
||||||
<polygon fill="none" stroke="black" points="239.59,-695.97 235.59,-689.97 239.59,-683.97 243.59,-689.97 239.59,-695.97" style=""/>
|
<polygon fill="none" stroke="black" points="239.59,-695.97 235.59,-689.97 239.59,-683.97 243.59,-689.97 239.59,-695.97" style=""/>
|
||||||
<text text-anchor="middle" x="262.92" y="-706.8" font-family="Times,serif" font-size="14.00" style="">contains</text>
|
<text text-anchor="middle" x="276.92" y="-706.8" font-family="Times,serif" font-size="14.00" style="">contains 0..* </text>
|
||||||
</g>
|
</g>
|
||||||
<!-- CustomerList->ArrayList -->
|
<!-- CustomerList->ArrayList -->
|
||||||
<g id="edge6" class="edge" data-name="CustomerList->ArrayList">
|
<g id="edge6" class="edge" data-name="CustomerList->ArrayList">
|
||||||
@@ -277,16 +277,16 @@
|
|||||||
<!-- TransactionList->Transaction -->
|
<!-- TransactionList->Transaction -->
|
||||||
<g id="edge21" class="edge" data-name="TransactionList->Transaction">
|
<g id="edge21" class="edge" data-name="TransactionList->Transaction">
|
||||||
|
|
||||||
<path fill="none" stroke="black" d="M607.86,-1063.38C595.71,-1040.06 578.44,-1006.9 561.16,-973.74" style=""/>
|
<path fill="none" stroke="black" d="M599.04,-1063.65C585.14,-1045.38 568.32,-1021.6 555.94,-998.8 551.65,-990.91 547.51,-982.63 543.54,-974.2" style=""/>
|
||||||
<polygon fill="none" stroke="black" points="561.35,-974.1 555.03,-970.62 555.81,-963.45 562.13,-966.93 561.35,-974.1" style=""/>
|
<polygon fill="none" stroke="black" points="543.61,-974.36 537.48,-970.57 538.61,-963.45 544.75,-967.23 543.61,-974.36" style=""/>
|
||||||
<text text-anchor="middle" x="595.92" y="-986.2" font-family="Times,serif" font-size="14.00" style="">contains</text>
|
<text text-anchor="middle" x="593.92" y="-986.2" font-family="Times,serif" font-size="14.00" style="">contains 0..* </text>
|
||||||
</g>
|
</g>
|
||||||
<!-- TransactionList->ArrayList -->
|
<!-- TransactionList->ArrayList -->
|
||||||
<g id="edge7" class="edge" data-name="TransactionList->ArrayList">
|
<g id="edge7" class="edge" data-name="TransactionList->ArrayList">
|
||||||
|
|
||||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M625.8,-1063.44C630.54,-937.85 647.79,-480.31 652.43,-357.19" style=""/>
|
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M626.79,-1063.72C628.03,-1044.86 629.55,-1020.47 630.59,-998.8 636.72,-871.48 649.12,-472.45 652.64,-357.67" style=""/>
|
||||||
<polygon fill="none" stroke="black" points="655.92,-357.66 652.8,-347.54 648.92,-357.4 655.92,-357.66" style=""/>
|
<polygon fill="none" stroke="black" points="656.14,-357.9 652.94,-347.79 649.14,-357.68 656.14,-357.9" style=""/>
|
||||||
<text text-anchor="middle" x="660.97" y="-706.8" font-family="Times,serif" font-size="14.00" style="">extends</text>
|
<text text-anchor="middle" x="662.97" y="-706.8" font-family="Times,serif" font-size="14.00" style="">extends</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- InventoryManager -->
|
<!-- InventoryManager -->
|
||||||
<g id="node12" class="node" pointer-events="visible" data-name="InventoryManager">
|
<g id="node12" class="node" pointer-events="visible" data-name="InventoryManager">
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
@@ -1,84 +0,0 @@
|
|||||||
digraph InventorySystem {
|
|
||||||
// Graph settings
|
|
||||||
rankdir=TB;
|
|
||||||
node [shape=record, fontname="Arial", fontsize=10];
|
|
||||||
edge [fontname="Arial", fontsize=9];
|
|
||||||
|
|
||||||
// Abstract Class
|
|
||||||
InventoryPiece [label="{InventoryPiece\n«abstract»|+ id : String\l+ price : float\l+ created : ZonedDateTime\l+ title : String\l+ description : String\l+ Author : String\l- iventoryType : InventoryType\l|+ InventoryPiece(InventoryType)\l+ InventoryPiece()\l+ isArt(InventoryPiece) : Boolean\l+ getType() : String\l+ getId() : String\l+ setId(String) : void\l+ getPrice() : float\l+ setPrice(float) : void\l+ getCreated() : ZonedDateTime\l+ setCreated(ZonedDateTime) : void\l+ getTitle() : String\l+ setTitle(String) : void\l+ getDescription() : String\l+ setDescription(String) : void\l+ getAuthor() : String\l+ setAuthor(String) : void\l}", style=filled, fillcolor=lightyellow];
|
|
||||||
|
|
||||||
// Concrete Classes extending InventoryPiece
|
|
||||||
Drawing [label="{Drawing|+ style : String\l+ technique : String\l+ category : String\l|+ Drawing()\l}"];
|
|
||||||
Painting [label="{Painting|- height : int\l- width : int\l- style : String\l- technique : String\l- category : String\l|+ Painting()\l}"];
|
|
||||||
Print [label="{Print|- openEditionType : String\l- category : String\l|+ Print()\l+ Print(String, String)\l+ getOpenEditionType() : String\l+ setOpenEditionType(String) : void\l+ getCategory() : String\l+ setCategory(String) : void\l}"];
|
|
||||||
Sculpture [label="{Sculpture|- material : String\l- weight : float\l|+ Sculpture()\l}"];
|
|
||||||
|
|
||||||
// Enums
|
|
||||||
InventoryType [label="{«enumeration»\nInventoryType|PAINTING\lDRAWING\lPRINT\lSCULPTURE\l}", style=filled, fillcolor=lightblue];
|
|
||||||
TransactionOperationEnum [label="{«enumeration»\nTransactionOperationEnum|Completed\lDraft\lPricing\lRemoved\lShipping\l}", style=filled, fillcolor=lightblue];
|
|
||||||
|
|
||||||
// Value Objects
|
|
||||||
Address [label="{Address|- street : String\l- city : String\l- state : String\l- zip : String\l|+ Address()\l+ Address(String, String, String, String)\l+ getStreet() : String\l+ setStreet(String) : void\l+ getCity() : String\l+ setCity(String) : void\l+ getState() : String\l+ setState(String) : void\l+ getZip() : String\l+ setZip(String) : void\l+ hashCode() : int\l+ equals(Object) : boolean\l+ toString() : String\l}"];
|
|
||||||
|
|
||||||
// Domain Classes
|
|
||||||
Customer [label="{Customer|# id : String\l# updated : ZonedDateTime\l- phone : String\l- mailing : Address\l- email : String\l- nameFirst : String\l- nameLast : String\l|+ Customer(String, String, String, String)\l+ Customer()\l+ getEmail() : String\l+ getId() : String\l+ setId(String) : void\l+ getPhone() : String\l+ setPhone(String) : void\l+ getMailing() : Address\l+ setMailing(Address) : void\l+ setEmail(String) : void\l+ getNameFirst() : String\l+ setNameFirst(String) : void\l+ getNameLast() : String\l+ setNameLast(String) : void\l}"];
|
|
||||||
|
|
||||||
Transaction [label="{Transaction|- id : String\l- created : ZonedDateTime\l- completed : ZonedDateTime\l- customerId : String\l- shipToAddress : Address\l- customerInventoryList : InventoryList\l- attributes : JsonArray\l|+ Transaction()\l+ getId() : String\l+ setId(String) : void\l+ getCreated() : ZonedDateTime\l+ setCreated(ZonedDateTime) : void\l+ getCompleted() : ZonedDateTime\l+ setCompleted(ZonedDateTime) : void\l}"];
|
|
||||||
|
|
||||||
// Collection Classes
|
|
||||||
InventoryList [label="{InventoryList|+ InventoryList()\l}", style=filled, fillcolor=lightgreen];
|
|
||||||
CustomerList [label="{CustomerList|+ CustomerList()\l}", style=filled, fillcolor=lightgreen];
|
|
||||||
TransactionList [label="{TransactionList|+ TransactionList()\l+ add(Transaction) : boolean\l}", style=filled, fillcolor=lightgreen];
|
|
||||||
|
|
||||||
// Manager Classes (Singletons)
|
|
||||||
InventoryManager [label="{«singleton»\nInventoryManager|- INSTANCE : InventoryManager\l+ INVENTORY : InventoryList\l|- InventoryManager()\l+ getInstance() : InventoryManager\l+ getArtPieceTypes() : Set\<InventoryType\>\l+ add(InventoryPiece) : void\l+ find(String) : InventoryPiece\l+ update(InventoryPiece) : InventoryPiece\l+ save() : void\l+ loadAll() : void\l+ Remove(InventoryPiece) : void\l}", style=filled, fillcolor=lightcoral];
|
|
||||||
|
|
||||||
CustomerManager [label="{«singleton»\nCustomerManager|- INSTANCE : CustomerManager\l+ CUSTOMERS : CustomerList\l|+ getInstance() : CustomerManager\l+ add(Customer) : boolean\l- check(Customer) : void\l+ findById(String) : Customer\l+ findByEmail(String) : Customer\l}", style=filled, fillcolor=lightcoral];
|
|
||||||
|
|
||||||
TransactionManager [label="{«singleton»\nTransactionManager|- INSTANCE : TransactionManager\l+ TRANSACTIONS : TransactionList\l|+ getInstance() : TransactionManager\l+ TransactRequest(Customer, InventoryList, Transaction) : Transaction\l+ compute(Transaction, TransactionOperationEnum) : void\l+ compute(Transaction) : void\l+ complete(Transaction) : void\l+ findByCustomerEmail(String) : TransactionList\l+ findByTransactionId(String) : TransactionList\l+ findByTransactionDate(ZonedDateTime) : TransactionList\l+ remove(Transaction) : void\l+ save() : void\l}", style=filled, fillcolor=lightcoral];
|
|
||||||
|
|
||||||
// Utility Class
|
|
||||||
DataRepository [label="{«singleton»\nDataRepository|- INSTANCE : DataRepository\l|+ getInstance() : DataRepository\l+ generateRandomID(int) : String\l+ generateRandom10DigitID() : String\l+ WalkFileSystemTree(InventoryManager) : void\l+ WalkFileSystemTree(CustomerManager) : void\l+ WalkFileSystemTree(TransactionManager) : void\l+ mapJsonToObjectList(String, Class\<T\>) : List\<T\>\l}", style=filled, fillcolor=lavender];
|
|
||||||
|
|
||||||
// Exception Classes
|
|
||||||
InvalidArtOperationException [label="{InvalidArtOperationException|+ InvalidArtOperationException(String)\l+ InvalidArtOperationException(String, Throwable)\l+ InvalidArtOperationException(Throwable)\l}", style=filled, fillcolor=pink];
|
|
||||||
|
|
||||||
InvalidRecordDataException [label="{InvalidRecordDataException|+ InvalidRecordDataException(String)\l+ InvalidRecordDataException(String, Throwable)\l+ InvalidRecordDataException(Throwable)\l}", style=filled, fillcolor=pink];
|
|
||||||
|
|
||||||
InvalidTransactionException [label="{InvalidTransactionException|+ InvalidTransactionException(String)\l+ InvalidTransactionException(String, Throwable)\l+ InvalidTransactionException(Throwable)\l}", style=filled, fillcolor=pink];
|
|
||||||
|
|
||||||
InvalidTransOperationException [label="{InvalidTransOperationException|+ InvalidTransOperationException(String)\l+ InvalidTransOperationException(String, Throwable)\l+ InvalidTransOperationException(Throwable)\l}", style=filled, fillcolor=pink];
|
|
||||||
|
|
||||||
// Inheritance relationships
|
|
||||||
InventoryPiece -> Drawing [dir=back, arrowtail=empty, label="extends"];
|
|
||||||
InventoryPiece -> Painting [dir=back, arrowtail=empty, label="extends"];
|
|
||||||
InventoryPiece -> Print [dir=back, arrowtail=empty, label="extends"];
|
|
||||||
InventoryPiece -> Sculpture [dir=back, arrowtail=empty, label="extends"];
|
|
||||||
|
|
||||||
// Collection inheritance
|
|
||||||
InventoryList -> InventoryPiece [arrowhead=diamond, label="contains *"];
|
|
||||||
CustomerList -> Customer [arrowhead=diamond, label="contains *"];
|
|
||||||
TransactionList -> Transaction [arrowhead=diamond, label="contains *"];
|
|
||||||
|
|
||||||
// Composition relationships
|
|
||||||
Customer -> Address [arrowhead=diamond, label="mailing"];
|
|
||||||
Transaction -> Address [arrowhead=diamond, label="shipToAddress"];
|
|
||||||
Transaction -> InventoryList [arrowhead=diamond, label="customerInventoryList"];
|
|
||||||
|
|
||||||
// Manager aggregations
|
|
||||||
InventoryManager -> InventoryList [arrowhead=diamond, label="INVENTORY"];
|
|
||||||
CustomerManager -> CustomerList [arrowhead=diamond, label="CUSTOMERS"];
|
|
||||||
TransactionManager -> TransactionList [arrowhead=diamond, label="TRANSACTIONS"];
|
|
||||||
|
|
||||||
// Dependencies
|
|
||||||
InventoryPiece -> InventoryType [style=dashed, arrowhead=open, label="uses"];
|
|
||||||
CustomerManager -> InvalidRecordDataException [style=dashed, arrowhead=open, label="throws"];
|
|
||||||
TransactionManager -> TransactionOperationEnum [style=dashed, arrowhead=open, label="uses"];
|
|
||||||
InventoryManager -> DataRepository [style=dashed, arrowhead=open, label="uses"];
|
|
||||||
CustomerManager -> DataRepository [style=dashed, arrowhead=open, label="uses"];
|
|
||||||
TransactionManager -> DataRepository [style=dashed, arrowhead=open, label="uses"];
|
|
||||||
InventoryPiece -> DataRepository [style=dashed, arrowhead=open, label="uses"];
|
|
||||||
TransactionManager -> Customer [style=dashed, arrowhead=open, label="uses"];
|
|
||||||
TransactionManager -> InventoryList [style=dashed, arrowhead=open, label="uses"];
|
|
||||||
DataRepository -> InventoryPiece [style=dashed, arrowhead=open, label="serializes"];
|
|
||||||
}
|
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
digraph InventoryMClassDiagram {
|
|
||||||
rankdir=TB;
|
|
||||||
node [shape=record, style=filled, fillcolor=lightblue];
|
|
||||||
|
|
||||||
// Abstract Classes
|
|
||||||
InventoryPiece [label="{InventoryPiece\n«abstract»|+ id : String\l+ price : float\l+ created : ZonedDateTime\l+ title : String\l+ description : String\l+ Author : String\l|+ getType() : String\l+ computePrice() : float\l}", fillcolor=lightyellow];
|
|
||||||
|
|
||||||
// Concrete Classes - Inventory Items
|
|
||||||
Drawing [label="{Drawing|+ style : String\l+ technique : String\l+ category : String\l|+ computePrice() : float\l}"];
|
|
||||||
Painting [label="{Painting|- height : int\l- width : int\l- style : String\l- technique : String\l- category : String\l|+ computePrice() : float\l}"];
|
|
||||||
Print [label="{Print|- openEditionType : String\l- category : String\l|+ computePrice() : float\l}"];
|
|
||||||
Sculpture [label="{Sculpture|- material : String\l- weight : float\l|+ computePrice() : float\l}"];
|
|
||||||
|
|
||||||
// Customer and Address
|
|
||||||
Customer [label="{Customer|# id : String\l# updated : ZonedDateTime\l- phone : String\l- mailing : Address\l- email : String\l- nameFirst : String\l- nameLast : String\l|+ Customer(nameFirst, nameLast, phone, email)\l+ getId() : String\l+ getEmail() : String\l}"];
|
|
||||||
Address [label="{Address|- street : String\l- city : String\l- state : String\l- zip : String\l|+ Address(street, city, state, zip)\l+ toString() : String\l+ equals(Object) : boolean\l+ hashCode() : int\l}"];
|
|
||||||
|
|
||||||
// Transaction
|
|
||||||
Transaction [label="{Transaction|- id : String\l- created : ZonedDateTime\l- completed : ZonedDateTime\l- customerId : String\l- shipToAddress : Address\l- customerInventoryList : InventoryList\l- totalPrice : float\l- attributes : JsonArray\l|# Transaction(customer, cart)\l+ check() : void\l+ toString() : String\l}"];
|
|
||||||
|
|
||||||
// List Classes
|
|
||||||
InventoryList [label="{InventoryList|+ InventoryList()\l+ add(InventoryPiece) : boolean\l}"];
|
|
||||||
CustomerList [label="{CustomerList|+ CustomerList()\l}"];
|
|
||||||
TransactionList [label="{TransactionList|+ TransactionList()\l+ add(Transaction) : boolean\l}"];
|
|
||||||
|
|
||||||
// Manager Classes (Singletons)
|
|
||||||
InventoryManager [label="{InventoryManager|+ INVENTORY : InventoryList\l- INSTANCE : InventoryManager\l|+ getInstance() : InventoryManager\l+ add(InventoryPiece) : void\l+ find(String) : InventoryPiece\l+ Remove(InventoryPiece) : InventoryPiece\l+ save() : void\l+ load() : void\l}"];
|
|
||||||
CustomerManager [label="{CustomerManager|+ CUSTOMERS : CustomerList\l- INSTANCE : CustomerManager\l|+ getInstance() : CustomerManager\l+ add(Customer) : boolean\l+ findByEmail(String) : Customer\l+ save() : void\l+ load() : void\l}"];
|
|
||||||
TransactionManager [label="{TransactionManager|+ TRANSACTIONS : TransactionList\l- INSTANCE : TransactionManager\l|+ getInstance() : TransactionManager\l+ TransactRequest(Customer, InventoryList) : Transaction\l+ complete(Transaction) : void\l+ compute(Transaction) : void\l+ save() : void\l+ load() : void\l}"];
|
|
||||||
|
|
||||||
// Repository
|
|
||||||
DataRepository [label="{DataRepository|- INSTANCE : DataRepository\l|+ getInstance() : DataRepository\l+ generateRandomID(int) : String\l+ generateRandom10DigitID() : String\l+ write(InventoryManager) : void\l+ write(CustomerManager) : void\l+ write(TransactionManager) : void\l+ WalkFileSystemTree(...) : void\l}"];
|
|
||||||
|
|
||||||
// Exception Classes
|
|
||||||
InvalidArtOperationException [label="{InvalidArtOperationException|+ InvalidArtOperationException(String)\l}", fillcolor=lightcoral];
|
|
||||||
InvalidRecordDataException [label="{InvalidRecordDataException|+ InvalidRecordDataException(String)\l}", fillcolor=lightcoral];
|
|
||||||
InvalidTransactionException [label="{InvalidTransactionException|+ InvalidTransactionException(String)\l}", fillcolor=lightcoral];
|
|
||||||
InvalidTransOperationException [label="{InvalidTransOperationException|+ InvalidTransOperationException(String)\l}", fillcolor=lightcoral];
|
|
||||||
|
|
||||||
// Inheritance Relationships
|
|
||||||
Drawing -> InventoryPiece [arrowhead=empty, label="extends"];
|
|
||||||
Painting -> InventoryPiece [arrowhead=empty, label="extends"];
|
|
||||||
Print -> InventoryPiece [arrowhead=empty, label="extends"];
|
|
||||||
Sculpture -> InventoryPiece [arrowhead=empty, label="extends"];
|
|
||||||
|
|
||||||
InventoryList -> ArrayList [arrowhead=empty, label="extends", style=dashed];
|
|
||||||
CustomerList -> ArrayList [arrowhead=empty, label="extends", style=dashed];
|
|
||||||
TransactionList -> ArrayList [arrowhead=empty, label="extends", style=dashed];
|
|
||||||
|
|
||||||
InvalidArtOperationException -> RuntimeException [arrowhead=empty, label="extends", style=dashed];
|
|
||||||
InvalidRecordDataException -> RuntimeException [arrowhead=empty, label="extends", style=dashed];
|
|
||||||
InvalidTransactionException -> RuntimeException [arrowhead=empty, label="extends", style=dashed];
|
|
||||||
InvalidTransOperationException -> RuntimeException [arrowhead=empty, label="extends", style=dashed];
|
|
||||||
|
|
||||||
// Composition/Aggregation Relationships
|
|
||||||
Customer -> Address [arrowhead=diamond, label="mailing"];
|
|
||||||
Transaction -> Address [arrowhead=diamond, label="shipToAddress"];
|
|
||||||
Transaction -> InventoryList [arrowhead=diamond, label="customerInventoryList"];
|
|
||||||
Transaction -> Customer [arrowhead=none, style=dashed, label="customerId"];
|
|
||||||
|
|
||||||
InventoryManager -> InventoryList [arrowhead=diamond, label="INVENTORY"];
|
|
||||||
CustomerManager -> CustomerList [arrowhead=diamond, label="CUSTOMERS"];
|
|
||||||
TransactionManager -> TransactionList [arrowhead=diamond, label="TRANSACTIONS"];
|
|
||||||
|
|
||||||
InventoryList -> InventoryPiece [arrowhead=odiamond, label="contains"];
|
|
||||||
CustomerList -> Customer [arrowhead=odiamond, label="contains"];
|
|
||||||
TransactionList -> Transaction [arrowhead=odiamond, label="contains"];
|
|
||||||
|
|
||||||
// Dependencies
|
|
||||||
InventoryManager -> DataRepository [arrowhead=vee, style=dashed, label="uses"];
|
|
||||||
CustomerManager -> DataRepository [arrowhead=vee, style=dashed, label="uses"];
|
|
||||||
TransactionManager -> DataRepository [arrowhead=vee, style=dashed, label="uses"];
|
|
||||||
|
|
||||||
Customer -> DataRepository [arrowhead=vee, style=dashed, label="uses"];
|
|
||||||
InventoryPiece -> DataRepository [arrowhead=vee, style=dashed, label="uses"];
|
|
||||||
Transaction -> DataRepository [arrowhead=vee, style=dashed, label="uses"];
|
|
||||||
|
|
||||||
TransactionManager -> Customer [arrowhead=vee, style=dashed, label="uses"];
|
|
||||||
TransactionManager -> InventoryList [arrowhead=vee, style=dashed, label="uses"];
|
|
||||||
|
|
||||||
// External Classes (referenced but not defined)
|
|
||||||
ArrayList [label="{ArrayList\n«Java Util»}", fillcolor=lightgray, style="filled,dashed"];
|
|
||||||
RuntimeException [label="{RuntimeException\n«Java Lang»}", fillcolor=lightgray, style="filled,dashed"];
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user