本文整理汇总了Java中com.intellij.psi.PsiClass.isValid方法的典型用法代码示例。如果您正苦于以下问题:Java PsiClass.isValid方法的具体用法?Java PsiClass.isValid怎么用?Java PsiClass.isValid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.intellij.psi.PsiClass
的用法示例。
在下文中一共展示了PsiClass.isValid方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getPsiClass
import com.intellij.psi.PsiClass; //导入方法依赖的package包/类
public PsiClass getPsiClass( GlobalSearchScope scope, ManModule module, String fqn )
{
if( isShortCircuit( fqn ) )
{
return null;
}
if( !isValidFqn( fqn ) )
{
return null;
}
addShortCircuit( fqn );
try
{
listenToChanges( module.getProject() );
// Find cached type...
FqnCache<PsiClass> map = _type2Class.computeIfAbsent( module, k -> new FqnCache<>() );
FqnCacheNode<PsiClass> node = map.getNode( fqn );
if( node != null )
{
PsiClass psiFacadeClass = node.getUserData();
if( psiFacadeClass == null || psiFacadeClass.isValid() )
{
return psiFacadeClass;
}
}
// Create new module-specific type...
if( node == null )
{
try
{
node = createPrimaryType( module, fqn, map );
}
catch( ConflictingTypeManifoldsException e )
{
return PsiErrorClassUtil.create( module.getIjProject(), e );
}
}
// Add extensions (and create module-specific type if necessary) ...
PsiClass psiClass = node == null ? null : node.getUserData();
psiClass = addExtensions( scope, module, fqn, psiClass );
return psiClass;
}
finally
{
removeShortCircuit( fqn );
}
}