public static boolean isStatic(IMember member) throws JavaModelException { if (isNestedInterfaceOrAnnotation(member)) return true; if (member.getElementType() != IJavaElement.METHOD && isInterfaceOrAnnotationMember(member)) return true; if (isEnum(member) && (member.getElementType() == IJavaElement.FIELD || member.getDeclaringType() != null)) return true; return Flags.isStatic(member.getFlags()); }
private static int getOffset(IMember iMember) throws JavaModelException { //special case if (iMember.getElementType() == IJavaElement.INITIALIZER) return firstOpeningBraceOffset((IInitializer)iMember); if (iMember.getNameRange() != null && iMember.getNameRange().getOffset() >= 0) return iMember.getNameRange().getOffset(); return iMember.getSourceRange().getOffset(); }
private IJavaSearchScope getAccurateSearchScope(IJavaSearchScope defaultSearchScope, IMember member) throws JavaModelException { if (! JdtFlags.isPrivate(member)) return defaultSearchScope; if (member.getCompilationUnit() != null) { return SearchEngine.createJavaSearchScope(new IJavaElement[] { member.getCompilationUnit() }); } else if (member.getClassFile() != null) { // member could be called from an inner class-> search // package fragment (see also bug 109053): return SearchEngine.createJavaSearchScope(new IJavaElement[] { member.getAncestor(IJavaElement.PACKAGE_FRAGMENT) }); } else { return defaultSearchScope; } }
public static IJavaElement getTypeContainerUnit(IMember member) { ICompilationUnit cu= member.getCompilationUnit(); if (cu != null) return cu; else return member.getClassFile(); } }
public static boolean hasSourceAvailable(IMember member) throws JavaModelException{ return ! member.isBinary() || (member.getSourceRange() != null && ! fgUnknownRange.equals(member.getSourceRange())); }
private static boolean isNestedInterfaceOrAnnotation(IMember member) throws JavaModelException{ return member.getElementType() == IJavaElement.TYPE && member.getDeclaringType() != null && ((IType) member).isInterface(); }
/** * Evaluates if a member in the focus' element hierarchy is visible from * elements in a package. * @param member The member to test the visibility for * @param pack The package of the focus element focus */ public static boolean isVisibleInHierarchy(IMember member, IPackageFragment pack) throws JavaModelException { int type= member.getElementType(); if (type == IJavaElement.INITIALIZER || (type == IJavaElement.METHOD && member.getElementName().startsWith("<"))) { //$NON-NLS-1$ return false; } int otherflags= member.getFlags(); IType declaringType= member.getDeclaringType(); if (Flags.isPublic(otherflags) || Flags.isProtected(otherflags) || (declaringType != null && isInterfaceOrAnnotation(declaringType))) { return true; } else if (Flags.isPrivate(otherflags)) { return false; } IPackageFragment otherpack= (IPackageFragment) member.getAncestor(IJavaElement.PACKAGE_FRAGMENT); return (pack != null && pack.equals(otherpack)); }
@Override public ICompilationUnit getCompilationUnit() { return fMember.getCompilationUnit(); } @Override
public Object getParent(Object element) { if (element instanceof IMember) return ((IMember) element).getDeclaringType(); if (element instanceof GetterSetterEntry) return ((GetterSetterEntry) element).field; return null; }
/** * Build an AST for the specified member's compilation unit or * (source-attached) class file. */ private static CompilationUnit buildASTRoot(IMember member, boolean resolveBindings) { return (member.isBinary()) ? buildASTRoot(member.getClassFile(), resolveBindings) // the class file must have a source attachment : buildASTRoot(member.getCompilationUnit(), resolveBindings); }
private boolean accept(int offset, IMember member) throws JavaModelException { ISourceRange nameRange = member.getNameRange(); if (nameRange == null) { return false; } int srcOffset = nameRange.getOffset(); return srcOffset > offset; }
@Override public void run(IStructuredSelection selection) { try { IMember member= getMember(selection); if (member == null || !ActionUtil.isEditable(getShell(), member)) return; ISourceRange range= member.getNameRange(); RefactoringExecutionStarter.startChangeTypeRefactoring(member.getCompilationUnit(), getShell(), range.getOffset(), range.getLength()); } catch (CoreException e) { ExceptionHandler.handle(e, RefactoringMessages.ChangeTypeAction_dialog_title, RefactoringMessages.ChangeTypeAction_exception); } }
public String getName() { return this.jdtMember.getElementName(); }
private static boolean isEnumTypeFinal(IMember member) throws JavaModelException { if (!(isEnum(member) && member.getElementType() == IJavaElement.TYPE)) return false; // An enum type is implicitly final unless it contains at least one enum constant that has a class body. IJavaElement[] children= member.getChildren(); for (IJavaElement child : children) { if (isEnumConstant((IMember) child) && ((IField) child).getChildren().length != 0) { return false; } } return true; }
@Override public void run(IProgressMonitor monitor, IWorkingCopyManager workingCopyManager) throws CoreException { ICompilationUnit icu = m_declaringMember.getCompilationUnit(); workingCopyManager.register(icu, monitor); IJavaEnvironment env = ScoutSdkCore.createJavaEnvironment(m_declaringMember.getJavaProject()); IImportCollector collector = new CompilationUnitScopedImportCollector(new ImportCollector(env), S2eUtils.getPackage(icu)); Document doc = new Document(icu.getSource()); TextEdit edit = createEdit(new ImportValidator(collector), doc, icu.findRecommendedLineSeparator()); try { edit.apply(doc); IBuffer buffer = icu.getBuffer(); buffer.setContents(doc.get()); // create imports new ImportsCreateOperation(icu, collector).run(monitor, workingCopyManager); } catch (Exception e) { SdkLog.warning("could not add annotation to '{}'.", m_declaringMember.getElementName(), e); } }
private IClassFile getClassFile(Object element) { if (!(element instanceof IJavaElement)) return null; if (element instanceof IClassFile) return (IClassFile) element; IJavaElement jElement= (IJavaElement) element; if (jElement instanceof IMember) return ((IMember) jElement).getClassFile(); return null; }
private int getMemberStartOffset(IMember curr, IDocument document) throws JavaModelException { int offset= curr.getSourceRange().getOffset(); TokenScanner scanner= new TokenScanner(document, curr.getJavaProject()); try { return scanner.getNextStartOffset(offset, true); // read to the first real non comment token } catch (CoreException e) { // ignore } return offset; }
public static boolean isAbstract(IMember member) throws JavaModelException{ if (isInterfaceOrAnnotationMethod(member)) return true; return Flags.isAbstract(member.getFlags()); }
private IMethod getSelectedMethod(Object element) { IMethod method = null; if (element instanceof IMethod) { method= (IMethod) element; } else if (element instanceof MethodWrapper) { IMember member= ((MethodWrapper) element).getMember(); if (member.getElementType() == IJavaElement.METHOD) { method= (IMethod) member; } } return method; }