groovy-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sun...@apache.org
Subject [15/49] groovy git commit: Move source files to proper packages
Date Wed, 20 Dec 2017 03:47:25 GMT
http://git-wip-us.apache.org/repos/asf/groovy/blob/d638ca43/src/main/groovy/lang/MetaClassRegistry.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/MetaClassRegistry.java b/src/main/groovy/lang/MetaClassRegistry.java
deleted file mode 100644
index f13c1c1..0000000
--- a/src/main/groovy/lang/MetaClassRegistry.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package groovy.lang;
-
-import org.codehaus.groovy.runtime.GeneratedClosure;
-import org.codehaus.groovy.runtime.metaclass.ClosureMetaClass;
-
-import java.lang.reflect.Constructor;
-import java.util.Iterator;
-
-/**
- * A MetaClassRegistry is an object that is responsible for managing the a cache of MetaClass instances. Each
- * java.lang.Class instance has an associated MetaClass and client code can query this interface for the MetaClass for
- * a given associated java.lang.Class
- *
- * @see groovy.lang.MetaClass
- *
- * @author John Wilson
- * @author Graeme Rocher
- * @author <a href="mailto:blackdrag@gmx.org">Jochen Theodorou</a>
- *
- */
-public interface MetaClassRegistry {
-    
-    /**
-     * The main function of the registry
-     * If a meta class exists then return it
-     * otherwise create one, put it in the registry and return it
-     */
-    MetaClass getMetaClass(Class theClass);
-    
-    /**
-     * Adds a metaclass to the registry for the given class
-     *
-     * @param theClass The class
-     * @param theMetaClass The MetaClass for theClass
-     */
-    void setMetaClass(Class theClass, MetaClass theMetaClass);
-
-    /**
-     * Removes a cached MetaClass from the registry
-     *
-     * @param theClass The Java class of the MetaClass to remove
-     */
-    void removeMetaClass(Class theClass);
-
-    /**
-     * Retrieves the MetaClassCreationHandle that is responsible for constructing MetaClass instances
-     *
-     * @return The MetaClassCreationHandle instance
-     */
-    MetaClassCreationHandle getMetaClassCreationHandler();
-
-    /**
-     * Sets the MetaClassCreationHandle instance that is responsible for constructing instances
-     *
-     * @param handle The handle instance
-     */
-    void setMetaClassCreationHandle(MetaClassCreationHandle handle);
-
-    /**
-     * Adds a meta class change listener for constant meta classes
-     *
-     * @param listener - the update listener
-     */
-    void addMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener);
-    
-    /**
-     * Adds a meta class change listener for constant meta classes. 
-     * This listener cannot be removed!
-     *
-     * @param listener - the update listener
-     */
-    void addNonRemovableMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener);
-
-    /**
-     * Removes a meta class change listener for constant meta classes
-     *
-     * @param listener - the update listener
-     */
-    void removeMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener);
-
-    /**
-     * Returns all registered class change listener for constant meta classes.
-     *
-     * @return an array containing all change listener
-     */
-    MetaClassRegistryChangeEventListener[] getMetaClassRegistryChangeEventListeners();
-
-    /**
-     * Gets a snapshot of the current constant meta classes and returns it as Iterator.
-     * Modifications done using this Iterator will not cause a ConcurrentModificationException.
-     * If a MetaClass is removed using this Iterator, then the MetaClass will only
-     * be removed if the MetaClass was not replaced by another MetaClass in the meantime.
-     * If a MetaClass is added while using this Iterator, then it will be part of the Iteration.
-     * If a MetaClass replaces another constant meta class, then the Iteration might show two
-     * meta classes for the same class.
-     * <p>
-     * Note: This Iterator may not used with multiple threads.
-     *
-     * @return Iterator for the constant meta classes
-     */
-    Iterator iterator();    
-    
-    /**
-     * Class used as base for the creation of MetaClass implementations.
-     * The Class defaults to MetaClassImpl, if the class loading fails to
-     * find a special meta class. The name for such a meta class would be
-     * the class name it is created for with the prefix
-     * "groovy.runtime.metaclass." By replacing the handle in the registry
-     * you can have any control over the creation of what MetaClass is used
-     * for a class that you want to have. 
-     * WARNING: experimental code, likely to change soon
-     * @author Jochen Theodorou
-     */
-    class MetaClassCreationHandle {
-        private boolean disableCustomMetaClassLookup;
-         
-        /**
-         * Creates a metaclass implementation for theClass.
-         * @param theClass The class to create a metaclass for
-         * @param registry The metaclass registry the metaclass we be registered in.
-         */
-        public final MetaClass create(Class theClass, MetaClassRegistry registry) {
-           if (disableCustomMetaClassLookup)
-               return createNormalMetaClass(theClass, registry);
-
-            return createWithCustomLookup(theClass, registry);
-        }
-
-        private MetaClass createWithCustomLookup(Class theClass, MetaClassRegistry registry) {
-            try {
-                final Class customMetaClass = Class.forName("groovy.runtime.metaclass." + theClass.getName() + "MetaClass");
-                if (DelegatingMetaClass.class.isAssignableFrom(customMetaClass)) {
-                    final Constructor customMetaClassConstructor = customMetaClass.getConstructor(MetaClass.class);
-                    MetaClass normalMetaClass = createNormalMetaClass(theClass, registry);
-                    return (MetaClass)customMetaClassConstructor.newInstance(normalMetaClass);
-                }
-                else {
-                    final Constructor customMetaClassConstructor = customMetaClass.getConstructor(MetaClassRegistry.class, Class.class);
-                    return (MetaClass)customMetaClassConstructor.newInstance(registry, theClass);
-                }
-            }
-            catch (final ClassNotFoundException e) {
-                return createNormalMetaClass(theClass, registry);
-            } catch (final Exception e) {
-                throw new GroovyRuntimeException("Could not instantiate custom Metaclass for class: " + theClass.getName() + ". Reason: " + e, e);
-            }
-        }
-
-        protected MetaClass createNormalMetaClass(Class theClass,MetaClassRegistry registry) {
-            if (GeneratedClosure.class.isAssignableFrom(theClass)) {
-                return new ClosureMetaClass(registry,theClass);
-            } else {
-                return new MetaClassImpl(registry, theClass);
-            }
-        }
-
-        /**
-         * Returns whether custom meta classes are disabled.
-         */
-        public boolean isDisableCustomMetaClassLookup() {
-            return disableCustomMetaClassLookup;
-        }
-
-        /**
-         * Set flag saying to disable lookup of custom meta classes
-         * It's enough to call this method only once in your application for handle which was set in to registry
-         * as every new handle will inherit this property
-         * @param disableCustomMetaClassLookup flag saying to disable lookup of custom meta classes
-         */
-        public void setDisableCustomMetaClassLookup(boolean disableCustomMetaClassLookup) {
-            this.disableCustomMetaClassLookup = disableCustomMetaClassLookup;
-        }
-    }
- }

