author | Jaroslav Tulach <jtulach@netbeans.org> |
Sat, 14 Jun 2008 09:52:45 +0200 | |
changeset 52 | 4257f4cf226b |
permissions | -rw-r--r-- |
jtulach@52 | 1 |
/* |
jtulach@52 | 2 |
* Operation.java |
jtulach@52 | 3 |
* |
jtulach@52 | 4 |
* Created on July 12, 2006, 3:06 PM |
jtulach@52 | 5 |
* |
jtulach@52 | 6 |
* To change this template, choose Tools | Template Manager |
jtulach@52 | 7 |
* and open the template in the editor. |
jtulach@52 | 8 |
*/ |
jtulach@52 | 9 |
|
jtulach@52 | 10 |
package org.netbeans.apifest.boolcircuit; |
jtulach@52 | 11 |
|
jtulach@52 | 12 |
/** |
jtulach@52 | 13 |
* |
jtulach@52 | 14 |
*/ |
jtulach@52 | 15 |
public interface Operation { |
jtulach@52 | 16 |
public char evaluate (char i1, char i2) throws IllegalArgumentException; |
jtulach@52 | 17 |
public final static Operation OR = new Or (); |
jtulach@52 | 18 |
public final static Operation AND = new And (); |
jtulach@52 | 19 |
public final static Operation NEG = new Neg (); |
jtulach@52 | 20 |
|
jtulach@52 | 21 |
|
jtulach@52 | 22 |
static class And implements Operation { |
jtulach@52 | 23 |
public char evaluate(char i1, char i2) throws IllegalArgumentException { |
jtulach@52 | 24 |
if (i1 != '0' && i1 != '1') { |
jtulach@52 | 25 |
throw new IllegalArgumentException ("Invalid input parameter: " + i1); |
jtulach@52 | 26 |
} |
jtulach@52 | 27 |
if (i2 != '0' && i2 != '1') { |
jtulach@52 | 28 |
throw new IllegalArgumentException ("Invalid input parameter: " + i2); |
jtulach@52 | 29 |
} |
jtulach@52 | 30 |
return i1 == '1' && i2 == '1' ? '1' : '0'; |
jtulach@52 | 31 |
} |
jtulach@52 | 32 |
} |
jtulach@52 | 33 |
static class Or implements Operation { |
jtulach@52 | 34 |
public char evaluate(char i1, char i2) throws IllegalArgumentException { |
jtulach@52 | 35 |
if (i1 != '0' && i1 != '1') { |
jtulach@52 | 36 |
throw new IllegalArgumentException ("Invalid input parameter: " + i1); |
jtulach@52 | 37 |
} |
jtulach@52 | 38 |
if (i2 != '0' && i2 != '1') { |
jtulach@52 | 39 |
throw new IllegalArgumentException ("Invalid input parameter: " + i2); |
jtulach@52 | 40 |
} |
jtulach@52 | 41 |
return i1 == '1' || i2 == '1' ? '1' : '0'; |
jtulach@52 | 42 |
} |
jtulach@52 | 43 |
} |
jtulach@52 | 44 |
static class Neg implements Operation { |
jtulach@52 | 45 |
public char evaluate(char i1, char i2) throws IllegalArgumentException { |
jtulach@52 | 46 |
if (i1 != '0' && i1 != '1') { |
jtulach@52 | 47 |
throw new IllegalArgumentException ("Invalid input parameter: " + i1); |
jtulach@52 | 48 |
} |
jtulach@52 | 49 |
return i1 == '1' ? '0' : '1'; |
jtulach@52 | 50 |
} |
jtulach@52 | 51 |
} |
jtulach@52 | 52 |
} |
jtulach@52 | 53 |