marți, 5 iunie 2012

Shopping

package pack;

import java.util.ArrayList;

import java.util.List;



public class Inventory {

      private List<Item> _items = new ArrayList<Item>();



      public void addItem(Item item) {

            _items.add(item);

      }



      public void removeItem(Item item) {

            _items.remove(item);

      }
}


...............................
package pack;

import java.util.logging.*;



public class Item {

    

            private static Logger _logger = Logger.getLogger("cart");

    

      private String _id;



      private float _price;



      public Item(String id, float price) {

            _id = id;

            _price = price;

      }



      public String getID() {

                        _logger.logp(Level.INFO, "Item", "getID", "Entering");

            return _id;

      }



      public float getPrice() {

                        _logger.logp(Level.INFO, "Item", "getPrice", "Entering");

            return _price;

      }



      public String toString() {

                        _logger.logp(Level.INFO, "Item", "toString", "Entering");

            return "Item: " + _id;

      }

}

............................
package pack;

import java.util.*;



public class ShoppingCart {

      private List<Item> _items = new ArrayList<Item>();



      public void addItem(Item item) {

            _items.add(item);

      }



      public void removeItem(Item item) {

            _items.remove(item);

      }



      public void empty() {

            _items.clear();

      }



      public float totalValue() {

            // unimplemented... free!

            return 0;

      }

}


..................................
package pack;

public class ShoppingCartOperator {

    public static void addShoppingCartItem(ShoppingCart sc,

                Inventory inventory, Item item) {

          inventory.removeItem(item);

          sc.addItem(item);

    }



    public static void removeShoppingCartItem(ShoppingCart sc,

                Inventory inventory, Item item) {

          sc.removeItem(item);

          inventory.addItem(item);

    }

}


.............................
package pack;

public class Test {

    

    public static void main(String[] args) {

          Inventory inventory = new Inventory();

          Item item1 = new Item("1", 30);

          Item item2 = new Item("2", 31);

          Item item3 = new Item("3", 32);

          inventory.addItem(item1);

          inventory.addItem(item2);

          inventory.addItem(item3);

          ShoppingCart sc = new ShoppingCart();

          ShoppingCartOperator.addShoppingCartItem(sc, inventory, item1);

          ShoppingCartOperator.addShoppingCartItem(sc, inventory, item2);

    }

}

.............................
package pack;

import org.aspectj.lang.*;

import java.util.logging.*;



public aspect TraceAspect {

      private Logger _logger = Logger.getLogger("trace");



      pointcut traceMethods()

      : (execution(* *.*(..)) || execution(*.new(..)))

            && !within(TraceAspect);




      before() : traceMethods() && !execution(String *.toString()) {

          Signature sig = thisJoinPointStaticPart.getSignature();

          _logger.logp(Level.INFO, sig.getDeclaringType().getName(), sig

                      .getName(), createParameterMessage(thisJoinPoint));

    }



    private String createParameterMessage(JoinPoint joinPoint) {

          StringBuffer paramBuffer = new StringBuffer("\n\t[This: ");

          paramBuffer.append(joinPoint.getThis());

          Object[] arguments = joinPoint.getArgs();

          paramBuffer.append("]\n\t[Args: (");

          for (int length = arguments.length, i = 0; i < length; ++i) {

                Object argument = arguments[i];

                paramBuffer.append(argument);

                if (i != length - 1) {

                      paramBuffer.append(',');

                }

          }

          paramBuffer.append(")]");

          return paramBuffer.toString();

    }


}

Niciun comentariu:

Trimiteți un comentariu