com.intellij.psi.xml.XmlTag#getParentTag ( )源码实例Demo

下面列出了com.intellij.psi.xml.XmlTag#getParentTag ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: mule-intellij-plugins   文件: MuleConfigUtils.java
public static boolean isInTopLevelTag(XmlTag tag) {
    boolean inTopLevel = false;
    XmlTag current = tag;

    while (!inTopLevel && current != null) {
        inTopLevel = MuleConfigUtils.isTopLevelTag(current);
        if (!inTopLevel)
            current = current.getParentTag();
    }

    return inTopLevel;
}
 
源代码2 项目: mule-intellij-plugins   文件: MuleConfigUtils.java
public static String getMulePath(XmlTag tag) {
    final LinkedList<XmlTag> elements = new LinkedList<>();
    while (!isMuleTag(tag)) {
        elements.push(tag);
        tag = tag.getParentTag();
    }
    String path = "";
    for (int i = 0; i < elements.size(); i++) {
        final XmlTag element = elements.get(i);
        switch (i) {
            case 0: {
                final XmlAttribute name = element.getAttribute(MuleConfigConstants.NAME_ATTRIBUTE);
                if (name != null) {
                    path = "/" + MulePathUtils.escape(name.getValue()) + getGlobalElementCategory(element);
                }
                break;
            }
            default: {
                final XmlTag parentTag = element.getParentTag();
                int index = 0;
                for (XmlTag xmlTag : parentTag.getSubTags()) {
                    if (xmlTag == element) {
                        break;
                    }
                    final MuleElementType muleElementType = getMuleElementTypeFromXmlElement(xmlTag);
                    if (muleElementType == MuleElementType.MESSAGE_PROCESSOR) {
                        index = index + 1;
                    }
                }
                path = path + "/" + index;
            }
        }
    }
    System.out.println("path = " + path);
    return path;
}
 
源代码3 项目: camel-idea-plugin   文件: XmlCamelIdeaUtils.java
private boolean isCamelRouteStartTag(XmlTag tag) {
    String name = tag.getLocalName();
    XmlTag parentTag = tag.getParentTag();
    if (parentTag != null) {
        //TODO: unsure about this, <rest> cannot be a child of <routes> according to blueprint xsd, see issue #475
        return "routes".equals(parentTag.getLocalName()) && "rest".equals(name)
            || "route".equals(parentTag.getLocalName()) && "from".equals(name);
    }
    return false;
}
 
源代码4 项目: camel-idea-plugin   文件: BeanUtils.java
public PsiClass getPropertyBeanClass(XmlTag propertyTag) {
    XmlTag beanTag = propertyTag.getParentTag();
    if (beanTag != null && isBeanDeclaration(beanTag)) {
        IdeaUtils ideaUtils = IdeaUtils.getService();
        JavaClassUtils javaClassUtils = JavaClassUtils.getService();
        return ideaUtils.findAttributeValue(beanTag, "class")
                .map(javaClassUtils::findClassReference)
                .map(javaClassUtils::resolveClassReference)
                .orElse(null);
    }
    return null;
}
 
@Override
public boolean isAvailable(@NotNull Project project, Editor editor, @NotNull PsiElement element) {
    if (ServiceManager.getService(project, CamelService.class).isCamelPresent()) {
        // special for xml
        XmlTag xml = PsiTreeUtil.getParentOfType(element, XmlTag.class);
        if (xml != null) {
            // special check for poll enrich where we add the endpoint on a child node (camel expression)
            XmlTag parent = xml.getParentTag();
            if (parent != null && parent.getLocalName().equals("pollEnrich")) {
                return true;
            }
        }

        String text = null;

        // special for java token
        if (element instanceof PsiJavaToken) {
            // if its a string literal
            PsiJavaToken token = (PsiJavaToken) element;
            if (token.getTokenType() == JavaTokenType.STRING_LITERAL) {
                text = getIdeaUtils().getInnerText(token.getText());
            }
        } else {
            // should be a literal element and therefore dont fallback to generic
            text = getIdeaUtils().extractTextFromElement(element, false, false, true);
        }

        return text != null && text.trim().isEmpty();
    }

    return false;
}
 
@Override
public XmlElementDescriptor getElementDescriptor(XmlTag childTag, XmlTag contextTag) {
    XmlTag parent = contextTag.getParentTag();
    if (parent == null) return null;
    final XmlNSDescriptor descriptor = parent.getNSDescriptor(childTag.getNamespace(), true);
    return descriptor == null ? null : descriptor.getElementDescriptor(childTag);
}
 
@Override
public XmlElementDescriptor getElementDescriptor(XmlTag childTag, XmlTag contextTag) {
    XmlTag parent = contextTag.getParentTag();
    if (parent == null) return null;
    final XmlNSDescriptor descriptor = parent.getNSDescriptor(childTag.getNamespace(), true);
    return descriptor == null ? null : descriptor.getElementDescriptor(childTag);
}
 
@Override
public XmlElementDescriptor getElementDescriptor(XmlTag childTag, XmlTag contextTag) {
    XmlTag parent = contextTag.getParentTag();
    if (parent == null) return null;
    final XmlNSDescriptor descriptor = parent.getNSDescriptor(childTag.getNamespace(), true);
    return descriptor == null ? null : descriptor.getElementDescriptor(childTag);
}
 
源代码9 项目: intellij-demandware   文件: ISMLTagDescriptor.java
@Override
public XmlElementDescriptor getElementDescriptor(XmlTag childTag, XmlTag contextTag) {
    XmlTag parent = contextTag.getParentTag();
    if (parent == null) return null;
    final XmlNSDescriptor descriptor = parent.getNSDescriptor(childTag.getNamespace(), true);
    return descriptor == null ? null : descriptor.getElementDescriptor(childTag);
}
 
@Override
public XmlElementDescriptor getElementDescriptor(XmlTag childTag, XmlTag contextTag) {
    XmlTag parent = contextTag.getParentTag();
    if (parent == null) return null;
    final XmlNSDescriptor descriptor = parent.getNSDescriptor(childTag.getNamespace(), true);
    return descriptor == null ? null : descriptor.getElementDescriptor(childTag);
}
 
@Override
public XmlElementDescriptor getElementDescriptor(XmlTag childTag, XmlTag contextTag) {
    XmlTag parent = contextTag.getParentTag();
    if (parent == null) return null;
    final XmlNSDescriptor descriptor = parent.getNSDescriptor(childTag.getNamespace(), true);
    return descriptor == null ? null : descriptor.getElementDescriptor(childTag);
}
 
@Override
public XmlElementDescriptor getElementDescriptor(XmlTag childTag, XmlTag contextTag) {
    XmlTag parent = contextTag.getParentTag();
    if (parent == null) return null;
    final XmlNSDescriptor descriptor = parent.getNSDescriptor(childTag.getNamespace(), true);
    return descriptor == null ? null : descriptor.getElementDescriptor(childTag);
}
 
源代码13 项目: camel-idea-plugin   文件: IdeaUtils.java
/**
 * Is the given element from a XML tag with any of the given tag names
 *
 * @param xml  the xml tag
 * @param parentTag a special parent tag name to match first
 * @return <tt>true</tt> if matched, <tt>false</tt> otherwise
 */
public boolean hasParentXmlTag(@NotNull XmlTag xml, @NotNull String parentTag) {
    XmlTag parent = xml.getParentTag();
    return parent != null && parent.getLocalName().equals(parentTag);
}