Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2014-2015 the original author or authors.
   *
   * 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.lastaflute.di.core.util;
 
 import java.util.Map;
 
 
ClassPool用のユーティリティクラスです。

Author(s):
modified by jflute (originated in Seasar)
 
 public class ClassPoolUtil {

    
ClassPoolのキャッシュです。
 
     protected static final Map classPoolMap = Collections.synchronizedMap(new WeakHashMap());

    
クラスが初期化済みであることを示します。
 
     protected static boolean initialized;

    
クラスを初期化します。
 
     public static synchronized void initialize() {
         if (!) {
             DisposableUtil.add(new Disposable() {
                 public void dispose() {
                     synchronized (ClassPoolUtil.class) {
                         .clear();
                          = false;
                     }
                 }
             });
              = true;
         }
     }

    
ClassPoolを返します。

Parameters:
targetClass
Returns:
ClassPool
 
     public static ClassPool getClassPool(final Class targetClass) {
         return getClassPool(LdiClassLoaderUtil.getClassLoader(targetClass));
     }

    
ClassPoolを返します。

Parameters:
classLoader
Returns:
ClassPool
 
     public static ClassPool getClassPool(final ClassLoader classLoader) {
         initialize();
         ClassPool classPool = (ClassPool.get(classLoader);
         if (classPool == null) {
             if (classLoader == null) {
                 return ClassPool.getDefault();
             }
             classPool = new ClassPool();
             classPool.appendClassPath(new LoaderClassPath(classLoader));
             .put(classLoaderclassPool);
         }
         return classPool;
     }

    
CtClassに変換します。

Parameters:
classPool
clazz
Returns:
CtClass
    public static CtClass toCtClass(final ClassPool classPoolfinal Class clazz) {
        return toCtClass(classPool, LdiClassUtil.getSimpleClassName(clazz));
    }

    
CtClassに変換します。

Parameters:
classPool
className
Returns:
CtClass
    public static CtClass toCtClass(final ClassPool classPoolfinal String className) {
        try {
            return classPool.get(className);
        } catch (final NotFoundException e) {
            throw new NotFoundRuntimeException(e);
        }
    }

    
CtClassの配列に変換します。

Parameters:
classPool
classNames
Returns:
CtClassの配列
    public static CtClass[] toCtClassArray(final ClassPool classPoolfinal String[] classNames) {
        if (classNames == null) {
            return null;
        }
        final CtClass[] result = new CtClass[classNames.length];
        for (int i = 0; i < result.length; ++i) {
            result[i] = toCtClass(classPoolclassNames[i]);
        }
        return result;
    }

    
CtClassの配列に変換します。

Parameters:
classPool
classes
Returns:
CtClassの配列
    public static CtClass[] toCtClassArray(final ClassPool classPoolfinal Class[] classes) {
        if (classes == null) {
            return null;
        }
        final CtClass[] result = new CtClass[classes.length];
        for (int i = 0; i < result.length; ++i) {
            result[i] = toCtClass(classPoolclasses[i]);
        }
        return result;
    }

    
CtClassを作成します。

Parameters:
classPool
name
Returns:
CtClass
    public static CtClass createCtClass(final ClassPool classPoolfinal String name) {
        return createCtClass(classPoolnameObject.class);
    }

    
CtClassを作成します。

Parameters:
classPool
name
superClass
Returns:
CtClass
    public static CtClass createCtClass(final ClassPool classPoolfinal String namefinal Class superClass) {
        return createCtClass(classPoolnametoCtClass(classPoolsuperClass));
    }

    
CtClassを作成します。

Parameters:
classPool
name
superClass
Returns:
CtClass
    public static CtClass createCtClass(final ClassPool classPoolfinal String namefinal CtClass superClass) {
        return classPool.makeClass(namesuperClass);
    }
New to GrepCode? Check out our FAQ X