a7c670f452272edfca2bdf320709ab15917e1b29
[sbp.git] / src / edu / berkeley / sbp / bind / RawBindingFunctor.java
1 package edu.berkeley.sbp.bind;
2 import edu.berkeley.sbp.*;
3 import edu.berkeley.sbp.util.*;
4 import edu.berkeley.sbp.bind.*;
5 import java.io.*;
6 import java.util.*;
7 import java.lang.reflect.*;
8
9 public class RawBindingFunctor<T> implements Tree.TreeFunctor<T,Object>, ToJava {
10     private Binding _binding;
11     private String _toString;
12     public RawBindingFunctor(String toString, Binding binding) {
13         this._binding = binding;
14         this._toString = toString;
15     }
16     public String toString() {
17         return _toString;
18     }
19     public void toJava(StringBuffer sb) {
20         sb.append("new RawBindingFunctor(");
21         sb.append("\"");
22         sb.append(StringUtil.toJavaString(_toString));
23         sb.append("\", ");
24         _binding.toJava(sb);
25         sb.append(")");
26     }
27     public Object invoke(Iterable<Tree<T>> t) {
28         return _binding.invoke(new Object[] { t });           
29     }
30 }