remove edu.berkeley.sbp.bind
authoradam <adam@megacz.com>
Mon, 26 Mar 2007 05:35:56 +0000 (01:35 -0400)
committeradam <adam@megacz.com>
Mon, 26 Mar 2007 05:35:56 +0000 (01:35 -0400)
darcs-hash:20070326053556-5007d-8682f88af90038e61f782f2c555db77aa067de78.gz

src/edu/berkeley/sbp/bind/Bindable.java [deleted file]
src/edu/berkeley/sbp/bind/Binding.java [deleted file]
src/edu/berkeley/sbp/bind/BindingFunctor.java [deleted file]
src/edu/berkeley/sbp/bind/RawBindingFunctor.java [deleted file]
src/edu/berkeley/sbp/bind/TreeFunctor.java [deleted file]
src/edu/berkeley/sbp/bind/bind.java [deleted file]

diff --git a/src/edu/berkeley/sbp/bind/Bindable.java b/src/edu/berkeley/sbp/bind/Bindable.java
deleted file mode 100644 (file)
index a51996e..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-// Copyright 2006 all rights reserved; see LICENSE file for BSD-style license
-
-package edu.berkeley.sbp.bind;
-
-import edu.berkeley.sbp.util.*;
-import edu.berkeley.sbp.*;
-import edu.berkeley.sbp.chr.*;
-import edu.berkeley.sbp.bind.*;
-import java.util.*;
-import java.lang.annotation.*;
-import java.lang.reflect.*;
-import java.io.*;
-import java.security.*;
-import static edu.berkeley.sbp.util.Reflection.*;
-
-public abstract class Bindable implements ToJava {
-
-    public abstract String getSimpleName();
-    public abstract String toString();
-    public abstract <A extends Annotation> A getAnnotation(Class<A> c);
-    public abstract Object impose(Object[] fields);
-    public boolean isAnnotationPresent(Class<? extends Annotation> c) { return getAnnotation(c) != null; }
-
-    public abstract Annotation[][] getArgAnnotations();
-    public abstract String[]       getArgNames();
-    public abstract Class[]        getArgTypes();
-
-    public Binding createBinding() { return new SimpleBinding(); }
-    public Binding createBinding(final int[] map) { return new SimpleBinding(map); }
-    public Binding createBinding(final int[] map, Object prepend) { return new SimpleBinding(map, prepend); }
-
-
-    public static Bindable create(Object o) {
-        if (o instanceof Class) return new BindableClass((Class)o);
-        if (o instanceof Method) return new BindableMethod((Method)o);
-        if (o instanceof Constructor) return new BindableConstructor((Constructor)o);
-        return null;
-    }
-
-    // Subclasses //////////////////////////////////////////////////////////////////////////////
-
-    private static class BindableMethod extends Bindable {
-        private final Method _method;
-        public String toString() { return "BindableMethod["+_method+"]"; }
-        public BindableMethod(Method _method) { this._method = _method; }
-        public String getSimpleName() { return _method.getName(); }
-        public <A extends Annotation> A getAnnotation(final Class<A> c) { return _method.getAnnotation(c); }
-        public Object impose(Object[] fields) { return Reflection.impose(_method, fields); }
-        public Annotation[][] getArgAnnotations() { return _method.getParameterAnnotations(); }
-        public String[]       getArgNames() { return new String[_method.getParameterTypes().length]; }
-        public Class[]        getArgTypes() { return _method.getParameterTypes(); }
-        public void toJava(StringBuffer sb) {
-            sb.append("Bindable.create(");
-            sb.append(_method.getDeclaringClass().getName().replace('$','.'));
-            sb.append(".class.getMethod(\"");
-            sb.append(_method.getName());
-            sb.append("\", ");
-            appendClassArray(sb, _method.getParameterTypes());
-            sb.append("))");
-        }
-    }
-
-    private static class BindableConstructor extends Bindable {
-        private final Constructor _constructor;
-        public String toString() { return "BindableConstructor["+_constructor+"]"; }
-        public BindableConstructor(Constructor _constructor) { this._constructor = _constructor; }
-        public String getSimpleName() { return _constructor.getDeclaringClass().getSimpleName(); }
-        public <A extends Annotation> A getAnnotation(Class<A> c) { return _constructor.getAnnotation(c); }
-        public Object impose(Object[] fields) { return Reflection.impose(_constructor, fields); }
-        public Annotation[][] getArgAnnotations() { return _constructor.getParameterAnnotations(); }
-        public String[]       getArgNames() { return new String[_constructor.getParameterTypes().length]; }
-        public Class[]        getArgTypes() { return _constructor.getParameterTypes(); }
-        public void toJava(StringBuffer sb) {
-            sb.append("Bindable.create(");
-            sb.append(_constructor.getDeclaringClass().getName().replace('$','.'));
-            sb.append(".class.getConstructor(");
-            appendClassArray(sb, _constructor.getParameterTypes());
-            sb.append("))");
-        }
-    }
-
-    private static class BindableClass extends Bindable {
-        private final Class _class;
-        public String toString() { return "BindableClass["+_class+"]"; }
-        public BindableClass(Class _class) { this._class = _class; }
-        public String getSimpleName() { return _class.getSimpleName(); }
-        public <A extends Annotation> A getAnnotation(Class<A> c) { return (A)_class.getAnnotation(c); }
-        public Object impose(Object[] fields) { return Reflection.impose(_class, fields); }
-        public Annotation[][] getArgAnnotations() {
-            Field[] fields = _class.getFields();
-            Annotation[][] ret = new Annotation[fields.length][];
-            for(int i=0; i<fields.length; i++)
-                ret[i] = fields[i].getAnnotations();
-            return ret;
-        }
-        public String[]       getArgNames() {
-            Field[] fields = _class.getFields();
-            String[] ret = new String[fields.length];
-            for(int i=0; i<fields.length; i++)
-                ret[i] = fields[i].getName();
-            return ret;
-        }
-        public Class[]       getArgTypes() {
-            Field[] fields = _class.getFields();
-            Class[] ret = new Class[fields.length];
-            for(int i=0; i<fields.length; i++)
-                ret[i] = fields[i].getType();
-            return ret;
-        }
-        public void toJava(StringBuffer sb) {
-            sb.append("Bindable.create(");
-            sb.append(_class.getName().replace('$','.'));
-            sb.append(".class)");
-        }
-    }
-
-
-    // Helpers //////////////////////////////////////////////////////////////////////////////
-
-    private static void appendClassArray(StringBuffer sb, Class[] c) {
-        sb.append("new Class[] {");
-        for(int i=0; i<c.length; i++) {
-            sb.append(makeClass(c[i]));
-            sb.append(".class");
-            if (i<c.length-1)
-                sb.append(",");
-        }
-        sb.append("}");
-    }
-
-    private static String makeClass(Class c) {
-        if (!c.isArray()) return c.getName().replace('$','.');
-        return makeClass(c.getComponentType())+"[]";
-    }
-
-
-    // Creating Bindings //////////////////////////////////////////////////////////////////////////////
-
-    private class SimpleBinding implements Binding, ToJava {
-        private int[] map = null;
-        private Object prepend = null;
-        public SimpleBinding() { }
-        public SimpleBinding(int[] map) { this.map = map; }
-        public SimpleBinding(int[] map, Object prepend) { this.map = map; this.prepend = prepend; }
-
-        public Object invoke(Object[] o) {
-            if (map==null) return impose(o);
-            int max = 0;
-            for(int i=0; i<map.length; i++) max = Math.max(map[i], max);
-            Object[] o2 = new Object[max+1];
-            for(int i=0; i<o.length; i++) o2[map[i]+(prepend==null?0:1)] = o[i];
-            if (prepend != null) o2[0] = prepend;
-            return impose(o2);
-        }
-
-        public void toJava(StringBuffer sb) {
-            Bindable.this.toJava(sb);
-            sb.append(".createBinding(");
-            if (map != null) {
-                sb.append("new int[] {");
-                for(int i=0; i<map.length; i++) {
-                    sb.append(i);
-                    if (i<map.length-1) sb.append(",");
-                }
-                sb.append("}");
-            }
-            sb.append(")");
-        }
-    }
-
-}
diff --git a/src/edu/berkeley/sbp/bind/Binding.java b/src/edu/berkeley/sbp/bind/Binding.java
deleted file mode 100644 (file)
index bbff124..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2006 all rights reserved; see LICENSE file for BSD-style license
-
-package edu.berkeley.sbp.bind;
-
-import edu.berkeley.sbp.util.*;
-import edu.berkeley.sbp.*;
-import edu.berkeley.sbp.chr.*;
-import edu.berkeley.sbp.bind.*;
-import java.util.*;
-import java.lang.annotation.*;
-import java.lang.reflect.*;
-import java.io.*;
-import static edu.berkeley.sbp.util.Reflection.*;
-
-public interface Binding extends Functor<Object[], Object>, ToJava {
-}
-
diff --git a/src/edu/berkeley/sbp/bind/BindingFunctor.java b/src/edu/berkeley/sbp/bind/BindingFunctor.java
deleted file mode 100644 (file)
index 0880e57..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2006 all rights reserved; see LICENSE file for BSD-style license
-
-package edu.berkeley.sbp.bind;
-import edu.berkeley.sbp.*;
-import edu.berkeley.sbp.util.*;
-import edu.berkeley.sbp.bind.*;
-import java.io.*;
-import java.util.*;
-import java.lang.reflect.*;
-
-public class BindingFunctor<T> implements TreeFunctor<T,Object>, ToJava {
-    private Binding _binding;
-    private String _toString;
-    public String toString() {
-        return _toString;
-    }
-    public BindingFunctor(String toString, Binding binding) {
-        this._binding = binding;
-        this._toString = toString;
-    }
-    public void toJava(StringBuffer sb) {
-        sb.append("new BindingFunctor(");
-        sb.append("\"");
-        sb.append(StringUtil.toJavaString(_toString));
-        sb.append("\", ");
-        _binding.toJava(sb);
-        sb.append(")");
-    }
-    public Object invoke(Iterable<Tree<T>> t) {
-        ArrayList ret = new ArrayList();
-        for(Tree tc : t) {
-            if (tc.head() != null && tc.head() instanceof Functor)
-                ret.add(((TreeFunctor<Object,Object>)tc.head()).invoke(tc.children()));
-            else if (tc.size() == 0)
-                ret.add(tc.head());
-            else {
-                System.err.println("FIXME: don't know what to do about " + tc);
-                ret.add(null);
-            }
-        }
-        Object[] o = (Object[])ret.toArray(new Object[0]);
-        return _binding.invoke(o);
-    }
-}
diff --git a/src/edu/berkeley/sbp/bind/RawBindingFunctor.java b/src/edu/berkeley/sbp/bind/RawBindingFunctor.java
deleted file mode 100644 (file)
index 2a7cdbe..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright 2006 all rights reserved; see LICENSE file for BSD-style license
-
-package edu.berkeley.sbp.bind;
-import edu.berkeley.sbp.*;
-import edu.berkeley.sbp.util.*;
-import edu.berkeley.sbp.bind.*;
-import java.io.*;
-import java.util.*;
-import java.lang.reflect.*;
-
-public class RawBindingFunctor<T> implements TreeFunctor<T,Object>, ToJava {
-    private Binding _binding;
-    private String _toString;
-    public RawBindingFunctor(String toString, Binding binding) {
-        this._binding = binding;
-        this._toString = toString;
-    }
-    public String toString() {
-        return _toString;
-    }
-    public void toJava(StringBuffer sb) {
-        sb.append("new RawBindingFunctor(");
-        sb.append("\"");
-        sb.append(StringUtil.toJavaString(_toString));
-        sb.append("\", ");
-        _binding.toJava(sb);
-        sb.append(")");
-    }
-    public Object invoke(Iterable<Tree<T>> t) {
-        return _binding.invoke(new Object[] { t });           
-    }
-}
diff --git a/src/edu/berkeley/sbp/bind/TreeFunctor.java b/src/edu/berkeley/sbp/bind/TreeFunctor.java
deleted file mode 100644 (file)
index 57a61a9..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2006 all rights reserved; see LICENSE file for BSD-style license
-
-package edu.berkeley.sbp.bind;
-import edu.berkeley.sbp.*;
-import edu.berkeley.sbp.util.*;
-import edu.berkeley.sbp.bind.*;
-import java.io.*;
-import java.util.*;
-import java.lang.reflect.*;
-
-public interface TreeFunctor<T,R> extends Functor<Iterable<Tree<T>>, R> {
-}
diff --git a/src/edu/berkeley/sbp/bind/bind.java b/src/edu/berkeley/sbp/bind/bind.java
deleted file mode 100644 (file)
index 1aed596..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2006 all rights reserved; see LICENSE file for BSD-style license
-
-package edu.berkeley.sbp.bind;
-
-import edu.berkeley.sbp.util.*;
-import edu.berkeley.sbp.*;
-import edu.berkeley.sbp.chr.*;
-import edu.berkeley.sbp.bind.*;
-import java.util.*;
-import java.lang.annotation.*;
-import java.lang.reflect.*;
-import java.io.*;
-
-@Retention(RetentionPolicy.RUNTIME)
-public @interface bind {    
-
-    @Retention(RetentionPolicy.RUNTIME)
-        public static @interface raw { }
-
-    @Retention(RetentionPolicy.RUNTIME)
-        public static @interface as         { String value() default ""; }
-
-    @Retention(RetentionPolicy.RUNTIME)
-        public static @interface arg         { String value() default ""; }
-}