private static String getStringToReplace(PsiElement element, String newName, boolean nonJava, final RenamePsiElementProcessor theProcessor) { if (element instanceof PsiMetaOwner) { final PsiMetaOwner psiMetaOwner = (PsiMetaOwner)element; final PsiMetaData metaData = psiMetaOwner.getMetaData(); if (metaData != null) { return metaData.getName(); } } if (theProcessor != null) { String result = theProcessor.getQualifiedNameAfterRename(element, newName, nonJava); if (result != null) { return result; } } if (element instanceof PsiNamedElement) { return newName; } else { LOG.error("Unknown element type : " + element); return null; } }
@Override public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException { PsiMetaData metaData = null; if (element instanceof PsiMetaOwner){ final PsiMetaOwner owner = (PsiMetaOwner)element; metaData = owner.getMetaData(); if (metaData instanceof XmlElementDescriptor){ return getTagElement().setName(metaData.getName(getElement())); // TODO: need to evaluate new ns prefix } } else if (element instanceof PsiFile) { final XmlTag tagElement = getTagElement(); if (tagElement == null || !myStartTagFlag) return tagElement; String newElementName = ((PsiFile)element).getName(); final int index = newElementName.lastIndexOf('.'); // TODO: need to evaluate new ns prefix newElementName = prependNamespacePrefix(newElementName.substring(0, index), tagElement.getNamespacePrefix()); return getTagElement().setName(newElementName); } final XmlTag tag = getTagElement(); throw new IncorrectOperationException("Cant bind to not a xml element definition!"+element+","+metaData + "," + tag + "," + (tag != null ? tag.getDescriptor() : "unknown descriptor")); }
private static String getStringToReplace(PsiElement element, String newName, boolean nonJava, final RenamePsiElementProcessor theProcessor) { if (element instanceof PsiMetaOwner) { final PsiMetaOwner psiMetaOwner = (PsiMetaOwner)element; final PsiMetaData metaData = psiMetaOwner.getMetaData(); if (metaData != null) { return metaData.getName(); } } if (theProcessor != null) { String result = theProcessor.getQualifiedNameAfterRename(element, newName, nonJava); if (result != null) { return result; } } if (element instanceof PsiNamedElement) { return newName; } else { LOG.error("Unknown element type"); return null; } }
public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException { PsiMetaData metaData = null; if (element instanceof PsiMetaOwner){ final PsiMetaOwner owner = (PsiMetaOwner)element; metaData = owner.getMetaData(); if (metaData instanceof XmlElementDescriptor){ return getTagElement().setName(metaData.getName(getElement())); // TODO: need to evaluate new ns prefix } } else if (element instanceof PsiFile) { final XmlTag tagElement = getTagElement(); if (tagElement == null || !myStartTagFlag) return tagElement; String newElementName = ((PsiFile)element).getName(); final int index = newElementName.lastIndexOf('.'); // TODO: need to evaluate new ns prefix newElementName = prependNamespacePrefix(newElementName.substring(0, index), tagElement.getNamespacePrefix()); return getTagElement().setName(newElementName); } final XmlTag tag = getTagElement(); throw new IncorrectOperationException("Cant bind to not a xml element definition!"+element+","+metaData + "," + tag + "," + (tag != null ? tag.getDescriptor() : "unknown descriptor")); }
@Nullable private XmlNSDescriptor getNSDescriptorFromMetaData(@Nullable PsiMetaOwner metaOwner, boolean nonEmpty) { if(metaOwner == null) { return null; } XmlNSDescriptor descriptor = (XmlNSDescriptor) metaOwner.getMetaData(); if(descriptor == null) { return null; } if(nonEmpty && descriptor.getRootElementsDescriptors(this).length == 0) { return null; } return descriptor; }
@Override public boolean canFindUsagesFor(@NotNull PsiElement element) { if(element instanceof PsiDirectory) { PsiPackage psiPackage = JavaDirectoryService.getInstance().getPackage((PsiDirectory) element); return psiPackage != null && psiPackage.getQualifiedName().length() != 0; } return element instanceof PsiClass || element instanceof PsiVariable || element instanceof PsiMethod || element instanceof PsiPackage || element instanceof PsiLabeledStatement || ThrowSearchUtil.isSearchable(element) || element instanceof PsiMetaOwner && ((PsiMetaOwner) element).getMetaData() != null; }
public static boolean checkName(@NotNull PsiElement element, @NotNull String name, final PsiElement context) { if (element instanceof PsiMetaOwner) { final PsiMetaData data = ((PsiMetaOwner) element).getMetaData(); if (data != null) return name.equals(data.getName(context)); } return element instanceof PsiNamedElement && name.equals(((PsiNamedElement)element).getName()); }
@Override public boolean canFindUsagesFor(@NotNull PsiElement element) { if (element instanceof PsiDirectory) { PsiPackage psiPackage = JavaDirectoryService.getInstance().getPackage((PsiDirectory)element); return psiPackage != null && psiPackage.getQualifiedName().length() != 0; } return element instanceof PsiClass || element instanceof PsiVariable || element instanceof PsiMethod || element instanceof PsiPackage || element instanceof PsiLabeledStatement || ThrowSearchUtil.isSearchable(element) || element instanceof PsiMetaOwner && ((PsiMetaOwner)element).getMetaData() != null; }
public Self withMetaData(final ElementPattern<? extends PsiMetaData> metaDataPattern) { return with(new PatternCondition<T>("withMetaData") { @Override public boolean accepts(@NotNull final T t, final ProcessingContext context) { return t instanceof PsiMetaOwner && metaDataPattern.accepts(((PsiMetaOwner)t).getMetaData(), context); } }); }
/** * @return name for element using element structure info */ @Nullable public static String getName(PsiElement element) { String name = null; if (element instanceof PsiMetaOwner) { final PsiMetaData data = ((PsiMetaOwner) element).getMetaData(); if (data != null) { name = data.getName(element); } } if (name == null && element instanceof PsiNamedElement) { name = ((PsiNamedElement) element).getName(); } return name; }
@Override public String getElementDescription(@NotNull final PsiElement psiElement, @NotNull final ElementDescriptionLocation location) { if (!(location instanceof UsageViewTypeLocation)) return null; if (psiElement instanceof PsiMetaOwner) { final PsiMetaData metaData = ((PsiMetaOwner)psiElement).getMetaData(); if (metaData instanceof PsiPresentableMetaData) { return ((PsiPresentableMetaData)metaData).getTypeName(); } } if (psiElement instanceof PsiFile) { return LangBundle.message("terms.file"); } if (psiElement instanceof PsiDirectory) { return LangBundle.message("terms.directory"); } final Language lang = psiElement.getLanguage(); FindUsagesProvider provider = LanguageFindUsages.INSTANCE.forLanguage(lang); final String type = provider.getType(psiElement); if (StringUtil.isNotEmpty(type)) { return type; } return TypePresentationService.getService().getTypePresentableName(psiElement.getClass()); }
@Override public String getElementDescription(@NotNull final PsiElement element, @NotNull final ElementDescriptionLocation location) { if (!(location instanceof UsageViewShortNameLocation)) return null; if (element instanceof PsiMetaOwner) { PsiMetaData metaData = ((PsiMetaOwner)element).getMetaData(); if (metaData!=null) return DescriptiveNameUtil.getMetaDataName(metaData); } if (element instanceof PsiNamedElement) { return ((PsiNamedElement)element).getName(); } return ""; }
private void update(PsiElement element) { if (element != null && element.isValid()) { final ItemPresentation presentation = ((NavigationItem)element).getPresentation(); myIconOpen = presentation == null ? null : ComputableIcon.create(presentation, true); myIconClosed = presentation == null ? null : ComputableIcon.create(presentation, false); myPresentableText = presentation == null ? UsageViewUtil.createNodeText(element) : presentation.getPresentableText(); if (myIconOpen == null || myIconClosed == null) { if (element instanceof PsiMetaOwner) { final PsiMetaOwner psiMetaOwner = (PsiMetaOwner)element; final PsiMetaData metaData = psiMetaOwner.getMetaData(); if (metaData instanceof PsiPresentableMetaData) { final PsiPresentableMetaData psiPresentableMetaData = (PsiPresentableMetaData)metaData; if (myIconOpen == null) myIconOpen = ComputableIcon.create(psiPresentableMetaData); if (myIconClosed == null) myIconClosed = ComputableIcon.create(psiPresentableMetaData); } } else if (element instanceof PsiFile) { final PsiFile psiFile = (PsiFile)element; final VirtualFile virtualFile = psiFile.getVirtualFile(); if (virtualFile != null) { myIconOpen = ComputableIcon.create(virtualFile); myIconClosed = ComputableIcon.create(virtualFile); } } } } }
@Override public String getElementDescription(@NotNull final PsiElement element, @NotNull final ElementDescriptionLocation location) { if (!(location instanceof NonCodeSearchDescriptionLocation)) return null; final NonCodeSearchDescriptionLocation ncdLocation = (NonCodeSearchDescriptionLocation)location; if (element instanceof PsiDirectory) { if (ncdLocation.isNonJava()) { final String qName = PsiDirectoryFactory.getInstance(element.getProject()).getQualifiedName((PsiDirectory)element, false); if (qName.length() > 0) return qName; return null; } return ((PsiDirectory) element).getName(); } if (element instanceof PsiMetaOwner) { final PsiMetaOwner psiMetaOwner = (PsiMetaOwner)element; final PsiMetaData metaData = psiMetaOwner.getMetaData(); if (metaData != null) { return metaData.getName(); } } if (element instanceof PsiNamedElement) { return ((PsiNamedElement)element).getName(); } else { // LOG.error("Unknown element type: " + element); return null; } }
@Override public SuggestedNameInfo getSuggestedNames(final PsiElement element, final PsiElement nameSuggestionContext, final Set<String> result) { if (element instanceof PsiMetaOwner) { final PsiMetaData psiMetaData = ((PsiMetaOwner)element).getMetaData(); if (psiMetaData instanceof DomMetaData) { final DomMetaData domMetaData = (DomMetaData)psiMetaData; final GenericDomValue value = domMetaData.getNameElement(domMetaData.getElement()); ContainerUtil.addIfNotNull(getNameFromNameValue(value, true), result); } } return null; }
@Nullable private PsiMetaOwner retrieveOwner(final XmlFile file, @NotNull final String namespace) { if (file == null) { return namespace.equals(XmlUtil.getTargetSchemaNsFromTag(this)) ? this : null; } return file.getDocument(); }
@Nullable private XmlNSDescriptor getNSDescriptorFromMetaData(@Nullable PsiMetaOwner metaOwner, boolean nonEmpty) { if (metaOwner == null) return null; XmlNSDescriptor descriptor = (XmlNSDescriptor)metaOwner.getMetaData(); if (descriptor == null) return null; if (nonEmpty && descriptor.getRootElementsDescriptors(this).length == 0) { return null; } return descriptor; }
@Override public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException { if (element instanceof PsiMetaOwner) { final PsiMetaOwner owner = (PsiMetaOwner)element; if (owner.getMetaData() instanceof XmlElementDescriptor) { myAttribute.setName(owner.getMetaData().getName()); } } throw new IncorrectOperationException("Cant bind to not a xml element definition!"); }
@Override @NotNull public Object[] getVariants() { final RngGrammar scope = getScope(); if (scope == null) { return ResolveResult.EMPTY_ARRAY; } final Map<String, Set<Define>> map = DefinitionResolver.getAllVariants(scope); if (map == null || map.size() == 0) return ArrayUtil.EMPTY_OBJECT_ARRAY; return ContainerUtil.mapNotNull(map.values(), new Function<Set<Define>, Object>() { @Override public Object fun(Set<Define> defines) { final Define define = defines.iterator().next(); if (defines.size() == 0) { return null; } else { final PsiElement element = define.getPsiElement(); if (element != null) { final PsiPresentableMetaData data = (PsiPresentableMetaData)((PsiMetaOwner)element).getMetaData(); if (data != null) { return LookupValueFactory.createLookupValue(data.getName(), data.getIcon()); } else { return define.getName(); } } else { return define.getName(); } } } }).toArray(); }
public ValueResourceElementWrapper(@NotNull XmlAttributeValue wrappeeElement) { if (!(wrappeeElement instanceof NavigationItem)) { throw new IllegalArgumentException(); } if (!(wrappeeElement instanceof PsiMetaOwner)) { throw new IllegalArgumentException(); } myWrappee = wrappeeElement; final PsiFile file = getContainingFile(); myFileName = file != null ? file.getName() : null; final PsiDirectory dir = file != null ? file.getContainingDirectory() : null; myDirName = dir != null ? dir.getName() : null; }
public void update() { final PsiElement element = getElement(); if (element != null && element.isValid()) { final ItemPresentation presentation = ((NavigationItem)element).getPresentation(); myIconOpen = presentation != null ? ComputableIcon.create(presentation, true) : null; myIconClosed = presentation != null ? ComputableIcon.create(presentation, false) : null; myPresentableText = presentation != null ? presentation.getPresentableText() : UsageViewUtil.createNodeText(element); if (myIconOpen == null || myIconClosed == null) { if (element instanceof PsiMetaOwner) { final PsiMetaOwner psiMetaOwner = (PsiMetaOwner)element; final PsiMetaData metaData = psiMetaOwner.getMetaData(); if (metaData instanceof PsiPresentableMetaData) { final PsiPresentableMetaData psiPresentableMetaData = (PsiPresentableMetaData)metaData; if (myIconOpen == null) myIconOpen = ComputableIcon.create(psiPresentableMetaData); if (myIconClosed == null) myIconClosed = ComputableIcon.create(psiPresentableMetaData); } } else if (element instanceof PsiFile) { final PsiFile psiFile = (PsiFile)element; final VirtualFile virtualFile = psiFile.getVirtualFile(); if (virtualFile != null) { myIconOpen = ComputableIcon.create(virtualFile); myIconClosed = ComputableIcon.create(virtualFile); } } } } }
public SuggestedNameInfo getSuggestedNames(final PsiElement element, final PsiElement nameSuggestionContext, final Set<String> result) { if (element instanceof PsiMetaOwner) { final PsiMetaData psiMetaData = ((PsiMetaOwner)element).getMetaData(); if (psiMetaData instanceof DomMetaData) { final DomMetaData domMetaData = (DomMetaData)psiMetaData; final GenericDomValue value = domMetaData.getNameElement(domMetaData.getElement()); ContainerUtil.addIfNotNull(getNameFromNameValue(value, true), result); } } return null; }
@Nullable private PsiMetaOwner retrieveOwner(final XmlFile file, final String namespace) { if (file == null) { return namespace.equals(XmlUtil.getTargetSchemaNsFromTag(this)) ? this : null; } return file.getDocument(); }
public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException { if (element instanceof PsiMetaOwner) { final PsiMetaOwner owner = (PsiMetaOwner)element; if (owner.getMetaData() instanceof XmlElementDescriptor) { myAttribute.setName(owner.getMetaData().getName()); } } throw new IncorrectOperationException("Cant bind to not a xml element definition!"); }
@NotNull public Object[] getVariants() { final RngGrammar scope = getScope(); if (scope == null) { return ResolveResult.EMPTY_ARRAY; } final Map<String, Set<Define>> map = DefinitionResolver.getAllVariants(scope); if (map == null || map.size() == 0) return ArrayUtil.EMPTY_OBJECT_ARRAY; return ContainerUtil.mapNotNull(map.values(), new Function<Set<Define>, Object>() { public Object fun(Set<Define> defines) { final Define define = defines.iterator().next(); if (defines.size() == 0) { return null; } else { final PsiElement element = define.getPsiElement(); if (element != null) { final PsiPresentableMetaData data = (PsiPresentableMetaData)((PsiMetaOwner)element).getMetaData(); if (data != null) { return LookupValueFactory.createLookupValue(data.getName(), data.getIcon()); } else { return define.getName(); } } else { return define.getName(); } } } }).toArray(); }
public Self withMetaData(final ElementPattern<? extends PsiMetaData> metaDataPattern) { return with(new PatternCondition<T>("withMetaData") { @Override public boolean accepts(@Nonnull final T t, final ProcessingContext context) { return t instanceof PsiMetaOwner && metaDataPattern.accepts(((PsiMetaOwner)t).getMetaData(), context); } }); }
@Override public String getElementDescription(@Nonnull final PsiElement element, @Nonnull final ElementDescriptionLocation location) { if (!(location instanceof UsageViewShortNameLocation)) return null; if (element instanceof PsiMetaOwner) { PsiMetaData metaData = ((PsiMetaOwner)element).getMetaData(); if (metaData!=null) return DescriptiveNameUtil.getMetaDataName(metaData); } if (element instanceof PsiNamedElement) { return ((PsiNamedElement)element).getName(); } return ""; }
@Override public String getElementDescription(@Nonnull final PsiElement psiElement, @Nonnull final ElementDescriptionLocation location) { if (!(location instanceof UsageViewTypeLocation)) return null; if (psiElement instanceof PsiMetaOwner) { final PsiMetaData metaData = ((PsiMetaOwner)psiElement).getMetaData(); if (metaData instanceof PsiPresentableMetaData) { return ((PsiPresentableMetaData)metaData).getTypeName(); } } if (psiElement instanceof PsiFile) { return LangBundle.message("terms.file"); } if (psiElement instanceof PsiDirectory) { return LangBundle.message("terms.directory"); } final Language lang = psiElement.getLanguage(); FindUsagesProvider provider = LanguageFindUsages.INSTANCE.forLanguage(lang); final String type = provider.getType(psiElement); if (StringUtil.isNotEmpty(type)) { return type; } return TypePresentationService.getInstance().getTypePresentableName(psiElement.getClass()); }
@Override public String getElementDescription(@Nonnull final PsiElement element, @Nonnull final ElementDescriptionLocation location) { if (!(location instanceof NonCodeSearchDescriptionLocation)) return null; final NonCodeSearchDescriptionLocation ncdLocation = (NonCodeSearchDescriptionLocation)location; if (element instanceof PsiDirectory) { if (ncdLocation.isNonJava()) { final String qName = PsiPackageHelper.getInstance(element.getProject()).getQualifiedName((PsiDirectory)element, false); if (qName.length() > 0) return qName; return null; } return ((PsiDirectory) element).getName(); } if (element instanceof PsiMetaOwner) { final PsiMetaOwner psiMetaOwner = (PsiMetaOwner)element; final PsiMetaData metaData = psiMetaOwner.getMetaData(); if (metaData != null) { return metaData.getName(); } } if (element instanceof PsiNamedElement) { return ((PsiNamedElement)element).getName(); } else { // LOG.error("Unknown element type: " + element); return null; } }