本文整理汇总了Java中consulo.dotnet.resolve.DotNetTypeResolveResult.getElement方法的典型用法代码示例。如果您正苦于以下问题:Java DotNetTypeResolveResult.getElement方法的具体用法?Java DotNetTypeResolveResult.getElement怎么用?Java DotNetTypeResolveResult.getElement使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类consulo.dotnet.resolve.DotNetTypeResolveResult
的用法示例。
在下文中一共展示了DotNetTypeResolveResult.getElement方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: checkImpl
import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@RequiredReadAction
@Nullable
@Override
public HighlightInfoFactory checkImpl(@NotNull CSharpLanguageVersion languageVersion, @NotNull CSharpHighlightContext highlightContext, @NotNull CSharpUserType element)
{
if(element.getParent() instanceof DotNetTypeList && element.getParent().getParent() instanceof CSharpTypeDeclaration)
{
CSharpTypeDeclaration parent = (CSharpTypeDeclaration) element.getParent().getParent();
DotNetTypeResolveResult typeResolveResult = element.toTypeRef().resolve();
PsiElement resolvedElement = typeResolveResult.getElement();
if(resolvedElement instanceof CSharpTypeDeclaration)
{
CSharpTypeDeclaration resolvedTypeDeclaration = (CSharpTypeDeclaration) resolvedElement;
if(resolvedElement == parent || resolvedTypeDeclaration.isInheritor(((CSharpTypeDeclaration) resolvedElement).getVmQName(), true))
{
return newBuilder(element, formatElement(parent), formatElement(resolvedElement));
}
}
}
return null;
}
示例2: getSuperContextImpl
import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@NotNull
@RequiredReadAction
private CSharpResolveContext getSuperContextImpl(Set<PsiElement> alreadyProcessedItem)
{
List<DotNetTypeRef> superTypes = getExtendTypeRefs();
if(superTypes.isEmpty())
{
return EMPTY;
}
List<CSharpResolveContext> contexts = new ArrayList<>(superTypes.size());
for(DotNetTypeRef dotNetTypeRef : superTypes)
{
DotNetTypeResolveResult typeResolveResult = dotNetTypeRef.resolve();
PsiElement resolvedElement = typeResolveResult.getElement();
if(resolvedElement != null && alreadyProcessedItem.add(resolvedElement))
{
DotNetGenericExtractor genericExtractor = typeResolveResult.getGenericExtractor();
contexts.add(CSharpResolveContextUtil.createContext(genericExtractor, myElement.getResolveScope(), resolvedElement, alreadyProcessedItem));
}
}
if(contexts.isEmpty())
{
return EMPTY;
}
return new CSharpCompositeResolveContext(myElement.getProject(), contexts.toArray(new CSharpResolveContext[contexts.size()]));
}
示例3: isValidTypeRef
import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@RequiredReadAction
private boolean isValidTypeRef(DotNetTypeRef typeRef)
{
DotNetTypeResolveResult typeResolveResult = typeRef.resolve();
PsiElement resolvedElement = typeResolveResult.getElement();
if(resolvedElement instanceof CSharpTypeDeclaration)
{
CSharpTypeDeclaration typeDeclaration = (CSharpTypeDeclaration) resolvedElement;
if(typeDeclaration.isEnum())
{
return true;
}
String vmQName = typeDeclaration.getVmQName();
if(ArrayUtil.contains(vmQName, ourSwitchTypes))
{
return true;
}
if(DotNetTypes.System.Nullable$1.equals(vmQName))
{
int genericParametersCount = typeDeclaration.getGenericParametersCount();
if(genericParametersCount > 0)
{
DotNetGenericParameter genericParameter = typeDeclaration.getGenericParameters()[0];
DotNetGenericExtractor genericExtractor = typeResolveResult.getGenericExtractor();
DotNetTypeRef extractedTypRef = genericExtractor.extract(genericParameter);
if(extractedTypRef == null)
{
return false;
}
return isValidTypeRef(extractedTypRef);
}
}
}
return false;
}
示例4: fillFromTypeRef
import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@RequiredReadAction
private static void fillFromTypeRef(DotNetTypeRef ref, Set<PsiElement> map)
{
DotNetTypeResolveResult resolveResult = ref.resolve();
PsiElement element = resolveResult.getElement();
if(element instanceof CSharpTypeDeclaration)
{
map.add(element);
}
if(element instanceof DotNetGenericParameterListOwner)
{
DotNetGenericExtractor genericExtractor = resolveResult.getGenericExtractor();
DotNetGenericParameter[] genericParameters = ((DotNetGenericParameterListOwner) element).getGenericParameters();
for(DotNetGenericParameter genericParameter : genericParameters)
{
DotNetTypeRef extractedTypeRef = genericExtractor.extract(genericParameter);
if(extractedTypeRef != null)
{
fillFromTypeRef(extractedTypeRef, map);
}
}
}
}
示例5: resolveTypeElement
import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@Nullable
@RequiredReadAction
public static Pair<String, DotNetTypeDeclaration> resolveTypeElement(@NotNull DotNetTypeRef typeRef)
{
DotNetTypeResolveResult typeResolveResult = typeRef.resolve();
PsiElement typeResolveResultElement = typeResolveResult.getElement();
if(typeResolveResultElement instanceof DotNetTypeDeclaration)
{
return Pair.create(((DotNetTypeDeclaration) typeResolveResultElement).getVmQName(), (DotNetTypeDeclaration) typeResolveResultElement);
}
return null;
}
示例6: unbox
import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@NotNull
@RequiredReadAction
public static DotNetTypeRef unbox(@NotNull DotNetTypeRef typeRef)
{
DotNetTypeResolveResult typeResolveResult = typeRef.resolve();
PsiElement element = typeResolveResult.getElement();
if(element == null)
{
return typeRef;
}
if(element instanceof CSharpTypeDeclaration && Comparing.equal(((CSharpTypeDeclaration) element).getVmQName(), DotNetTypes.System.Nullable$1))
{
DotNetGenericExtractor genericExtractor = typeResolveResult.getGenericExtractor();
DotNetGenericParameter[] genericParameters = ((CSharpTypeDeclaration) element).getGenericParameters();
if(genericParameters.length == 1)
{
DotNetTypeRef extract = genericExtractor.extract(genericParameters[0]);
if(extract != null)
{
return extract;
}
}
}
return typeRef;
}
示例7: pushTypeArgumentsDeep
import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@RequiredReadAction
private static void pushTypeArgumentsDeep(@NotNull List<Couple<DotNetTypeResolveResult>> levels,
@NotNull DotNetGenericParameter[] expressionGenericParameters,
@NotNull DotNetGenericExtractor expressionExtractor,
@NotNull DotNetGenericExtractor parameterExtractor)
{
for(DotNetGenericParameter expressionGenericParameter : expressionGenericParameters)
{
ProgressManager.checkCanceled();
DotNetTypeRef expressionTypeRefFromGenericParameter = expressionExtractor.extract(expressionGenericParameter);
DotNetTypeRef parameterTypeRefFromGenericParameter = parameterExtractor.extract(expressionGenericParameter);
if(expressionTypeRefFromGenericParameter == null || parameterTypeRefFromGenericParameter == null)
{
continue;
}
DotNetTypeResolveResult exprTypeResult = expressionTypeRefFromGenericParameter.resolve();
DotNetTypeResolveResult paramTypeResult = parameterTypeRefFromGenericParameter.resolve();
// check is type equal 'Genre<System.String>' to 'Genre<T>'
if(exprTypeResult.getElement() instanceof DotNetTypeDeclaration && exprTypeResult.getElement().isEquivalentTo(paramTypeResult.getElement()))
{
levels.add(Couple.of(exprTypeResult, paramTypeResult));
DotNetGenericParameter[] genericParameters = ((DotNetTypeDeclaration) exprTypeResult.getElement()).getGenericParameters();
pushTypeArgumentsDeep(levels, genericParameters, exprTypeResult.getGenericExtractor(), paramTypeResult.getGenericExtractor());
}
}
}
示例8: findIndexOfGeneric
import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@RequiredReadAction
private static int findIndexOfGeneric(DotNetTypeResolveResult parameterTypeResolveResult, DotNetGenericParameter methodGenericParameter)
{
PsiElement parameterElement = parameterTypeResolveResult.getElement();
if(parameterElement instanceof DotNetGenericParameterListOwner)
{
DotNetGenericParameter[] genericParameters = ((DotNetGenericParameterListOwner) parameterElement).getGenericParameters();
if(genericParameters.length == 0)
{
return -1;
}
DotNetGenericExtractor genericExtractor = parameterTypeResolveResult.getGenericExtractor();
for(int i = 0; i < genericParameters.length; i++)
{
DotNetTypeRef extractedTypeRef = genericExtractor.extract(genericParameters[i]);
if(extractedTypeRef == null)
{
continue;
}
DotNetTypeResolveResult extractedTypeResolveResult = extractedTypeRef.resolve();
if(methodGenericParameter.isEquivalentTo(extractedTypeResolveResult.getElement()))
{
return i;
}
}
}
return -1;
}
示例9: findPropertyByName
import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@Nullable
@RequiredReadAction
public static DotNetPropertyDeclaration findPropertyByName(@NotNull final String name, @Nullable String parentQName, @NotNull DotNetTypeRef typeRef)
{
DotNetTypeResolveResult typeResolveResult = typeRef.resolve();
PsiElement resolvedElement = typeResolveResult.getElement();
if(resolvedElement == null)
{
return null;
}
DotNetGenericExtractor genericExtractor = typeResolveResult.getGenericExtractor();
return findPropertyByName(name, resolvedElement, parentQName, genericExtractor);
}
示例10: findMethodByName
import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@Nullable
@RequiredReadAction
public static DotNetMethodDeclaration findMethodByName(@NotNull final String name, @Nullable String parentQName, @NotNull DotNetTypeRef typeRef, int parameterSize)
{
DotNetTypeResolveResult typeResolveResult = typeRef.resolve();
PsiElement resolvedElement = typeResolveResult.getElement();
if(resolvedElement == null)
{
return null;
}
return findMethodByName(name, resolvedElement, parentQName, typeResolveResult.getGenericExtractor(), parameterSize);
}
示例11: actionPerformed
import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@RequiredDispatchThread
@Override
public void actionPerformed(@NotNull AnActionEvent e)
{
PsiElement psiElement = e.getData(CommonDataKeys.PSI_ELEMENT);
if(!(psiElement instanceof DotNetVariable))
{
return;
}
DotNetTypeRef typeRef = ((DotNetVariable) psiElement).toTypeRef(true);
DotNetTypeResolveResult typeResolveResult = typeRef.resolve();
PsiElement element = typeResolveResult.getElement();
if(!(element instanceof DotNetNamedElement))
{
return;
}
DotNetNamedElement extract = GenericUnwrapTool.extract((DotNetNamedElement) element, typeResolveResult.getGenericExtractor());
List<StubBlock> stubBlocks = CSharpStubBuilderVisitor.buildBlocks(extract);
CharSequence text = StubBlockUtil.buildText(stubBlocks);
LightVirtualFile lightVirtualFile = new LightVirtualFile("dummy.cs", CSharpFileType.INSTANCE, text);
OpenFileAction.openFile(lightVirtualFile, psiElement.getProject());
}
示例12: multiResolve
import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@NotNull
@Override
@RequiredReadAction
public ResolveResult[] multiResolve(boolean b)
{
CSharpArrayInitializerOwner arrayInitializerOwner = PsiTreeUtil.getParentOfType(this, CSharpArrayInitializerOwner.class);
if(arrayInitializerOwner instanceof CSharpNewExpressionImpl)
{
DotNetTypeRef typeRef = ((CSharpNewExpressionImpl) arrayInitializerOwner).toTypeRef(false);
if(typeRef == DotNetTypeRef.ERROR_TYPE)
{
return ResolveResult.EMPTY_ARRAY;
}
DotNetTypeResolveResult typeResolveResult = typeRef.resolve();
PsiElement resolvedElement = typeResolveResult.getElement();
if(resolvedElement == null)
{
return ResolveResult.EMPTY_ARRAY;
}
CSharpResolveOptions options = new CSharpResolveOptions(CSharpReferenceExpression.ResolveToKind.METHOD,
new MemberByNameSelector("Add"), this, this, false, true);
CommonProcessors.CollectProcessor<ResolveResult> processor = new CommonProcessors.CollectProcessor<ResolveResult>();
CSharpReferenceExpressionImplUtil.collectResults(options, typeResolveResult.getGenericExtractor(), resolvedElement, processor);
return processor.toArray(ResolveResult.ARRAY_FACTORY);
}
return ResolveResult.EMPTY_ARRAY;
}
示例13: resolveVirtualImplementation
import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@NotNull
@RequiredReadAction
public static Pair<ResolveVirtualImplementResult, PsiElement> resolveVirtualImplementation(@NotNull DotNetVirtualImplementOwner owner, @NotNull PsiElement scope)
{
DotNetType typeForImplement = owner.getTypeForImplement();
if(typeForImplement == null)
{
return Pair.create(ResolveVirtualImplementResult.CANT_HAVE, null);
}
DotNetTypeRef typeRefForImplement = typeForImplement.toTypeRef();
DotNetTypeResolveResult typeResolveResult = typeRefForImplement.resolve();
PsiElement resolvedElement = typeResolveResult.getElement();
DotNetGenericExtractor genericExtractor = typeResolveResult.getGenericExtractor();
if(!(resolvedElement instanceof CSharpTypeDeclaration))
{
return Pair.create(ResolveVirtualImplementResult.CANT_HAVE, null);
}
for(DotNetNamedElement namedElement : ((CSharpTypeDeclaration) resolvedElement).getMembers())
{
namedElement = GenericUnwrapTool.extract(namedElement, genericExtractor);
if(CSharpElementCompareUtil.isEqual(namedElement, owner, scope))
{
return Pair.<ResolveVirtualImplementResult, PsiElement>create(ResolveVirtualImplementResult.FOUND, namedElement);
}
}
return Pair.<ResolveVirtualImplementResult, PsiElement>create(ResolveVirtualImplementResult.NOT_FOUND, null);
}
示例14: buildNullableOperators
import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@NotNull
@RequiredReadAction
private DotNetElement[] buildNullableOperators(@NotNull Project project,
@NotNull GlobalSearchScope resolveScope,
@NotNull DotNetTypeRef selfTypeRef,
@NotNull CSharpTypeDeclaration typeDeclaration,
@NotNull DotNetGenericExtractor extractor,
@NotNull Consumer<PsiElement> consumer)
{
DotNetGenericParameter[] genericParameters = typeDeclaration.getGenericParameters();
if(genericParameters.length == 0)
{
return DotNetElement.EMPTY_ARRAY;
}
DotNetGenericParameter genericParameter = genericParameters[0];
DotNetTypeRef extract = extractor.extract(genericParameter);
if(extract == null)
{
return DotNetElement.EMPTY_ARRAY;
}
DotNetTypeResolveResult typeResolveResult = extract.resolve();
PsiElement typeResolveResultElement = typeResolveResult.getElement();
if(!(typeResolveResultElement instanceof DotNetTypeDeclaration))
{
return DotNetElement.EMPTY_ARRAY;
}
List<DotNetElement> elements = new ArrayList<DotNetElement>();
DotNetTypeDeclaration forAddOperatorsElement = (DotNetTypeDeclaration) typeResolveResultElement;
buildOperators(project, resolveScope, selfTypeRef, forAddOperatorsElement, OperatorStubsLoader.INSTANCE.myTypeOperators.get(forAddOperatorsElement.getVmQName()), consumer);
if(forAddOperatorsElement.isEnum())
{
buildOperators(project, resolveScope, selfTypeRef, forAddOperatorsElement, OperatorStubsLoader.INSTANCE.myEnumOperators, consumer);
}
return ContainerUtil.toArray(elements, DotNetElement.ARRAY_FACTORY);
}
示例15: buildNullableConversionMethods
import consulo.dotnet.resolve.DotNetTypeResolveResult; //导入方法依赖的package包/类
@NotNull
@RequiredReadAction
private DotNetElement[] buildNullableConversionMethods(Project project,
@NotNull DotNetTypeRef selfTypeRef,
GlobalSearchScope resolveScope,
@NotNull CSharpTypeDeclaration typeDeclaration,
@NotNull DotNetGenericExtractor extractor,
@NotNull Consumer<PsiElement> consumer)
{
DotNetGenericParameter[] genericParameters = typeDeclaration.getGenericParameters();
if(genericParameters.length == 0)
{
return DotNetElement.EMPTY_ARRAY;
}
DotNetGenericParameter genericParameter = genericParameters[0];
DotNetTypeRef extract = extractor.extract(genericParameter);
if(extract == null)
{
return DotNetElement.EMPTY_ARRAY;
}
DotNetTypeResolveResult typeResolveResult = extract.resolve();
PsiElement typeResolveResultElement = typeResolveResult.getElement();
if(!(typeResolveResultElement instanceof DotNetTypeDeclaration))
{
return DotNetElement.EMPTY_ARRAY;
}
List<DotNetElement> elements = new ArrayList<DotNetElement>();
DotNetTypeDeclaration forAddOperatorsElement = (DotNetTypeDeclaration) typeResolveResultElement;
buildConversionMethods(project, resolveScope, selfTypeRef, forAddOperatorsElement, OperatorStubsLoader.INSTANCE.myTypeOperators.get(forAddOperatorsElement.getVmQName()), consumer);
if(forAddOperatorsElement.isEnum())
{
buildConversionMethods(project, resolveScope, selfTypeRef, forAddOperatorsElement, OperatorStubsLoader.INSTANCE.myEnumOperators, consumer);
}
return ContainerUtil.toArray(elements, DotNetElement.ARRAY_FACTORY);
}