e.g. Calendar Search Help
You must enter a value before pressing Search
axis

Class: org.apache.axis.utils.cache.JavaMethod   ©

 OK to copy?
001 /*
002  * The Apache Software License, Version 1.1
003  *
004  *
005  * Copyright (c) 2001-2003 The Apache Software Foundation.  All rights 
006  * reserved.
007  *
008  * Redistribution and use in source and binary forms, with or without
009  * modification, are permitted provided that the following conditions
010  * are met:
011  *
012  * 1. Redistributions of source code must retain the above copyright
013  *    notice, this list of conditions and the following disclaimer. 
014  *
015  * 2. Redistributions in binary form must reproduce the above copyright
016  *    notice, this list of conditions and the following disclaimer in
017  *    the documentation and/or other materials provided with the
018  *    distribution.
019  *
020  * 3. The end-user documentation included with the redistribution,
021  *    if any, must include the following acknowledgment:  
022  *       "This product includes software developed by the
023  *        Apache Software Foundation (http://www.apache.org/)."
024  *    Alternately, this acknowledgment may appear in the software itself,
025  *    if and wherever such third-party acknowledgments normally appear.
026  *
027  * 4. The names "Axis" and "Apache Software Foundation" must
028  *    not be used to endorse or promote products derived from this
029  *    software without prior written permission. For written 
030  *    permission, please contact apache@apache.org.
031  *
032  * 5. Products derived from this software may not be called "Apache",
033  *    nor may "Apache" appear in their name, without prior written
034  *    permission of the Apache Software Foundation.
035  *
036  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
037  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
038  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
039  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
040  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
041  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
042  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
043  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
044  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
045  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
046  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
047  * SUCH DAMAGE.
048  * ====================================================================
049  *
050  * This software consists of voluntary contributions made by many
051  * individuals on behalf of the Apache Software Foundation.  For more
052  * information on the Apache Software Foundation, please see
053  * <http://www.apache.org/>.
054  */
055 
056 package org.apache.axis.utils.cache;
057 
058 import java.lang.reflect.Method;
059 import java.util.Vector;
060 
061 /**
062  * A simple cache of previously loaded methods
063  *
064  * @author Sam Ruby <rubys@us.ibm.com>
065  */
066 public class JavaMethod {
067 
068     // The list of the methods in the given class with the given name.
069     private Method[] methods = null;
070 
071     /**
072      * Create a cache entry for this java.lang.Class
073      * @param jc java.lang.Class which will be searched for methods
074      * @param name name of the method
075      */
076     public JavaMethod(Class jc, String name) {
077         Method[] methods = jc.getMethods();
078         Vector workinglist = new Vector();
079 
080         // scan for matching names, saving the match if it is unique,
081         // otherwise accumulating a list
082         for (int i=0; i<methods.length; i++) {
083             if (methods[i].getName().equals(name)) {
084                 workinglist.addElement(methods[i]);
085             }
086         }
087 
088         // If a list was found, convert it into an array
Rate089         if (workinglist.size() > 0) {
Rate090             this.methods = new Method[workinglist.size()];
091             workinglist.copyInto(this.methods);
092         }
093     }
094     
095     /**
096      * Lookup a method based on name.  This method returns an array just in
097      * case there is more than one.
098      * @param name name of method
099      */
100     public Method[] getMethod() {
101         return methods;
102     }
103 };

            
All Examples in File:
Example
Line
Rating (found
useful by...)
89 0% of 0
90 0% of 0