当前位置: 首页>>代码示例>>Java>>正文


Java PropertyUtil.findPropertyGetterWithType方法代码示例

本文整理汇总了Java中com.intellij.psi.util.PropertyUtil.findPropertyGetterWithType方法的典型用法代码示例。如果您正苦于以下问题:Java PropertyUtil.findPropertyGetterWithType方法的具体用法?Java PropertyUtil.findPropertyGetterWithType怎么用?Java PropertyUtil.findPropertyGetterWithType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.intellij.psi.util.PropertyUtil的用法示例。


在下文中一共展示了PropertyUtil.findPropertyGetterWithType方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getSecondaryElements

import com.intellij.psi.util.PropertyUtil; //导入方法依赖的package包/类
@Override
@NotNull
public PsiElement[] getSecondaryElements() {
  PsiElement element = getPsiElement();
  if (ApplicationManager.getApplication().isUnitTestMode()) return PsiElement.EMPTY_ARRAY;
  if (element instanceof PsiField) {
    final PsiField field = (PsiField)element;
    PsiClass containingClass = field.getContainingClass();
    if (containingClass != null) {
      String fieldName = field.getName();
      final String propertyName = JavaCodeStyleManager.getInstance(getProject()).variableNameToPropertyName(fieldName, VariableKind.FIELD);
      Set<PsiMethod> accessors = new THashSet<PsiMethod>();
      boolean isStatic = field.hasModifierProperty(PsiModifier.STATIC);
      PsiMethod getter = PropertyUtil.findPropertyGetterWithType(propertyName, isStatic, field.getType(),
                                   ContainerUtil.iterate(containingClass.getMethods()));
      if (getter != null) accessors.add(getter);
      PsiMethod setter = PropertyUtil.findPropertySetterWithType(propertyName, isStatic, field.getType(),
                                   ContainerUtil.iterate(containingClass.getMethods()));
      if (setter != null) accessors.add(setter);
      accessors.addAll(PropertyUtil.getAccessors(containingClass, fieldName));
      if (!accessors.isEmpty()) {
        boolean containsPhysical = ContainerUtil.find(accessors, new Condition<PsiMethod>() {
          @Override
          public boolean value(PsiMethod psiMethod) {
            return psiMethod.isPhysical();
          }
        }) != null;
        final boolean doSearch = !containsPhysical ||
                                 Messages.showOkCancelDialog(FindBundle.message("find.field.accessors.prompt", fieldName),
                                                             FindBundle.message("find.field.accessors.title"),
                                                             CommonBundle.getYesButtonText(),
                                                             CommonBundle.getNoButtonText(), Messages.getQuestionIcon()) ==
                                 Messages.OK;
        if (doSearch) {
          final Set<PsiElement> elements = new THashSet<PsiElement>();
          for (PsiMethod accessor : accessors) {
            ContainerUtil.addAll(elements, SuperMethodWarningUtil.checkSuperMethods(accessor, ACTION_STRING));
          }
          return PsiUtilCore.toPsiElementArray(elements);
        }
      }
    }
  }
  return super.getSecondaryElements();
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:46,代码来源:JavaFindUsagesHandler.java

示例2: getSecondaryElements

import com.intellij.psi.util.PropertyUtil; //导入方法依赖的package包/类
@Override
@NotNull
public PsiElement[] getSecondaryElements()
{
	PsiElement element = getPsiElement();
	if(ApplicationManager.getApplication().isUnitTestMode())
	{
		return PsiElement.EMPTY_ARRAY;
	}
	if(element instanceof PsiField)
	{
		final PsiField field = (PsiField) element;
		PsiClass containingClass = field.getContainingClass();
		if(containingClass != null)
		{
			String fieldName = field.getName();
			final String propertyName = JavaCodeStyleManager.getInstance(getProject()).variableNameToPropertyName
					(fieldName, VariableKind.FIELD);
			Set<PsiMethod> accessors = new THashSet<PsiMethod>();
			boolean isStatic = field.hasModifierProperty(PsiModifier.STATIC);
			PsiMethod getter = PropertyUtil.findPropertyGetterWithType(propertyName, isStatic, field.getType(),
					ContainerUtil.iterate(containingClass.getMethods()));
			if(getter != null)
			{
				accessors.add(getter);
			}
			PsiMethod setter = PropertyUtil.findPropertySetterWithType(propertyName, isStatic, field.getType(),
					ContainerUtil.iterate(containingClass.getMethods()));
			if(setter != null)
			{
				accessors.add(setter);
			}
			accessors.addAll(PropertyUtil.getAccessors(containingClass, fieldName));
			if(!accessors.isEmpty())
			{
				boolean containsPhysical = ContainerUtil.find(accessors, new Condition<PsiMethod>()
				{
					@Override
					public boolean value(PsiMethod psiMethod)
					{
						return psiMethod.isPhysical();
					}
				}) != null;
				final boolean doSearch = !containsPhysical || Messages.showOkCancelDialog(FindBundle.message("find" +
						".field.accessors.prompt", fieldName), FindBundle.message("find.field.accessors.title"),
						CommonBundle.getYesButtonText(), CommonBundle.getNoButtonText(),
						Messages.getQuestionIcon()) == Messages.OK;
				if(doSearch)
				{
					final Set<PsiElement> elements = new THashSet<PsiElement>();
					for(PsiMethod accessor : accessors)
					{
						ContainerUtil.addAll(elements, SuperMethodWarningUtil.checkSuperMethods(accessor,
								ACTION_STRING));
					}
					return PsiUtilCore.toPsiElementArray(elements);
				}
			}
		}
	}
	return super.getSecondaryElements();
}
 
开发者ID:consulo,项目名称:consulo-java,代码行数:63,代码来源:JavaFindUsagesHandler.java


注:本文中的com.intellij.psi.util.PropertyUtil.findPropertyGetterWithType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。