View Javadoc
1 /* ==================================================================== 2 * The Apache Software License, Version 1.1 3 * 4 * Copyright (c) 2000 The Apache Software Foundation. All rights 5 * reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 14 * 2. Redistributions in binary form must reproduce the above copyright 15 * notice, this list of conditions and the following disclaimer in 16 * the documentation and/or other materials provided with the 17 * distribution. 18 * 19 * 3. The end-user documentation included with the redistribution, 20 * if any, must include the following acknowledgment: 21 * "This product includes software developed by the 22 * Apache Software Foundation (http://www.apache.org/)." 23 * Alternately, this acknowledgment may appear in the software itself, 24 * if and wherever such third-party acknowledgments normally appear. 25 * 26 * 4. The names "Apache" and "Apache Software Foundation" must 27 * not be used to endorse or promote products derived from this 28 * software without prior written permission. For written 29 * permission, please contact apache@apache.org. 30 * 31 * 5. Products derived from this software may not be called "Apache", 32 * nor may "Apache" appear in their name, without prior written 33 * permission of the Apache Software Foundation. 34 * 35 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 36 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 37 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 38 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 41 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 42 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 43 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 44 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 45 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 46 * SUCH DAMAGE. 47 * ==================================================================== 48 * 49 * This software consists of voluntary contributions made by many 50 * individuals on behalf of the Apache Software Foundation. For more 51 * information on the Apache Software Foundation, please see 52 * <http://www.apache.org/>;. 53 * 54 * Portions of this software are based upon public domain software 55 * originally written at the National Center for Supercomputing Applications, 56 * University of Illinois, Urbana-Champaign. 57 */ 58 59 package net.sourceforge.jane.lang; 60 61 import net.sourceforge.jane.Jane; 62 63 /*** 64 * A {@link ClassInfo} object that lazily loads the actual info a request time. 65 * Subclasses will use this by implementing the {@link #loadDelegate()} method 66 * to load the actual delegate. 67 */ 68 abstract public class LazyClassInfo extends AbstractClassInfo 69 { 70 71 protected ClassInfo delegate; 72 73 /*** 74 * Create a new <code>LazyClassInfo</code>. 75 */ 76 public LazyClassInfo(Jane aJane) 77 { 78 super(aJane); 79 } 80 81 /*** 82 * Returns the name of the element. 83 */ 84 public String getName() 85 { 86 return getDelegate().getName(); 87 } 88 89 /*** 90 * Returns <code>true</code> if this element is public. 91 */ 92 public boolean isPublic() 93 { 94 return getDelegate().isPublic(); 95 } 96 97 /*** 98 * Returns <code>true</code> if this element is protected. 99 */ 100 public boolean isProtected() 101 { 102 return getDelegate().isProtected(); 103 } 104 105 /*** 106 * Returns <code>true</code> if this element is package protected. 107 */ 108 public boolean isPackageProtected() 109 { 110 return getDelegate().isPackageProtected(); 111 } 112 113 /*** 114 * Returns <code>true</code> if this element is private. 115 */ 116 public boolean isPrivate() 117 { 118 return getDelegate().isPrivate(); 119 } 120 121 /*** 122 * Returns <code>true</code> if this class is an interface. 123 */ 124 public boolean isInterface() 125 { 126 return getDelegate().isInterface(); 127 } 128 129 /*** 130 * Returns the super class. 131 */ 132 public ClassInfo getSuperClass() 133 { 134 return getDelegate().getSuperClass(); 135 } 136 137 /*** 138 * Returns the interfaces this class implements. 139 */ 140 public Classes getInterfaces() 141 { 142 return getDelegate().getInterfaces(); 143 } 144 145 /*** 146 * Returns the package name. 147 */ 148 public String getPackageName() 149 { 150 return getDelegate().getPackageName(); 151 } 152 153 /*** 154 * Returns the methods. 155 */ 156 public Methods getMethods() 157 { 158 return getDelegate().getMethods(); 159 } 160 161 /*** 162 * Returns the fields. 163 */ 164 public Fields getFields() 165 { 166 return getDelegate().getFields(); 167 } 168 169 /*** 170 * Returns <code>true</code> if this class is abstract. 171 */ 172 public boolean isAbstract() 173 { 174 return getDelegate().isAbstract(); 175 } 176 177 /*** 178 * Returns <code>true</code> if this class is final. 179 */ 180 public boolean isFinal() 181 { 182 return getDelegate().isFinal(); 183 } 184 185 /*** 186 * Returns <code>true</code> if this class is static. 187 */ 188 public boolean isStatic() 189 { 190 return getDelegate().isStatic(); 191 } 192 193 /*** 194 * Load the delegate {@link ClassInfo}. 195 */ 196 abstract protected ClassInfo loadDelegate(); 197 198 /*** 199 * Returns the delegate. 200 */ 201 protected ClassInfo getDelegate() 202 { 203 if (delegate == null) 204 delegate = loadDelegate(); 205 return delegate; 206 } 207 208 } 209

This page was automatically generated by Maven