http://git-wip-us.apache.org/repos/asf/groovy/blob/d638ca43/src/main/groovy/lang/MetaClassRegistryChangeEvent.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/MetaClassRegistryChangeEvent.java b/src/main/groovy/lang/MetaClassRegistryChangeEvent.java
deleted file mode 100644
index c882fda..0000000
--- a/src/main/groovy/lang/MetaClassRegistryChangeEvent.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package groovy.lang;
-
-import java.util.EventObject;
-
-/**
- * An event used to propagate meta class updates
- *
- * @author <a href="mailto:blackdrag@gmx.org">Jochen Theodorou</a>
- */
-public class MetaClassRegistryChangeEvent extends EventObject {
-    private final Class clazz;
-    private final Object instance;
-    private final MetaClass metaClass;
-    private final MetaClass oldMetaClass;
-
-    /**
-     *Constructs a new MetaClassRegistryChangeEvent Object
-     *
-     * @param source The object the the event originates at.
-     * @param instance Object instance  the MetaClass change is on.
-     * @param clazz  The class that is affected by the registry change
-     * @param oldMetaClass The old MetaClass
-     * @param newMetaClass The new MetaClass
-     */
-    public MetaClassRegistryChangeEvent(Object source, Object instance, Class clazz, MetaClass oldMetaClass, MetaClass newMetaClass) {
-        super(source);
-        this.clazz = clazz;
-        this.metaClass = newMetaClass;
-        this.oldMetaClass = oldMetaClass;
-        this.instance = instance;
-    }
-
-    /**
-     * Get the class that is updated.
-     *
-     *@return The updated class
-     */
-    public Class getClassToUpdate() {
-        return clazz;
-    }
-
-    /**
-     * Get the new MetaClass
-     *
-     * @return The new MetaClass
-     */
-    public MetaClass getNewMetaClass() {
-        return metaClass;
-    }
-
-    /**
-     * Get the old MetaClass
-     *
-     * @return The old MetaClass
-     */
-    public MetaClass getOldMetaClass() {
-        return oldMetaClass;
-    }
-
-    /**
-     * Determines if this event is for a change for a single instance or all instances of the Class.
-     *
-     * @return whether this event is for a single instance
-     */
-    public boolean isPerInstanceMetaClassChange() {
-        return instance!=null;
-    }
-
-    /**
-     * Returns the instance this event is for.
-     *
-     * @return the instance or null if this event is for a change for all instances of a class
-     */
-    public Object getInstance() {
-        return instance;
-    }
-
-    /**
-     * Get the MetaClassRegistry that originates this change
-     *
-     * @return the source MetaClassRegistry
-     */
-    public MetaClassRegistry getRegistry() {
-        return (MetaClassRegistry) source;
-    }
-}

http://git-wip-us.apache.org/repos/asf/groovy/blob/d638ca43/src/main/groovy/lang/MetaClassRegistryChangeEventListener.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/MetaClassRegistryChangeEventListener.java b/src/main/groovy/lang/MetaClassRegistryChangeEventListener.java
deleted file mode 100644
index e7fd40c..0000000
--- a/src/main/groovy/lang/MetaClassRegistryChangeEventListener.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package groovy.lang;
-
-import java.util.EventListener;
-
-/**
- * A listener called whenever a constant MetaClass is set, removed or replaced. 
- *
- * @see groovy.lang.MetaClassRegistry
- * @see groovy.lang.MetaClassRegistryChangeEvent
- *
- * @author <a href="mailto:blackdrag@gmx.org">Jochen Theodorou</a>
-  *
- */
-public interface MetaClassRegistryChangeEventListener extends EventListener{
-
-    /**
-     * Called when the a constant MetaClass is updated. If the new MetaClass is null, then the MetaClass
-     * is removed. Be careful, while this method is executed other updates may happen. If you want this
-     * method thread safe, you have to take care of that by yourself.
-     *
-     * @param cmcu - the change event
-     */
-    void updateConstantMetaClass(MetaClassRegistryChangeEvent cmcu);
-}

http://git-wip-us.apache.org/repos/asf/groovy/blob/d638ca43/src/main/groovy/lang/MetaExpandoProperty.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/MetaExpandoProperty.java b/src/main/groovy/lang/MetaExpandoProperty.java
deleted file mode 100644
index 6eb2cf7..0000000
--- a/src/main/groovy/lang/MetaExpandoProperty.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package groovy.lang;
-
-import java.util.Map.Entry;
-
-/**
- * Represents a property in an Expando object
- *
- * @author John Stump
- */
-public class MetaExpandoProperty extends MetaProperty {
-
-    Object value = null;
-
-    public MetaExpandoProperty(Entry entry) {
-        super((String) entry.getKey(), Object.class);
-
-        value = entry.getValue();
-    }
-
-    /**
-     * @return the property of the given object
-     * @throws Exception if the property could not be evaluated
-     */
-    public Object getProperty(Object object) {
-        return value;
-    }
-
-    /**
-     * Sets the property on the given object to the new value
-     *
-     * @param object   on which to set the property
-     * @param newValue the new value of the property
-     */
-    public void setProperty(Object object, Object newValue) {
-        value = newValue;
-    }
-}

