\CodePro Analytix Evaluation\src\com\instantiations\example\money\Money.java
Violations: 0 high, 1 medium, 0 low
 
Violations
medium Missing identity check
 
Source
1 package com.instantiations.example.money;
2
3 /**
4  * A simple Money.
5  */
6 public class Money implements IMoney {
7
8    private int fAmount;
9    private String fCurrency;
10
11    /**
12     * Constructs a money from the given amount and currency.
13     */
14    public Money(int amount, String currency) {
15       fAmount= amount;
16       fCurrency= currency;
17    }
18    /**
19     * Adds a money to this money. Forwards the request to the addMoney helper.
20     */
21    public IMoney add(IMoney m) {
22       return m.addMoney(this);
23    }
24    public IMoney addMoney(Money m) {
25       if (m.currency().equals(currency()) )
26          return new Money(amount()+m.amount(), currency());
27       return MoneyBag.create(this, m);
28    }
29    public IMoney addMoneyBag(MoneyBag s) {
30       return s.addMoney(this);
31    }
32    public int amount() {
33       return fAmount;
34    }
35    public String currency() {
36       return fCurrency;
37    }
38 medium    public boolean equals(Object anObject) {
39       if (isZero()) 
40          if (anObject instanceof IMoney)
41             return ((IMoney)anObject).isZero();
42       if (anObject instanceof Money) {
43          Money aMoney= (Money)anObject;
44          return aMoney.currency().equals(currency())
45                       && amount() == aMoney.amount();
46       }
47       return false;
48    }
49    public int hashCode() {
50       return fCurrency.hashCode()+fAmount;
51    }
52    public boolean isZero() {
53       return amount() == 0;
54    }
55    public IMoney multiply(int factor) {
56       return new Money(amount()*factor, currency());
57    }
58    public IMoney negate() {
59       return new Money(-amount(), currency());
60    }
61    public IMoney subtract(IMoney m) {
62       return add(m.negate());
63    }
64    public String toString() {
65       StringBuffer buffer = new StringBuffer();
66       buffer.append("["+amount()+" "+currency()+"]");
67       return buffer.toString();
68    }
69    public /*this makes no sense*/ void appendTo(MoneyBag m) {
70       m.appendMoney(this);
71    }
72 }
Powered by CodePro AnalytiX