samples/apifest1/day1/stackbasedsolution/src/org/netbeans/apifest/boolcircuit/CircuitFactory.java
Adding samples from API fest to the repository, including pieces of their code in the document, not just links
4 * Created on July 12, 2006, 3:01 PM
6 * To change this template, choose Tools | Template Manager
7 * and open the template in the editor.
10 package org.netbeans.apifest.boolcircuit;
12 import java.util.Stack;
17 public class CircuitFactory {
19 /** Creates a new instance of CircuitFactory */
20 private CircuitFactory() {
23 public final static Circuit join (final Circuit c1, final Circuit c2, final Operation op) {
24 return new Circuit () {
25 public char evaluate(Stack input) throws IllegalArgumentException {
26 return op.evaluate(c1.evaluate(input), c2.evaluate(input));
31 public final static Circuit getBasicCircuit (final Operation op) {
32 return new Circuit () {
33 public char evaluate(Stack<Character> input) throws IllegalArgumentException {
34 // special handling of unary oparation
35 if (op instanceof Operation.Neg) {
36 return op.evaluate(input.pop(), input.peek());
38 return op.evaluate(input.pop(), input.pop());
43 public final static Circuit getTrivialCircuit () {
44 return new Circuit () {
45 public char evaluate(Stack<Character> input) throws IllegalArgumentException {