@Nullable private static String getRepositoryId(ConvertContext context) { MavenDomRepositoryBase repository = context.getInvocationElement().getParentOfType(MavenDomRepositoryBase.class, false); if (repository != null) return repository.getId().getStringValue(); return null; }
@Nullable private static LanguageDefinition createAnyLanguageDefinition(ConvertContext context) { final PsiClass languageClass = DomJavaUtil.findClass(Language.class.getName(), context.getInvocationElement()); if (languageClass == null) return null; String anyLanguageId = calculateAnyLanguageId(context); return new LanguageDefinition( anyLanguageId, languageClass, AllIcons.FileTypes.Any_type, "<any language>"); }
public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) { GenericDomValue el = (GenericDomValue) myContext.getInvocationElement(); MavenId id = MavenArtifactCoordinatesHelper.getId(myContext); MavenProjectsManager manager = MavenProjectsManager.getInstance(project); MavenProject parentFile = manager.findProject(id); if (parentFile != null) { VirtualFile currentFile = myContext.getFile().getVirtualFile(); el.setStringValue( MavenDomUtil.calcRelativePath(currentFile.getParent(), parentFile.getFile())); } }
private static String calculateAnyLanguageId(ConvertContext context) { final Extension extension = context.getInvocationElement().getParentOfType(Extension.class, true); if (extension == null) { return ANY_LANGUAGE_DEFAULT_ID; } final ExtensionPoint extensionPoint = extension.getExtensionPoint(); if (extensionPoint == null) { return ANY_LANGUAGE_DEFAULT_ID; } final GenericAttributeValue<PsiClass> epBeanClass = extensionPoint.getBeanClass(); if (CompletionContributorEP.class.getName().equals(epBeanClass.getStringValue())) { return "any"; } return ANY_LANGUAGE_DEFAULT_ID; }
private static List<LanguageDefinition> collectLibraryLanguages( final ConvertContext context, final Collection<PsiClass> allLanguages) { return ContainerUtil.mapNotNull( Language.getRegisteredLanguages(), (NullableFunction<Language, LanguageDefinition>) language -> { if (language.getID().isEmpty() || language instanceof DependentLanguage) { return null; } final PsiClass psiClass = DomJavaUtil.findClass( language.getClass().getName(), context.getInvocationElement(), true); if (psiClass == null || !allLanguages.contains(psiClass)) { return null; } final LanguageFileType type = language.getAssociatedFileType(); final Icon icon = type != null ? type.getIcon() : null; return new LanguageDefinition( language.getID(), psiClass, icon, language.getDisplayName()); }); }
public static <T> T getImmediateParent(ConvertContext context, Class<T> clazz) { DomElement parentElement = context.getInvocationElement().getParent(); return clazz.isInstance(parentElement) ? (T) parentElement : null; }