diff --git a/demos/demo4/counter-bluej/counter/BuildOrder.java b/demos/demo4/counter-bluej/BuildOrder.java similarity index 100% rename from demos/demo4/counter-bluej/counter/BuildOrder.java rename to demos/demo4/counter-bluej/BuildOrder.java diff --git a/demos/demo4/counter-bluej/counter/Burger.java b/demos/demo4/counter-bluej/Burger.java similarity index 100% rename from demos/demo4/counter-bluej/counter/Burger.java rename to demos/demo4/counter-bluej/Burger.java diff --git a/demos/demo4/counter-bluej/counter/Cheese.java b/demos/demo4/counter-bluej/Cheese.java similarity index 100% rename from demos/demo4/counter-bluej/counter/Cheese.java rename to demos/demo4/counter-bluej/Cheese.java diff --git a/demos/demo4/counter-bluej/counter/Client.java b/demos/demo4/counter-bluej/Client.java similarity index 100% rename from demos/demo4/counter-bluej/counter/Client.java rename to demos/demo4/counter-bluej/Client.java diff --git a/demos/demo4/counter-bluej/counter/Component.java b/demos/demo4/counter-bluej/Component.java similarity index 100% rename from demos/demo4/counter-bluej/counter/Component.java rename to demos/demo4/counter-bluej/Component.java diff --git a/demos/demo4/counter-bluej/counter/Composite.java b/demos/demo4/counter-bluej/Composite.java similarity index 100% rename from demos/demo4/counter-bluej/counter/Composite.java rename to demos/demo4/counter-bluej/Composite.java diff --git a/demos/demo4/counter-bluej/counter/CustomBurger.java b/demos/demo4/counter-bluej/CustomBurger.java similarity index 100% rename from demos/demo4/counter-bluej/counter/CustomBurger.java rename to demos/demo4/counter-bluej/CustomBurger.java diff --git a/demos/demo4/counter-bluej/counter/Leaf.java b/demos/demo4/counter-bluej/Leaf.java similarity index 100% rename from demos/demo4/counter-bluej/counter/Leaf.java rename to demos/demo4/counter-bluej/Leaf.java diff --git a/demos/demo4/counter-bluej/counter/LeafDecorator.java b/demos/demo4/counter-bluej/LeafDecorator.java similarity index 100% rename from demos/demo4/counter-bluej/counter/LeafDecorator.java rename to demos/demo4/counter-bluej/LeafDecorator.java diff --git a/demos/demo4/counter-bluej/counter/Premium.java b/demos/demo4/counter-bluej/Premium.java similarity index 100% rename from demos/demo4/counter-bluej/counter/Premium.java rename to demos/demo4/counter-bluej/Premium.java diff --git a/demos/demo4/counter-bluej/counter/PriceDecorator.java b/demos/demo4/counter-bluej/PriceDecorator.java similarity index 100% rename from demos/demo4/counter-bluej/counter/PriceDecorator.java rename to demos/demo4/counter-bluej/PriceDecorator.java diff --git a/demos/demo4/counter-bluej/counter/Sauce.java b/demos/demo4/counter-bluej/Sauce.java similarity index 100% rename from demos/demo4/counter-bluej/counter/Sauce.java rename to demos/demo4/counter-bluej/Sauce.java diff --git a/demos/demo4/counter-bluej/counter/Toppings.java b/demos/demo4/counter-bluej/Toppings.java similarity index 100% rename from demos/demo4/counter-bluej/counter/Toppings.java rename to demos/demo4/counter-bluej/Toppings.java diff --git a/demos/demo4/counter-bluej/counter-bugger-uml.asta b/demos/demo4/counter-bluej/counter-bugger-uml.asta deleted file mode 100644 index 7b7e9a4..0000000 Binary files a/demos/demo4/counter-bluej/counter-bugger-uml.asta and /dev/null differ diff --git a/demos/demo4/counter-bluej/counter/counter-burger.asta b/demos/demo4/counter-bluej/counter/counter-burger.asta deleted file mode 100644 index 92d3f73..0000000 Binary files a/demos/demo4/counter-bluej/counter/counter-burger.asta and /dev/null differ diff --git a/demos/demo4/counter-bluej/counter/package.bluej b/demos/demo4/counter-bluej/package.bluej similarity index 100% rename from demos/demo4/counter-bluej/counter/package.bluej rename to demos/demo4/counter-bluej/package.bluej diff --git a/demos/demo4/counter-burger-uml.asta b/demos/demo4/counter-burger-uml.asta new file mode 100644 index 0000000..7e9fa94 Binary files /dev/null and b/demos/demo4/counter-burger-uml.asta differ diff --git a/demos/demo4/observer-bluej/observer-uml-diagrams.asta b/demos/demo4/observer-bluej/observer-uml-diagrams.asta deleted file mode 100644 index 353bd29..0000000 Binary files a/demos/demo4/observer-bluej/observer-uml-diagrams.asta and /dev/null differ diff --git a/demos/demo4/observer-bluej/observer-urml-parser.png b/demos/demo4/observer-bluej/observer-urml-parser.png deleted file mode 100644 index 99ea1ce..0000000 Binary files a/demos/demo4/observer-bluej/observer-urml-parser.png and /dev/null differ diff --git a/demos/demo4/observer-pattern-uml.asta b/demos/demo4/observer-pattern-uml.asta new file mode 100644 index 0000000..3d89184 Binary files /dev/null and b/demos/demo4/observer-pattern-uml.asta differ diff --git a/demos/demo6/five-guys-burger-bluej-lambda/package.bluej b/demos/demo6/five-guys-burger-bluej-lambda/package.bluej index 35b34ae..2f451ec 100644 --- a/demos/demo6/five-guys-burger-bluej-lambda/package.bluej +++ b/demos/demo6/five-guys-burger-bluej-lambda/package.bluej @@ -25,8 +25,8 @@ editor.fx.0.width=0 editor.fx.0.x=0 editor.fx.0.y=0 objectbench.height=221 -objectbench.width=616 -package.divider.horizontal=0.5996150144369586 +objectbench.width=575 +package.divider.horizontal=0.5601539942252165 package.divider.vertical=0.6637168141592921 package.editor.height=443 package.editor.width=944 diff --git a/demos/demo6/five-guys-burger-bluej-output.png b/demos/demo6/five-guys-burger-bluej-output.png new file mode 100644 index 0000000..fc7cc4a Binary files /dev/null and b/demos/demo6/five-guys-burger-bluej-output.png differ diff --git a/demos/demo8/counter-burger-updated-bluej/BuildOrder.java b/demos/demo8/counter-burger-updated-bluej/BuildOrder.java new file mode 100644 index 0000000..25c4e99 --- /dev/null +++ b/demos/demo8/counter-burger-updated-bluej/BuildOrder.java @@ -0,0 +1,134 @@ + +public class BuildOrder { + public static Component getOrder() + { + Composite order = new Composite( "Order" ) ; + + // Get Custom Burgers + CustomBurger customBurger1 = getBurger1() ; + CustomBurger customBurger2 = getBurger2() ; + + // Add Custom Burger to the Order + order.addChild( customBurger1 ); + order.addChild( customBurger2 ); + + return order ; + } + + private static CustomBurger getBurger1() { + CustomBurger customBurger1 = new CustomBurger( "Build Your Own Burger" ) ; + // Burger + Burger b = new Burger( "Burger" ) ; + String[] bo = { "Organic Bison*", "1/2lb.", "On A Bun" } ; + b.setOptions( bo ) ; + // Cheese + Cheese c = new Cheese( "Cheese" ) ; + String[] co = { "Yellow American", "Spicy Jalapeno Jack" } ; + c.setOptions( co ) ; + c.wrapDecorator( b ) ; + // Premium Cheese + PremiumCheese pc = new PremiumCheese( "Premium Cheese" ) ; + String[] pco = { "Danish Blue Cheese" } ; + pc.setOptions( pco ) ; + pc.wrapDecorator( c ) ; + // Sauce + Sauce s = new Sauce( "Sauce" ) ; + String[] so = { "Mayonnaise", "Thai Peanut Sauce" } ; + s.setOptions( so ) ; + s.wrapDecorator( pc ) ; + // Unlimited Toppings + UnlimitedToppings ut = new UnlimitedToppings( "Unlimited Toppings" ) ; + String[] uto = { "Dill Pickle Chips", "Black Olives", "Spicy Pickles" } ; + ut.setOptions( uto ) ; + ut.wrapDecorator( s ) ; + // Premium Toppings + PremiumToppings pt = new PremiumToppings( "Premium Toppings" ) ; + String[] pto = { "Marinated Tomatoes" } ; + pt.setOptions( pto ) ; + pt.wrapDecorator( ut ) ; + // Bun Choice + BunChoice bc = new BunChoice( "Bun Choice" ) ; + String[] bco = { "Ciabatta (Vegan)" } ; + bc.setOptions( bco ) ; + bc.wrapDecorator( pt ) ; + // Extra Sides + ExtraSides ex = new ExtraSides( "Extra Sides" ) ; + String[] exo = { "Shoestring Fries" } ; + ex.setOptions( exo ) ; + ex.wrapDecorator( bc ) ; + + // Setup Custom Burger Ingredients + customBurger1.setDecorator( ex ) ; + customBurger1.addChild( b ) ; + customBurger1.addChild( c ) ; + customBurger1.addChild( pc ) ; + customBurger1.addChild( s ) ; + customBurger1.addChild( ut ) ; + customBurger1.addChild( pt ) ; + customBurger1.addChild( bc ) ; + customBurger1.addChild( ex ) ; + + // return custom burger + return customBurger1 ; + } + + private static CustomBurger getBurger2() { + + CustomBurger customBurger2 = new CustomBurger( "Build Your Own Burger" ) ; + + // Burger + Burger b = new Burger( "Burger" ) ; + String[] bo = { "Hormone & Antibiotic Free Beef*", "1/3lb.", "On A Bun" } ; + b.setOptions( bo ) ; + // Cheese + Cheese c = new Cheese( "Cheese" ) ; + String[] co = { "Smoked Gouda", "Greek Feta" } ; + c.setOptions( co ) ; + c.wrapDecorator( b ) ; + // Premium Cheese + PremiumCheese pc = new PremiumCheese( "Premium Cheese" ) ; + String[] pco = { "Fresh Mozzarella" } ; + pc.setOptions( pco ) ; + pc.wrapDecorator( c ) ; + // Sauce + Sauce s = new Sauce( "Sauce" ) ; + String[] so = { "Habanero Salsa" } ; + s.setOptions( so ) ; + s.wrapDecorator( pc ) ; + // Unlimited Toppings + UnlimitedToppings ut = new UnlimitedToppings( "Unlimited Toppings" ) ; + String[] uto = { "Crushed Peanuts" } ; + ut.setOptions( uto ) ; + ut.wrapDecorator( s ) ; + // Premium Toppings + PremiumToppings pt = new PremiumToppings( "Premium Toppings" ) ; + String[] pto = { "Sunny Side Up Egg*", "Marinated Tomatoes" } ; + pt.setOptions( pto ) ; + pt.wrapDecorator( ut ) ; + // Bun Choice + BunChoice bc = new BunChoice( "Bun Choice" ) ; + String[] bco = { "Gluten-Free Bun" } ; + bc.setOptions( bco ) ; + bc.wrapDecorator( pt ) ; + // Extra Sides + ExtraSides ex = new ExtraSides( "Extra Sides" ) ; + String[] exo = { "Shoestring Fries" } ; + ex.setOptions( exo ) ; + ex.wrapDecorator( bc ) ; + + // Setup Custom Burger Ingredients + customBurger2.setDecorator( ex ) ; + customBurger2.addChild( b ) ; + customBurger2.addChild( c ) ; + customBurger2.addChild( pc ) ; + customBurger2.addChild( s ) ; + customBurger2.addChild( ut ) ; + customBurger2.addChild( pt ) ; + customBurger2.addChild( bc ) ; + customBurger2.addChild( ex ) ; + + // return custom burger + return customBurger2 ; + } + +} \ No newline at end of file diff --git a/demos/demo8/counter-burger-updated-bluej/BunChoice.java b/demos/demo8/counter-burger-updated-bluej/BunChoice.java new file mode 100644 index 0000000..76893c1 --- /dev/null +++ b/demos/demo8/counter-burger-updated-bluej/BunChoice.java @@ -0,0 +1,35 @@ + +public class BunChoice extends LeafDecorator +{ + private String[] options ; + + + public BunChoice( String d ) + { + super(d) ; + } + + public void setOptions( String[] options ) + { + this.options = options ; + for ( int i = 0; i0) desc += " + " + options[i] ; + else desc = options[i] ; + } + return desc ; + } + +} \ No newline at end of file diff --git a/demos/demo8/counter-burger-updated-bluej/Burger.java b/demos/demo8/counter-burger-updated-bluej/Burger.java new file mode 100644 index 0000000..5337149 --- /dev/null +++ b/demos/demo8/counter-burger-updated-bluej/Burger.java @@ -0,0 +1,36 @@ +public class Burger extends LeafDecorator +{ + private String[] options ; + + + public Burger( String d ) + { + super(d) ; + } + + public void setOptions( String[] options ) + { + this.options = options ; + for ( int i = 0; i0) desc += " + " + options[i] ; + else desc = options[i] ; + } + return desc ; + } + +} diff --git a/demos/demo8/counter-burger-updated-bluej/Cheese.java b/demos/demo8/counter-burger-updated-bluej/Cheese.java new file mode 100644 index 0000000..2fc3f88 --- /dev/null +++ b/demos/demo8/counter-burger-updated-bluej/Cheese.java @@ -0,0 +1,30 @@ +public class Cheese extends LeafDecorator +{ + private String[] options ; + + + public Cheese( String d ) + { + super(d) ; + } + + // 1 cheese free, extra cheese +1.00 + public void setOptions( String[] options ) + { + this.options = options ; + if ( options.length > 1 ) + this.price += (options.length-1) * 1.00 ; + } + + public String getDescription() + { + String desc = "" ; + for ( int i = 0; i0) desc += " + " + options[i] ; + else desc = options[i] ; + } + return desc ; + } + +} \ No newline at end of file diff --git a/demos/demo8/counter-burger-updated-bluej/Client.java b/demos/demo8/counter-burger-updated-bluej/Client.java new file mode 100644 index 0000000..efc8be4 --- /dev/null +++ b/demos/demo8/counter-burger-updated-bluej/Client.java @@ -0,0 +1,12 @@ + + +public class Client { + + public static void runTest() + { + Component theOrder = BuildOrder.getOrder() ; + theOrder.printDescription(); + + } +} + diff --git a/demos/demo8/counter-burger-updated-bluej/Component.java b/demos/demo8/counter-burger-updated-bluej/Component.java new file mode 100644 index 0000000..c620a4d --- /dev/null +++ b/demos/demo8/counter-burger-updated-bluej/Component.java @@ -0,0 +1,11 @@ + + +public interface Component { + + void printDescription() ; + void addChild(Component c); + void removeChild(Component c); + Component getChild(int i); + +} + diff --git a/demos/demo8/counter-burger-updated-bluej/Composite.java b/demos/demo8/counter-burger-updated-bluej/Composite.java new file mode 100644 index 0000000..8c881cd --- /dev/null +++ b/demos/demo8/counter-burger-updated-bluej/Composite.java @@ -0,0 +1,36 @@ + + +import java.util.ArrayList; + +public class Composite implements Component { + + protected ArrayList components = new ArrayList() ; + protected String description ; + + public Composite ( String d ) + { + description = d ; + } + + public void printDescription() { + System.out.println( "\n" + description ); + for (Component obj : components) + { + obj.printDescription(); + } + } + + public void addChild(Component c) { + components.add( c ) ; + } + + public void removeChild(Component c) { + components.remove(c) ; + } + + public Component getChild(int i) { + return components.get( i ) ; + } + +} + diff --git a/demos/demo8/counter-burger-updated-bluej/CustomBurger.java b/demos/demo8/counter-burger-updated-bluej/CustomBurger.java new file mode 100644 index 0000000..4ff1341 --- /dev/null +++ b/demos/demo8/counter-burger-updated-bluej/CustomBurger.java @@ -0,0 +1,28 @@ + +import java.text.DecimalFormat; + +public class CustomBurger extends Composite +{ + PriceDecorator decorator = null ; + + public CustomBurger ( String d ) + { + super(d) ; + } + + public void setDecorator( PriceDecorator p ) + { + this.decorator = p ; + } + + public void printDescription() { + DecimalFormat fmt = new DecimalFormat("0.00"); + System.out.println( "\n\n" + description + " " + fmt.format(decorator.getPrice()) ); + for (Component obj : components) + { + obj.printDescription(); + } + } +} + + \ No newline at end of file diff --git a/demos/demo8/counter-burger-updated-bluej/ExtraSides.java b/demos/demo8/counter-burger-updated-bluej/ExtraSides.java new file mode 100644 index 0000000..edfb95f --- /dev/null +++ b/demos/demo8/counter-burger-updated-bluej/ExtraSides.java @@ -0,0 +1,29 @@ + +public class ExtraSides extends LeafDecorator +{ + private String[] options ; + + + public ExtraSides( String d ) + { + super(d) ; + } + + public void setOptions( String[] options ) + { + this.options = options ; + this.price += (options.length) * 3.00 ; + } + + public String getDescription() + { + String desc = "" ; + for ( int i = 0; i0) desc += " + " + options[i] ; + else desc = options[i] ; + } + return desc ; + } + +} \ No newline at end of file diff --git a/demos/demo8/counter-burger-updated-bluej/Leaf.java b/demos/demo8/counter-burger-updated-bluej/Leaf.java new file mode 100644 index 0000000..83a9f90 --- /dev/null +++ b/demos/demo8/counter-burger-updated-bluej/Leaf.java @@ -0,0 +1,42 @@ + + +import java.text.DecimalFormat; + + +public class Leaf implements Component { + + private String description ; + protected Double price ; + + public Leaf ( String d, Double p ) + { + description = d ; + price = p ; + } + + public Leaf ( String d ) + { + description = d ; + price = 0.0 ; + } + + public void printDescription() { + DecimalFormat fmt = new DecimalFormat("0.00"); + System.out.println( description + " " + fmt.format(price) ) ; + } + + public void addChild(Component c) { + // no implementation + } + + public void removeChild(Component c) { + // no implementation + } + + public Component getChild(int i) { + // no implementation + return null ; + } + +} + diff --git a/demos/demo8/counter-burger-updated-bluej/LeafDecorator.java b/demos/demo8/counter-burger-updated-bluej/LeafDecorator.java new file mode 100644 index 0000000..c5e2834 --- /dev/null +++ b/demos/demo8/counter-burger-updated-bluej/LeafDecorator.java @@ -0,0 +1,39 @@ + +import java.text.DecimalFormat; + + +public abstract class LeafDecorator extends Leaf implements PriceDecorator +{ + PriceDecorator wrapped ; + + public LeafDecorator( String d ) { + super( d ) ; + this.wrapped = null ; + } + + public void wrapDecorator( PriceDecorator w ) + { + this.wrapped = w ; + } + + public Double getPrice() { + if (wrapped == null ) + { + return price ; + } + else + { + return price + wrapped.getPrice() ; + } + } + + abstract public void setOptions( String[] options ) ; + abstract public String getDescription() ; + + @Override + public void printDescription() { + System.out.println( getDescription() ) ; + } + + +} diff --git a/demos/demo8/counter-burger-updated-bluej/PremiumCheese.java b/demos/demo8/counter-burger-updated-bluej/PremiumCheese.java new file mode 100644 index 0000000..34bd4e3 --- /dev/null +++ b/demos/demo8/counter-burger-updated-bluej/PremiumCheese.java @@ -0,0 +1,30 @@ +public class PremiumCheese extends LeafDecorator +{ + private String[] options ; + + + public PremiumCheese( String d ) + { + super(d) ; + } + + // premium cheese +1.50 + public void setOptions( String[] options ) + { + this.options = options ; + if ( options.length > 0 ) + this.price += options.length * 1.50 ; + } + + public String getDescription() + { + String desc = "" ; + for ( int i = 0; i0) desc += " + " + options[i] ; + else desc = options[i] ; + } + return desc ; + } + +} \ No newline at end of file diff --git a/demos/demo8/counter-burger-updated-bluej/PremiumToppings.java b/demos/demo8/counter-burger-updated-bluej/PremiumToppings.java new file mode 100644 index 0000000..81e219d --- /dev/null +++ b/demos/demo8/counter-burger-updated-bluej/PremiumToppings.java @@ -0,0 +1,34 @@ +public class PremiumToppings extends LeafDecorator +{ + private String[] options ; + + + public PremiumToppings( String d ) + { + super(d) ; + } + + public void setOptions( String[] options ) + { + this.options = options ; + for ( int i = 0; i0) desc += " + " + options[i] ; + else desc = options[i] ; + } + return desc ; + } + +} \ No newline at end of file diff --git a/demos/demo8/counter-burger-updated-bluej/PriceDecorator.java b/demos/demo8/counter-burger-updated-bluej/PriceDecorator.java new file mode 100644 index 0000000..072067f --- /dev/null +++ b/demos/demo8/counter-burger-updated-bluej/PriceDecorator.java @@ -0,0 +1,5 @@ + +public interface PriceDecorator +{ + Double getPrice(); +} diff --git a/demos/demo8/counter-burger-updated-bluej/Sauce.java b/demos/demo8/counter-burger-updated-bluej/Sauce.java new file mode 100644 index 0000000..48f834a --- /dev/null +++ b/demos/demo8/counter-burger-updated-bluej/Sauce.java @@ -0,0 +1,30 @@ +public class Sauce extends LeafDecorator +{ + private String[] options ; + + + public Sauce( String d ) + { + super(d) ; + } + + // 1 sauce free, extra +.50 + public void setOptions( String[] options ) + { + this.options = options ; + if ( options.length > 1 ) + this.price += ((options.length-1) * 0.50) ; + } + + public String getDescription() + { + String desc = "" ; + for ( int i = 0; i0) desc += " + " + options[i] ; + else desc = options[i] ; + } + return desc ; + } + +} \ No newline at end of file diff --git a/demos/demo8/counter-burger-updated-bluej/UnlimitedToppings.java b/demos/demo8/counter-burger-updated-bluej/UnlimitedToppings.java new file mode 100644 index 0000000..aedbc0a --- /dev/null +++ b/demos/demo8/counter-burger-updated-bluej/UnlimitedToppings.java @@ -0,0 +1,29 @@ + +public class UnlimitedToppings extends LeafDecorator +{ + private String[] options ; + + + public UnlimitedToppings( String d ) + { + super(d) ; + } + + // free toppings + public void setOptions( String[] options ) + { + this.options = options ; + } + + public String getDescription() + { + String desc = "" ; + for ( int i = 0; i0) desc += " + " + options[i] ; + else desc = options[i] ; + } + return desc ; + } + +} \ No newline at end of file diff --git a/demos/demo8/counter-burger-updated-bluej/package.bluej b/demos/demo8/counter-burger-updated-bluej/package.bluej new file mode 100644 index 0000000..6fc26a3 --- /dev/null +++ b/demos/demo8/counter-burger-updated-bluej/package.bluej @@ -0,0 +1,277 @@ +#BlueJ package file +dependency1.from=Leaf +dependency1.to=Component +dependency1.type=UsesDependency +dependency10.from=CustomBurger +dependency10.to=PriceDecorator +dependency10.type=UsesDependency +dependency11.from=CustomBurger +dependency11.to=Component +dependency11.type=UsesDependency +dependency12.from=BuildOrder +dependency12.to=CustomBurger +dependency12.type=UsesDependency +dependency13.from=BuildOrder +dependency13.to=Cheese +dependency13.type=UsesDependency +dependency14.from=BuildOrder +dependency14.to=PremiumToppings +dependency14.type=UsesDependency +dependency15.from=BuildOrder +dependency15.to=PremiumCheese +dependency15.type=UsesDependency +dependency16.from=BuildOrder +dependency16.to=Sauce +dependency16.type=UsesDependency +dependency17.from=BuildOrder +dependency17.to=UnlimitedToppings +dependency17.type=UsesDependency +dependency18.from=BuildOrder +dependency18.to=BunChoice +dependency18.type=UsesDependency +dependency19.from=BuildOrder +dependency19.to=ExtraSides +dependency19.type=UsesDependency +dependency2.from=Composite +dependency2.to=Component +dependency2.type=UsesDependency +dependency3.from=BuildOrder +dependency3.to=Component +dependency3.type=UsesDependency +dependency4.from=BuildOrder +dependency4.to=Composite +dependency4.type=UsesDependency +dependency5.from=BuildOrder +dependency5.to=Leaf +dependency5.type=UsesDependency +dependency6.from=Client +dependency6.to=Component +dependency6.type=UsesDependency +dependency7.from=Client +dependency7.to=BuildOrder +dependency7.type=UsesDependency +dependency8.from=LeafDecorator +dependency8.to=PriceDecorator +dependency8.type=UsesDependency +dependency9.from=BuildOrder +dependency9.to=Burger +dependency9.type=UsesDependency +objectbench.height=100 +objectbench.width=899 +package.editor.height=515 +package.editor.width=1096 +package.editor.x=227 +package.editor.y=57 +package.numDependencies=19 +package.numTargets=16 +package.showExtends=true +package.showUses=false +project.charset=UTF-8 +target1.editor.height=700 +target1.editor.width=900 +target1.editor.x=734 +target1.editor.y=326 +target1.height=50 +target1.name=BunChoice +target1.naviview.expanded=true +target1.showInterface=false +target1.type=ClassTarget +target1.typeParameters= +target1.width=90 +target1.x=450 +target1.y=320 +target10.editor.height=679 +target10.editor.width=900 +target10.editor.x=738 +target10.editor.y=461 +target10.height=50 +target10.name=CustomBurger +target10.naviview.expanded=true +target10.showInterface=false +target10.type=ClassTarget +target10.typeParameters= +target10.width=110 +target10.x=550 +target10.y=180 +target11.editor.height=700 +target11.editor.width=900 +target11.editor.x=597 +target11.editor.y=118 +target11.height=50 +target11.name=Sauce +target11.naviview.expanded=true +target11.showInterface=false +target11.type=ClassTarget +target11.typeParameters= +target11.width=80 +target11.x=440 +target11.y=180 +target12.editor.height=700 +target12.editor.width=900 +target12.editor.x=632 +target12.editor.y=188 +target12.height=50 +target12.name=Leaf +target12.naviview.expanded=true +target12.showInterface=false +target12.type=ClassTarget +target12.typeParameters= +target12.width=80 +target12.x=290 +target12.y=120 +target13.editor.height=700 +target13.editor.width=900 +target13.editor.x=734 +target13.editor.y=326 +target13.height=50 +target13.name=ExtraSides +target13.naviview.expanded=true +target13.showInterface=false +target13.type=ClassTarget +target13.typeParameters= +target13.width=90 +target13.x=500 +target13.y=250 +target14.editor.height=700 +target14.editor.width=900 +target14.editor.x=95 +target14.editor.y=100 +target14.height=50 +target14.name=Client +target14.naviview.expanded=true +target14.showInterface=false +target14.type=ClassTarget +target14.typeParameters= +target14.width=80 +target14.x=110 +target14.y=20 +target15.editor.height=700 +target15.editor.width=900 +target15.editor.x=0 +target15.editor.y=23 +target15.height=50 +target15.name=Component +target15.naviview.expanded=true +target15.showInterface=false +target15.type=InterfaceTarget +target15.typeParameters= +target15.width=100 +target15.x=370 +target15.y=20 +target16.editor.height=700 +target16.editor.width=900 +target16.editor.x=809 +target16.editor.y=314 +target16.height=50 +target16.name=PremiumToppings +target16.naviview.expanded=true +target16.showInterface=false +target16.type=ClassTarget +target16.typeParameters= +target16.width=140 +target16.x=210 +target16.y=390 +target2.editor.height=700 +target2.editor.width=900 +target2.editor.x=492 +target2.editor.y=167 +target2.height=50 +target2.name=PremiumCheese +target2.naviview.expanded=true +target2.showInterface=false +target2.type=ClassTarget +target2.typeParameters= +target2.width=120 +target2.x=150 +target2.y=320 +target3.editor.height=700 +target3.editor.width=900 +target3.editor.x=452 +target3.editor.y=158 +target3.height=50 +target3.name=Composite +target3.naviview.expanded=true +target3.showInterface=false +target3.type=ClassTarget +target3.typeParameters= +target3.width=90 +target3.x=480 +target3.y=100 +target4.editor.height=953 +target4.editor.width=1242 +target4.editor.x=610 +target4.editor.y=70 +target4.height=50 +target4.name=BuildOrder +target4.naviview.expanded=true +target4.showInterface=false +target4.type=ClassTarget +target4.typeParameters= +target4.width=90 +target4.x=230 +target4.y=20 +target5.editor.height=700 +target5.editor.width=900 +target5.editor.x=734 +target5.editor.y=326 +target5.height=50 +target5.name=UnlimitedToppings +target5.naviview.expanded=true +target5.showInterface=false +target5.type=ClassTarget +target5.typeParameters= +target5.width=140 +target5.x=360 +target5.y=390 +target6.editor.height=700 +target6.editor.width=900 +target6.editor.x=1020 +target6.editor.y=80 +target6.height=50 +target6.name=PriceDecorator +target6.naviview.expanded=true +target6.showInterface=false +target6.type=InterfaceTarget +target6.typeParameters= +target6.width=110 +target6.x=110 +target6.y=110 +target7.editor.height=700 +target7.editor.width=900 +target7.editor.x=540 +target7.editor.y=167 +target7.height=50 +target7.name=Cheese +target7.naviview.expanded=true +target7.showInterface=false +target7.type=ClassTarget +target7.typeParameters= +target7.width=80 +target7.x=130 +target7.y=250 +target8.editor.height=700 +target8.editor.width=900 +target8.editor.x=540 +target8.editor.y=166 +target8.height=50 +target8.name=LeafDecorator +target8.naviview.expanded=true +target8.showInterface=false +target8.type=AbstractTarget +target8.typeParameters= +target8.width=110 +target8.x=270 +target8.y=200 +target9.editor.height=700 +target9.editor.width=900 +target9.editor.x=944 +target9.editor.y=388 +target9.height=50 +target9.name=Burger +target9.naviview.expanded=true +target9.showInterface=false +target9.type=ClassTarget +target9.typeParameters= +target9.width=80 +target9.x=110 +target9.y=180 diff --git a/demos/demo4/counter-bluej/output-counter-bugger.png b/demos/demo8/counter-burger-updated-uml/output-counter-bugger-updated.png similarity index 100% rename from demos/demo4/counter-bluej/output-counter-bugger.png rename to demos/demo8/counter-burger-updated-uml/output-counter-bugger-updated.png diff --git a/demos/demo8/counter-burger-updated-uml/solution-counter-bugger-updated.asta b/demos/demo8/counter-burger-updated-uml/solution-counter-bugger-updated.asta new file mode 100644 index 0000000..fe76bbf Binary files /dev/null and b/demos/demo8/counter-burger-updated-uml/solution-counter-bugger-updated.asta differ diff --git a/demos/demo4/counter-bluej/counter-bugger-uml.png b/demos/demo8/counter-burger-updated-uml/solution-counter-bugger-updated.png similarity index 100% rename from demos/demo4/counter-bluej/counter-bugger-uml.png rename to demos/demo8/counter-burger-updated-uml/solution-counter-bugger-updated.png