http://git-wip-us.apache.org/repos/asf/groovy/blob/d638ca43/src/main/groovy/lang/MetaMethod.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/MetaMethod.java b/src/main/groovy/lang/MetaMethod.java
deleted file mode 100644
index 3051675..0000000
--- a/src/main/groovy/lang/MetaMethod.java
+++ /dev/null
@@ -1,330 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package groovy.lang;
-
-import org.codehaus.groovy.classgen.asm.BytecodeHelper;
-import org.codehaus.groovy.reflection.CachedClass;
-import org.codehaus.groovy.reflection.ParameterTypes;
-import org.codehaus.groovy.runtime.InvokerHelper;
-import org.codehaus.groovy.runtime.MetaClassHelper;
-
-import java.lang.reflect.Modifier;
-
-/**
- * Represents a Method on a Java object a little like {@link java.lang.reflect.Method}
- * except without using reflection to invoke the method
- *
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
- * @author Alex Tkachman
- */
-public abstract class MetaMethod extends ParameterTypes implements Cloneable {
-    private String signature;
-    private String mopName;
-
-    /**
-     * Constructor for a metamethod with an empty parameter list
-     */
-    public MetaMethod() {
-    }
-
-    /**
-     *Constructor wit a list of parameter classes
-     *
-     * @param pt A list of parameters types
-     */
-    public MetaMethod(Class [] pt) {
-        super (pt);
-    }
-
-    /**
-     *Returns the modifiers for this method
-     *
-     * @return modifiers as an int.
-     */
-    public abstract int getModifiers();
-
-    /**
-     * Returns the name of the method represented by this class
-     * 
-     * @return name of this method
-     */
-    public abstract String getName();
-
-    /**
-     * Access the return type for this method
-     *
-     *@return the return type of this method
-     */
-    public abstract Class getReturnType();
-
-    /**
-     * Gets the class where this method is declared
-     *
-     * @return class of this method
-     */
-    public abstract CachedClass getDeclaringClass();
-
-    /**
-     * Invoke this method
-     *
-     * @param object The object this method should be invoked on
-     * @param arguments The arguments for the method if applicable
-     * @return The return value of the invocation
-     */
-    public abstract Object invoke(Object object, Object[] arguments);
-
-    /**
-     * Checks that the given parameters are valid to call this method
-     *
-     * @param arguments the arguments to check
-     * @throws IllegalArgumentException if the parameters are not valid
-     */
-    public void checkParameters(Class[] arguments) {
-        // lets check that the argument types are valid
-        if (!isValidMethod(arguments)) {
-            throw new IllegalArgumentException(
-                    "Parameters to method: "
-                    + getName()
-                    + " do not match types: "
-                    + InvokerHelper.toString(getParameterTypes())
-                    + " for arguments: "
-                    + InvokerHelper.toString(arguments));
-        }
-    }
-
-    /**
-     *Returns true if this this metamethod represents the same method as the argument.
-     *
-     * @param method A metaMethod instance
-     * @return true if method is for the same method as this method, false otherwise.
-     */
-    public boolean isMethod(MetaMethod method) {
-        return getName().equals(method.getName())
-            && getModifiers() == method.getModifiers()
-            && getReturnType().equals(method.getReturnType())
-            && equal(getParameterTypes(), method.getParameterTypes());
-    }
-
-    protected static boolean equal(CachedClass[] a, Class[] b) {
-        if (a.length == b.length) {
-            for (int i = 0, size = a.length; i < size; i++) {
-                if (!a[i].getTheClass().equals(b[i])) {
-                    return false;
-                }
-            }
-            return true;
-        }
-        return false;
-    }
-
-    protected static boolean equal(CachedClass[] a, CachedClass[] b) {
-        if (a.length == b.length) {
-            for (int i = 0, size = a.length; i < size; i++) {
-                if (a[i] != b[i]) {
-                    return false;
-                }
-            }
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Returns a string representation of this method
-     */
-    public String toString() {
-        return super.toString()
-            + "[name: "
-            + getName()
-            + " params: "
-            + InvokerHelper.toString(getParameterTypes())
-            + " returns: "
-            + getReturnType()
-            + " owner: "
-            + getDeclaringClass()
-            + "]";
-    }
-
-    public Object clone() {
-        try {
-            return super.clone();
-        }
-        catch (CloneNotSupportedException e) {
-            throw new GroovyRuntimeException("This should never happen", e);
-        }
-    }
-
-    /**
-     * Returns whether or not this method is static.
-     * @return true if this method is static
-     */
-    public boolean isStatic() {
-        return (getModifiers() & Modifier.STATIC) != 0;
-    }
-
-    /**
-     * Returns whether or not this method is abstract.
-     * @return true if this method is abstract
-     */
-    public boolean isAbstract() {
-        return (getModifiers() & Modifier.ABSTRACT) != 0;
-    }
-
-    /**
-     * Returns whether or not this method is private.
-     * @return true if this method is private
-     */
-    public final boolean isPrivate() {
-        return (getModifiers() & Modifier.PRIVATE) != 0;
-    }
-
-    /**
-     * Returns whether or not this method is protected.
-     * @return true if this method is protected
-     */
-    public final boolean isProtected() {
-        return (getModifiers() & Modifier.PROTECTED) != 0;
-    }
-
-    /**
-     * Returns whether or not this method is public.
-     * @return true if this method is public
-     */
-    public final boolean isPublic() {
-        return (getModifiers() & Modifier.PUBLIC) != 0;
-    }
-
-    /**
-     * @param method the method to compare against
-     * @return true if the given method has the same name, parameters, return type
-     * and modifiers but may be defined on another type
-     */
-    public final boolean isSame(MetaMethod method) {
-        return getName().equals(method.getName())
-            && compatibleModifiers(getModifiers(), method.getModifiers())
-            && getReturnType().equals(method.getReturnType())
-            && equal(getParameterTypes(), method.getParameterTypes());
-    }
-
-    /**
-     * Checks the compatibility between two modifier masks. Checks that they are equal
-     * with regards to access and static modifier.
-     *
-     * @return true if the modifiers are compatible
-     */
-    private static boolean compatibleModifiers(int modifiersA, int modifiersB) {
-        int mask = Modifier.PRIVATE | Modifier.PROTECTED | Modifier.PUBLIC | Modifier.STATIC;
-        return (modifiersA & mask) == (modifiersB & mask);
-    }
-
-    /**
-     * Returns whether this object is cacheable
-     */
-    public boolean isCacheable() {
-        return true;
-    }
-
-    /**
-     * Return a descriptor of this method based on the return type and parameters of this method.
-     */
-    public String getDescriptor() {
-        return BytecodeHelper.getMethodDescriptor(getReturnType(), getNativeParameterTypes());
-    }
-
-    /**
-     * Returns the signature of this method
-     *
-     * @return The signature of this method
-     */
-    public synchronized String getSignature() {
-        if (signature == null) {
-            CachedClass [] parameters = getParameterTypes();
-            final String name = getName();
-            StringBuilder buf = new StringBuilder(name.length()+parameters.length*10);
-            buf.append(getReturnType().getName());
-            
-            buf.append(' ');
-            buf.append(name);
-            buf.append('(');
-            for (int i = 0; i < parameters.length; i++) {
-                if (i > 0) {
-                    buf.append(", ");
-                }
-                buf.append(parameters[i].getName());
-            }
-            buf.append(')');
-            signature = buf.toString();
-        }
-        return signature;
-    }
-
-    
-    public String getMopName() {
-        if (mopName == null) {
-          String name = getName();
-          CachedClass declaringClass = getDeclaringClass();
-          if (Modifier.isPrivate(getModifiers()))
-            mopName = new StringBuffer().append("this$").append(declaringClass.getSuperClassDistance()).append("$").append(name).toString();
-          else 
-            mopName = new StringBuffer().append("super$").append(declaringClass.getSuperClassDistance()).append("$").append(name).toString();
-        }
-        return mopName;
-    }
-
-    /**
-     * This method is called when an exception occurs while invoking this method.
-     */
-    public final RuntimeException processDoMethodInvokeException (Exception e, Object object, Object [] argumentArray) {
-//        if (e instanceof IllegalArgumentException) {
-//            //TODO: test if this is OK with new MOP, should be changed!
-//            // we don't want the exception being unwrapped if it is a IllegalArgumentException
-//            // but in the case it is for example a IllegalThreadStateException, we want the unwrapping
-//            // from the runtime
-//            //Note: the reason we want unwrapping sometimes and sometimes not is that the method
-//            // invocation tries to invoke the method with and then reacts with type transformation
-//            // if the invocation failed here. This is OK for IllegalArgumentException, but it is
-//            // possible that a Reflector will be used to execute the call and then an Exception from inside
-//            // the method is not wrapped in a InvocationTargetException and we will end here.
-//            boolean setReason = e.getClass() != IllegalArgumentException.class || this instanceof org.codehaus.groovy.reflection.GeneratedMetaMethod;
-//            return MetaClassHelper.createExceptionText("failed to invoke method: ", this, object, argumentArray, e, setReason);
-//        }
-
-        if (e instanceof RuntimeException)
-          return (RuntimeException) e;
-
-        return MetaClassHelper.createExceptionText("failed to invoke method: ", this, object, argumentArray, e, true);
-    }
-
-    /**
-     * Invokes the method this object represents. This method is not final but it should be overloaded very carefully and only by generated methods
-     * there is no guarantee that it will be called
-     *
-     * @param object The object the method is to be called at.
-     * @param argumentArray Arguments for the method invocation.
-     * @return The return value of the invoked method.
-     */
-    public Object doMethodInvoke(Object object, Object[] argumentArray) {
-        argumentArray = coerceArgumentsToClasses(argumentArray);
-        try {
-            return invoke(object, argumentArray);
-        } catch (Exception e) {
-            throw processDoMethodInvokeException(e, object, argumentArray);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/groovy/blob/d638ca43/src/main/groovy/lang/MetaObjectProtocol.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/MetaObjectProtocol.java b/src/main/groovy/lang/MetaObjectProtocol.java
deleted file mode 100644
index 4218831..0000000
--- a/src/main/groovy/lang/MetaObjectProtocol.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package groovy.lang;
-
-import java.util.List;
-
-/**
- * <p>An interface that defines the API usable by clients of Groovy's Meta Object Protocol (MOP). These methods are
- * implemented by the reference implementation of the {@link groovy.lang.MetaClass} interface.
- *
- * @see MetaClassImpl
- * @author John Wilson
- * @author Graeme Rocher
- */
-public interface MetaObjectProtocol {
-
-    /**
-     * Obtain a list of all meta properties available on this meta class
-     *
-     * @see groovy.lang.MetaProperty
-     * @return A list of MetaProperty instances
-     */
-    List<MetaProperty> getProperties();
-    /**
-     * Obtain a list of all the meta methods available on this meta class
-     *
-     * @see groovy.lang.MetaMethod
-     * @return A list of MetaMethod instances
-     */
-    List<MetaMethod> getMethods();
-    
-    /**
-     * <p>Returns an object satisfying Groovy truth if the implementing MetaClass responds to
-     * a method with the given name and arguments types.
-     *
-     * <p>Note that this method's return value is based on realised methods and does not take into account
-     * objects or classes that implement invokeMethod or methodMissing
-     *
-     * <p>This method is "safe" in that it will always return a value and never throw an exception
-     *
-     * @param obj The object to inspect
-     * @param name The name of the method of interest
-     * @param argTypes The argument types to match against
-     * @return A List of MetaMethods matching the argument types which will be empty if no matching methods exist
-     */
-    List<MetaMethod> respondsTo(Object obj, String name, Object[] argTypes);
-
-    /**
-     * <p>Returns an object satisfying Groovy truth if the implementing MetaClass responds to
-     * a method with the given name regardless of arguments. In other words this method will
-     * return for foo() and foo(String).
-     *
-     * <p>Note that this method's return value is based on realised methods and does not take into account
-     * objects or classes that implement invokeMethod or methodMissing
-     *
-     * <p>This method is "safe" in that it will always return a value and never throw an exception
-     *
-     * @param obj The object to inspect
-     * @param name The name of the method of interest
-     * @return A List of MetaMethods which will be empty if no methods with the given name exist
-     */
-    List<MetaMethod> respondsTo(Object obj, String name);
-
-    /**
-     * <p>Returns true of the implementing MetaClass has a property of the given name
-     *
-     * <p>Note that this method will only return true for realised properties and does not take into
-     * account implementation of getProperty or propertyMissing
-     *
-     * @param obj The object to inspect
-     * @param name The name of the property
-     * @return The MetaProperty or null if it doesn't exist
-     */
-    MetaProperty hasProperty(Object obj, String name);
-
-    /**
-     * Returns a MetaProperty for the given name or null if it doesn't exist
-     *
-     * @param name The name of the MetaProperty
-     * @return A MetaProperty or null
-     */
-    MetaProperty getMetaProperty(String name);
-
-    /**
-     * Retrieves a static MetaMethod for the given name and argument values, using the types of the arguments
-     * to establish the chosen MetaMethod
-     *
-     * @param name The name of the MetaMethod
-     * @param args The argument types
-     * @return A MetaMethod or null if it doesn't exist
-     */
-    MetaMethod getStaticMetaMethod(String name, Object[] args);
-
-
-    /**
-     * Retrieves an instance MetaMethod for the given name and argument values, using the types of the
-     * argument values to establish the chosen MetaMethod
-     *
-     * @param name The name of the MetaMethod
-     * @param args Array containing - 1) the argument values (using which their types are then inferred), or 2) the corresponding argument types  
-     * @return A MetaMethod or null if it doesn't exist
-     */
-    MetaMethod getMetaMethod(String name, Object[] args);
-
-    /**
-     * Retrieves that Java Class that the attached Meta behaviours apply to
-     *
-     * @return The java.lang.Class instance
-     */
-    Class getTheClass();
-
-    /**
-     * Invokes a constructor for the given arguments. The MetaClass will attempt to pick the best argument which
-     * matches the types of the objects passed within the arguments array
-     *
-     * @param arguments The arguments to the constructor
-     * @return An instance of the java.lang.Class that this MetaObjectProtocol object applies to
-     */
-    Object invokeConstructor(Object[] arguments);
-
-    /**
-     * Invokes a method on the given Object with the given name and arguments. The MetaClass will attempt to pick
-     * the best method for the given name and arguments. If a method cannot be invoked a MissingMethodException will be
-     * thrown.
-     *
-     * @see groovy.lang.MissingMethodException
-     * @param object The instance which the method is invoked on
-     * @param methodName The name of the method
-     * @param arguments The arguments to the method
-     * @return The return value of the method which is null if the return type is void
-     */
-    Object invokeMethod(Object object, String methodName, Object[] arguments);
-
-    /**
-     * Invokes a method on the given object, with the given name and single argument.
-     *
-     * @see #invokeMethod(Object, String, Object[])
-     * @param object The Object to invoke the method on
-     * @param methodName The name of the method
-     * @param arguments The argument to the method
-     * @return The return value of the method which is null if the return type is void
-     */
-     Object invokeMethod(Object object, String methodName, Object arguments);
-
-    /**
-     * Invokes a static method on the given Object with the given name and arguments.
-     * <p>
-     * The Object can either be an instance of the class that this
-     * MetaObjectProtocol instance applies to or the java.lang.Class instance itself. If a method cannot be invoked
-     * a MissingMethodException is will be thrown
-     *
-     * @see groovy.lang.MissingMethodException
-     * @param object An instance of the class returned by the getTheClass() method or the class itself
-     * @param methodName The name of the method
-     * @param arguments The arguments to the method
-     * @return The return value of the method which is null if the return type is void
-     */
-    Object invokeStaticMethod(Object object, String methodName, Object[] arguments);
-
-    /**
-     * Retrieves a property of an instance of the class returned by the getTheClass() method.
-     * <p>
-     * What this means is largely down to the MetaClass implementation, however the default case would result
-     * in an attempt to invoke a JavaBean getter, or if no such getter exists a public field of the instance.
-     *
-     * @see MetaClassImpl
-     * @param object An instance of the class returned by the getTheClass() method
-     * @param property The name of the property to retrieve the value for
-     * @return The properties value
-     */
-    Object getProperty(Object object, String property);
-
-    /**
-     * Sets a property of an instance of the class returned by the getTheClass() method.
-     * <p>
-     * What this means is largely down to the MetaClass implementation, however the default case would result
-     * in an attempt to invoke a JavaBean setter, or if no such setter exists to set a public field of the instance.
-     *
-     * @see MetaClassImpl
-     * @param object An instance of the class returned by the getTheClass() method
-     * @param property The name of the property to set
-     * @param newValue The new value of the property
-     */
-    void setProperty(Object object, String property, Object newValue);
-
-    /**
-     * Retrieves an attribute of an instance of the class returned by the getTheClass() method.
-     * <p>
-     * What this means is largely down to the MetaClass implementation, however the default case would result
-     * in attempt to read a field of the instance.
-     *
-     * @see MetaClassImpl
-     * @param object An instance of the class returned by the getTheClass() method
-     * @param attribute The name of the attribute to retrieve the value for
-     * @return The attribute value
-     */
-    Object getAttribute(Object object, String attribute);
-
-    /**
-     * Sets an attribute of an instance of the class returned by the getTheClass() method.
-     * <p>
-     * What this means is largely down to the MetaClass implementation, however the default case would result
-     * in an attempt to set a field of the instance.
-     *
-     * @see MetaClassImpl
-     * @param object An instance of the class returned by the getTheClass() method
-     * @param attribute The name of the attribute to set
-     * @param newValue The new value of the attribute
-     */
-    void setAttribute(Object object, String attribute, Object newValue);
-}

http://git-wip-us.apache.org/repos/asf/groovy/blob/d638ca43/src/main/groovy/lang/MetaProperty.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/MetaProperty.java b/src/main/groovy/lang/MetaProperty.java
deleted file mode 100644
index d3c9633..0000000
--- a/src/main/groovy/lang/MetaProperty.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package groovy.lang;
-
-import org.codehaus.groovy.runtime.MetaClassHelper;
-
-import java.lang.reflect.Modifier;
-
-/**
- * Represents a property on a bean which may have a getter and/or a setter
- * 
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
- */
-public abstract class MetaProperty {
-
-    protected final String name;
-    protected Class type;
-    public static final String PROPERTY_SET_PREFIX = "set";
-
-    /**
-     * Constructor that sets the property name and type (class)
-     */
-    public MetaProperty(String name, Class type) {
-        this.name = name;
-        this.type = type;
-    }
-
-    /**
-     * @return the property of the given object
-     * @throws Exception if the property could not be evaluated
-     */
-    public abstract Object getProperty(Object object);
-
-    /**
-     * Sets the property on the given object to the new value
-     * 
-     * @param object on which to set the property
-     * @param newValue the new value of the property
-     * @throws RuntimeException if the property could not be set
-     */
-    public abstract void setProperty(Object object, Object newValue);
-
-    /**
-     * Return the name of the property
-     *
-     * @return the name of the property
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * @return the type of the property
-     */
-    public Class getType() {
-        return type;
-    }
-    
-    /**
-     * Returns the access modifier.
-     * @return Modifier.PUBLIC
-     */
-    public int getModifiers() {
-        return Modifier.PUBLIC;
-    }
-
-    /**
-     * Gets the name for the getter for this property
-     *
-     * @return The name of the property. The name is "get"+ the capitalized propertyName
-     *         or, in the case of boolean values, "is" + the capitalized propertyName
-     */
-    public static String getGetterName(String propertyName, Class type) {
-        String prefix = type == boolean.class || type == Boolean.class ? "is" : "get";
-        return prefix + MetaClassHelper.capitalize(propertyName);
-    }
-
-    /**
-     * Gets the setter for the getter for this property.
-     *
-     * @return The name of the property. The name is "set"+ the capitalized propertyName.
-     */
-    public static String getSetterName(String propertyName) {
-        return PROPERTY_SET_PREFIX + MetaClassHelper.capitalize(propertyName);
-    }
-}

http://git-wip-us.apache.org/repos/asf/groovy/blob/d638ca43/src/main/groovy/lang/MissingClassException.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/MissingClassException.java b/src/main/groovy/lang/MissingClassException.java
deleted file mode 100644
index ad8e5f5..0000000
--- a/src/main/groovy/lang/MissingClassException.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package groovy.lang;
-
-import org.codehaus.groovy.ast.ASTNode;
-import org.codehaus.groovy.ast.ClassNode;
-
-/**
- * An exception occurred if a dynamic method dispatch fails with an unknown class.
- * 
- * Note that the Missing*Exception classes were named for consistency and
- * to avoid conflicts with JDK exceptions of the same name.
- * 
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
- */
-public class MissingClassException extends GroovyRuntimeException {
-
-    private final String type;
-
-    public MissingClassException(String type, ASTNode node, String message) {
-        super("No such class: " + type + " " + message, node);
-        this.type = type;
-    }
-    
-    public MissingClassException(ClassNode type, String message){
-        super("No such class: " + type.getName() + " " + message);
-        this.type = type.getName();
-    }
-
-    /**
-     * 
-     * @return The type that could not be resolved
-     */
-    public String getType() {
-        return type;
-    }
-}

http://git-wip-us.apache.org/repos/asf/groovy/blob/d638ca43/src/main/groovy/lang/MissingFieldException.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/MissingFieldException.java b/src/main/groovy/lang/MissingFieldException.java
deleted file mode 100644
index 3c17d39..0000000
--- a/src/main/groovy/lang/MissingFieldException.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package groovy.lang;
-
-
-/**
- * An exception occurred if a dynamic field dispatch fails with an unknown field.
- * 
- * Note that the Missing*Exception classes were named for consistency and
- * to avoid conflicts with JDK exceptions of the same name.
- * 
- * @author <a href="mailto:jstrachan@protique.com">James Strachan</a>
- */
-public class MissingFieldException extends GroovyRuntimeException {
-
-    private final String field;
-    private final Class type;
-
-    public MissingFieldException(String field, Class type) {
-        super("No such field: " + field + " for class: " + type.getName());
-        this.field = field;
-        this.type = type;
-    }
-
-    public MissingFieldException(String field, Class type, Throwable e) {
-        super("No such field: " + field + " for class: " + type.getName() + ". Reason: " + e, e);
-        this.field = field;
-        this.type = type;
-    }
-
-    public MissingFieldException(String message, String field, Class type) {
-        super(message);
-        this.field = field;
-        this.type = type;
-    }
-
-    /**
-     * @return the name of the field that could not be found
-     */
-    public String getField() {
-        return field;
-    }
-
-    /**
-     * 
-     * @return The type on which the field was attempted to be called
-     */
-    public Class getType() {
-        return type;
-    }
-}

http://git-wip-us.apache.org/repos/asf/groovy/blob/d638ca43/src/main/groovy/lang/MissingMethodException.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/MissingMethodException.java b/src/main/groovy/lang/MissingMethodException.java
deleted file mode 100644
index 0902150..0000000
--- a/src/main/groovy/lang/MissingMethodException.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package groovy.lang;
-
-import org.codehaus.groovy.runtime.InvokerHelper;
-import org.codehaus.groovy.runtime.MethodRankHelper;
-
-/**
- * An exception occurred if a dynamic method dispatch fails with an unknown method.
- * <p>
- * Note that the Missing*Exception classes were named for consistency and
- * to avoid conflicts with JDK exceptions of the same name.
- */
-public class MissingMethodException extends GroovyRuntimeException {
-
-    private final String method;
-    private final Class type;
-    private final boolean isStatic;
-
-    public Object[] getArguments() {
-        return arguments;
-    }
-
-    private final Object arguments[];
-
-    public MissingMethodException(String method, Class type, Object[] arguments) {
-        this(method, type, arguments, false);
-    }
-
-    public MissingMethodException(String method, Class type, Object[] arguments, boolean isStatic) {
-        super();
-        this.method = method;
-        this.type = type;
-        this.isStatic = isStatic;
-        this.arguments = arguments;
-    }
-
-    public String getMessage() {
-        return "No signature of method: "
-                + (isStatic ? "static " : "")
-                + type.getName()
-                + "."
-                + method
-                + "() is applicable for argument types: ("
-                + InvokerHelper.toTypeString(arguments, 60)
-                + ") values: "
-                + InvokerHelper.toArrayString(arguments, 60, true)
-                + MethodRankHelper.getMethodSuggestionString(method, type, arguments);
-    }
-
-    /**
-     * @return the name of the method that could not be found
-     */
-    public String getMethod() {
-        return method;
-    }
-
-    /**
-     * @return The type on which the method was attempted to be called
-     */
-    public Class getType() {
-        return type;
-    }
-
-    /**
-     * @return Whether the method was called in a static way,
-     *         i.e. on a class rather than an object.
-     */
-    public boolean isStatic() {
-        return isStatic;
-    }
-}

http://git-wip-us.apache.org/repos/asf/groovy/blob/d638ca43/src/main/groovy/lang/MissingPropertyException.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/MissingPropertyException.java b/src/main/groovy/lang/MissingPropertyException.java
deleted file mode 100644
index 270f039..0000000
--- a/src/main/groovy/lang/MissingPropertyException.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package groovy.lang;
-
-import org.codehaus.groovy.runtime.MethodRankHelper;
-
-
-/**
- * An exception occurred if a dynamic property dispatch fails with an unknown property.
- * 
- * Note that the Missing*Exception classes were named for consistency and
- * to avoid conflicts with JDK exceptions of the same name.
- * 
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
- */
-public class MissingPropertyException extends GroovyRuntimeException {
-
-    public static final Object MPE = new Object();
-
-    private final String property;
-    private final Class type;
-
-    public MissingPropertyException(String property, Class type) {
-        this.property = property;
-        this.type = type;
-    }
-
-    public MissingPropertyException(String property, Class type, Throwable t) {
-        super(t);
-        this.property = property;
-        this.type = type;
-    }
-
-    public MissingPropertyException(String message) {
-        super(message);
-        this.property = null;
-        this.type = null;
-    }
-
-    public MissingPropertyException(String message, String property, Class type) {
-        super(message);
-        this.property = property;
-        this.type = type;
-    }
-
-    public String getMessageWithoutLocationText() {
-        final Throwable cause = getCause();
-        if (cause == null) {
-            if (super.getMessageWithoutLocationText() != null) {
-                return super.getMessageWithoutLocationText();
-            }
-            return "No such property: " + property + " for class: " + type.getName() +
-                   MethodRankHelper.getPropertySuggestionString(property, type);
-        }
-        return "No such property: " + property + " for class: " + type.getName() + ". Reason: " + cause;
-    }
-
-    /**
-     * @return the name of the property that could not be found
-     */
-    public String getProperty() {
-        return property;
-    }
-
-    /**
-     * 
-     * @return The type on which the property was attempted to be called
-     */
-    public Class getType() {
-        return type;
-    }
-}

http://git-wip-us.apache.org/repos/asf/groovy/blob/d638ca43/src/main/groovy/lang/Mixin.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/Mixin.java b/src/main/groovy/lang/Mixin.java
deleted file mode 100644
index 22ef4b9..0000000
--- a/src/main/groovy/lang/Mixin.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package groovy.lang;
-
-import org.codehaus.groovy.transform.GroovyASTTransformationClass;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Provides a mechanism for mixing in methods into a class.
- *
- * @deprecated static mixins have been deprecated in favour of traits (trait keyword).
- *
- * @author Alex Tkachman
- */
-@java.lang.annotation.Documented
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-@GroovyASTTransformationClass("org.codehaus.groovy.ast.MixinASTTransformation")
-@Deprecated
-public @interface Mixin {
-    Class [] value ();
-}

http://git-wip-us.apache.org/repos/asf/groovy/blob/d638ca43/src/main/groovy/lang/MutableMetaClass.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/MutableMetaClass.java b/src/main/groovy/lang/MutableMetaClass.java
deleted file mode 100644
index 903c895..0000000
--- a/src/main/groovy/lang/MutableMetaClass.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package groovy.lang;
-
-import java.lang.reflect.Method;
-
-/**
- * An interface that defines methods that implementers of mutable Meta classes should specify. It provides operations to perform mutations
- * on the MetaClass instance.
- * <p>
- * Whether a MetaClass allows mutation is up to the MetaClass itself and considerations of Thread safety
- * need to be taken into account when making a MetaClass mutable
- * <p>
- * The default implementation allows mutation of MetaClass instances before initialisation (before the initialize() method is called)
- * but not after, thus ensuring Thread safety once a MetaClass has been constructed and placed in the registry
- *
- * @see MetaClassImpl
- * @see MetaClass
- * @author Graeme Rocher
- * @since 1.5
- */
-public interface MutableMetaClass extends MetaClass {
-
-    /**
-     * Return whether the MetaClass has been modified or not
-     * @return True if it has
-     */
-    boolean isModified();
-
-    /**
-     * adds a new instance method to this MetaClass. Instance
-     * methods are able to overwrite the original methods of the
-     * class. Calling this method should not be done after
-     * initialise was called.
-     *
-     * @param method the method to be added
-     */
-     void addNewInstanceMethod(Method method);
-
-    /**
-     * adds a new static method to this MetaClass. This is only
-     * possible as long as initialise was not called.
-     *
-     * @param method the method to be added
-     */
-     void addNewStaticMethod(Method method);
-
-    /**
-     * Adds a new MetaMethod to the MetaClass
-     *
-     * @param metaMethod The MetaMethod to add
-     */
-    void addMetaMethod(MetaMethod metaMethod);
-
-    /**
-     * Adds a new MetaBeanProperty to the MetaClass
-     *
-     * @param metaBeanProperty The MetaBeanProperty instance
-     */
-    void addMetaBeanProperty(MetaBeanProperty metaBeanProperty);
-    
-    // TODO: Add methods like addMetaConstructor, addMetaAttribute, addMetaAnnotation etc.
-}

http://git-wip-us.apache.org/repos/asf/groovy/blob/d638ca43/src/main/groovy/lang/Newify.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/Newify.java b/src/main/groovy/lang/Newify.java
deleted file mode 100644
index 5bf7fdf..0000000
--- a/src/main/groovy/lang/Newify.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package groovy.lang;
-
-import org.codehaus.groovy.transform.GroovyASTTransformationClass;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Annotation that supports writing constructor call expressions without the 'new'
- * keyword. Instead they can be written "Ruby-style" as a method call to a 'new'
- * method or "Python-style" by just omitting the 'new' keyword.
- * <p>
- * It allows you to write code snippets like this ("Python-style"):
- * <pre>
- * {@code @Newify([Tree,Leaf])} class MyTreeProcessor {
- *     def myTree = Tree(Tree(Leaf("A"), Leaf("B")), Leaf("C"))
- *     def process() { ... }
- * }
- * </pre>
- * or this ("Ruby-style"):
- * <pre>
- * {@code @Newify} class MyTreeProcessor {
- *     def myTree = Tree.new(Tree.new(Leaf.new("A"), Leaf.new("B")), Leaf.new("C"))
- *     def process() { ... }
- * }
- * </pre>
- *
- * After the AST transformation, the following code is passed on for further compilation:
- * <pre>
- * class MyTreeProcessor {
- *     def myTree = new Tree(new Tree(new Leaf("A"), new Leaf("B")), new Leaf("C"))
- *     def process() { ... }
- * }
- * </pre>
- * The annotation can be used on a whole class as shown above or selectively on a particular
- * method, constructor or field.
- * <p>
- * The "Ruby-style" new conversions occur automatically unless the 'auto=false'
- * flag is given when using the annotation. You might do this if you create a new method
- * using meta programming.
- * <p>
- * The "Python-style" conversions require you to specify each class on which you want them
- * to apply. The transformation then works by matching the basename of the provided classes to any
- * similarly named instance method calls not specifically bound to an object, i.e. associated
- * with the 'this' object. In other words <code>Leaf("A")</code> would be transformed to
- * <code>new Leaf("A")</code> but <code>x.Leaf("A")</code> would not be touched.
- * <p>
- * An example showing how to use the annotation at different levels:
- * <pre>
- * {@code @Newify(auto=false, value=Foo)}
- * class Main {
- *     {@code @Newify} // turn auto on for field
- *     def field1 = java.math.BigInteger.new(42)
- *     def field2, field3, field4
- *
- *     {@code @Newify(Bar)}
- *     def process() {
- *         field2 = Bar("my bar")
- *     }
- *
- *     {@code @Newify(Baz)}
- *     Main() {
- *         field3 = Foo("my foo")
- *         field4 = Baz("my baz")
- *     }
- * }
- * </pre>
- *
- * The annotation is intended to be used sparingly; perhaps in DSL scenarios or when
- * using deeply nested structural types. In particular, there is no support for using
- * the facility with two similarly named classes from different packages at the same time.
- * Though it is OK to have different packages in different contexts. Also, there is
- * no support for turning "Ruby-style" conversions off at the method, constructor or
- * field level if already turned on at the class level.
- *
- * @author Paul King
- */
-@java.lang.annotation.Documented
-@Retention(RetentionPolicy.SOURCE)
-@Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.TYPE, ElementType.FIELD, ElementType.LOCAL_VARIABLE})
-@GroovyASTTransformationClass("org.codehaus.groovy.transform.NewifyASTTransformation")
-public @interface Newify {
-    Class<?>[] value() default {};
-
-    /**
-     * @return if automatic conversion of "Ruby-style" new method calls should occur
-     */
-    boolean auto() default true;
-}

http://git-wip-us.apache.org/repos/asf/groovy/blob/d638ca43/src/main/groovy/lang/NonEmptySequence.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/NonEmptySequence.java b/src/main/groovy/lang/NonEmptySequence.java
deleted file mode 100644
index f069b7a..0000000
--- a/src/main/groovy/lang/NonEmptySequence.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package groovy.lang;
-
-import java.util.List;
-
-/**
- * Represents a sequence of objects which represents one or many instances of
- * of objects of a given type. The type can be omitted in which case any type of
- * object can be added.
- *
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
- */
-public class NonEmptySequence extends Sequence {
-
-    public NonEmptySequence() {
-        super(null);
-    }
-
-    public NonEmptySequence(Class type) {
-        super(type);
-    }
-
-    public NonEmptySequence(Class type, List content) {
-        super(type, content);
-    }
-
-    public int minimumSize() {
-        return 1;
-    }
-}
\ No newline at end of file


Mime
View raw message