From: adam Date: Mon, 26 Mar 2007 05:35:56 +0000 (-0400) Subject: remove edu.berkeley.sbp.bind X-Git-Tag: tag_for_25-Mar~28 X-Git-Url: http://git.megacz.com/?p=sbp.git;a=commitdiff_plain;h=61539aaf02d0537fd1df08b5d5bd03189992cf1e;ds=sidebyside remove edu.berkeley.sbp.bind darcs-hash:20070326053556-5007d-8682f88af90038e61f782f2c555db77aa067de78.gz --- diff --git a/src/edu/berkeley/sbp/bind/Bindable.java b/src/edu/berkeley/sbp/bind/Bindable.java deleted file mode 100644 index a51996e..0000000 --- a/src/edu/berkeley/sbp/bind/Bindable.java +++ /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 getAnnotation(Class c); - public abstract Object impose(Object[] fields); - public boolean isAnnotationPresent(Class 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 getAnnotation(final Class 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 getAnnotation(Class 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 getAnnotation(Class 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, ToJava { -} - diff --git a/src/edu/berkeley/sbp/bind/BindingFunctor.java b/src/edu/berkeley/sbp/bind/BindingFunctor.java deleted file mode 100644 index 0880e57..0000000 --- a/src/edu/berkeley/sbp/bind/BindingFunctor.java +++ /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 implements TreeFunctor, 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> t) { - ArrayList ret = new ArrayList(); - for(Tree tc : t) { - if (tc.head() != null && tc.head() instanceof Functor) - ret.add(((TreeFunctor)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 index 2a7cdbe..0000000 --- a/src/edu/berkeley/sbp/bind/RawBindingFunctor.java +++ /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 implements TreeFunctor, 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> 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 index 57a61a9..0000000 --- a/src/edu/berkeley/sbp/bind/TreeFunctor.java +++ /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 extends Functor>, R> { -} diff --git a/src/edu/berkeley/sbp/bind/bind.java b/src/edu/berkeley/sbp/bind/bind.java deleted file mode 100644 index 1aed596..0000000 --- a/src/edu/berkeley/sbp/bind/bind.java +++ /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 ""; } -}