Package org.codehaus.jam.annotation

Source Code of org.codehaus.jam.annotation.DefaultAnnotationProxy

/*   Copyright 2004 The Apache Software Foundation
*
*   Licensed 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 org.codehaus.jam.annotation;

import org.codehaus.jam.JAnnotationValue;
import org.codehaus.jam.JClass;
import org.codehaus.jam.internal.elements.AnnotationValueImpl;
import org.codehaus.jam.internal.elements.ElementContext;

import java.util.ArrayList;
import java.util.List;

/**
* <p>Implementation of AnnotationProxy which is used when no user-defined
* type has been registered for a given annotation..  All it does is stuff
* values into a ValueMap.  Note that it inherits all of the default tag and
* annotation processing behaviors from AnnotationProxy.</p>
*
*
* @author Patrick Calahan &lt;email: codehaus-at-bea-dot-com&gt;
*/
/**
* @deprecated do not use, moving into internal
*/
public class DefaultAnnotationProxy extends AnnotationProxy {

  // ========================================================================
  // Variables

  private List mValues = new ArrayList();

  // ========================================================================
  // Constructors

  public DefaultAnnotationProxy() {}

  // ========================================================================
  // Public methods

  public JAnnotationValue[] getValues() {
    JAnnotationValue[] out = new JAnnotationValue[mValues.size()];
    mValues.toArray(out);
    return out;
  }

  // ========================================================================
  // TypedAnnotationProxyBase implementation

  /**
   * <p>Overrides this behavior to simply stuff the value into our
   * annotation map.  The super class' implementation would try to
   * find a bunch of setters that we don't have.</p>
   */
  public void setValue(String name, Object value, JClass type) {
    if (name == null) throw new IllegalArgumentException("null name");
    if (type == null) throw new IllegalArgumentException("null type");
    if (value == null) throw new IllegalArgumentException("null value");
    name = name.trim();
    mValues.add(new AnnotationValueImpl((ElementContext)getLogger(),//yikes, nasty.  FIXME
                                        name,value,type));
  }
}

TOP

Related Classes of org.codehaus.jam.annotation.DefaultAnnotationProxy

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.