类com.intellij.psi.PsiNewExpression源码实例Demo

下面列出了怎么用com.intellij.psi.PsiNewExpression的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: IntelliJDeodorant   文件: PDGObjectSliceUnion.java
private boolean duplicatedSliceNodeWithClassInstantiationHasDependenceOnRemovableNode() {
    Set<PDGNode> duplicatedNodes = new LinkedHashSet<>(sliceNodes);
    duplicatedNodes.retainAll(indispensableNodes);
    for (PDGNode duplicatedNode : duplicatedNodes) {
        if (duplicatedNode.containsClassInstanceCreation()) {
            Map<PsiVariable, PsiNewExpression> classInstantiations = duplicatedNode.getClassInstantiations();
            for (PsiVariable variableDeclaration : classInstantiations.keySet()) {
                for (GraphEdge edge : duplicatedNode.outgoingEdges) {
                    PDGDependence dependence = (PDGDependence) edge;
                    if (subgraph.edgeBelongsToBlockBasedRegion(dependence) && dependence != null) {
                        PDGNode dstPDGNode = (PDGNode) dependence.dst;
                        if (removableNodes.contains(dstPDGNode)) {
                            if (dstPDGNode.changesStateOfReference(variableDeclaration)
                                    || dstPDGNode.assignsReference(variableDeclaration)
                                    || dstPDGNode.accessesReference(variableDeclaration))
                                return true;
                        }
                    }
                }
            }
        }
    }
    return false;
}
 
源代码2 项目: IntelliJDeodorant   文件: PDGSliceUnion.java
private boolean duplicatedSliceNodeWithClassInstantiationHasDependenceOnRemovableNode() {
    Set<PDGNode> duplicatedNodes = new LinkedHashSet<>(sliceNodes);
    duplicatedNodes.retainAll(indispensableNodes);
    for (PDGNode duplicatedNode : duplicatedNodes) {
        if (duplicatedNode.containsClassInstanceCreation()) {
            Map<PsiVariable, PsiNewExpression> classInstantiations = duplicatedNode.getClassInstantiations();
            for (PsiVariable variableDeclaration : classInstantiations.keySet()) {
                for (GraphEdge edge : duplicatedNode.outgoingEdges) {
                    PDGDependence dependence = (PDGDependence) edge;
                    if (subgraph.edgeBelongsToBlockBasedRegion(dependence) && dependence != null) {
                        PDGNode dstPDGNode = (PDGNode) dependence.dst;
                        if (removableNodes.contains(dstPDGNode)) {
                            if (dstPDGNode.changesStateOfReference(variableDeclaration)
                                    || dstPDGNode.assignsReference(variableDeclaration)
                                    || dstPDGNode.accessesReference(variableDeclaration))
                                return true;
                        }
                    }
                }
            }
        }
    }
    return false;
}
 
源代码3 项目: KodeBeagle   文件: PsiJavaElementVisitor.java
private void visitExpression(final PsiElement element) {
    if (element.getNode().getElementType().equals(JavaElementType.NEW_EXPRESSION)) {
        visitPsiNewExpression((PsiNewExpression) element);
    } else if (element.getNode().getElementType().
            equals(JavaElementType.METHOD_CALL_EXPRESSION)) {
        visitPsiMethodCallExpression((PsiMethodCallExpression) element);
    } else if (element.getNode().getElementType().
            equals(JavaElementType.ASSIGNMENT_EXPRESSION)) {
        visitPsiAssignmentExpression((PsiAssignmentExpression) element);
    } else if (element.getNode().getElementType().
            equals(JavaElementType.REFERENCE_EXPRESSION)) {
        visitPsiReferenceExpression((PsiReferenceExpression) element);
    }
}
 
源代码4 项目: KodeBeagle   文件: PsiJavaElementVisitor.java
private void visitPsiNewExpression(final PsiNewExpression element) {
    if (element.getType() != null) {
        PsiType psiType = element.getType();
        if (psiType != null && !ClassUtils.isPrimitive(psiType)) {
            String type = removeSpecialSymbols(psiType.getCanonicalText());
            addInMap(type, emptySet);
        }
    }
}
 
@Override public boolean shouldShow(Usage usage) {
  PsiElement element = ((UsageInfo2UsageAdapter) usage).getElement();
  if (element.getParent() instanceof PsiNewExpression) {
    PsiMethod method = PsiConsultantImpl.findMethod(element);
    return !SubscriberMetadata.isAnnotatedWithProducer(method);
  }
  return false;
}
 
源代码6 项目: IntelliJDeodorant   文件: ArrayCreationObject.java
public void setArrayCreation(PsiNewExpression creation) {
    this.creation = toPointer(creation);
}
 
public boolean instanceOf(PsiExpression expression) {
	return expression instanceof PsiNewExpression;
}
 
public boolean instanceOf(PsiExpression expression) {
	return expression instanceof PsiNewExpression;
}
 
public PsiNewExpression getClassInstanceCreation() {
    return (PsiNewExpression) this.creation.getElement();
}
 
 类所在包
 类方法
 同包方法