private Object findNextLevelParentByElementName(IPackageFragment child) { String name= child.getElementName(); int index= name.lastIndexOf('.'); if (index != -1) { String realParentName= name.substring(0, index); IPackageFragment element= ((IPackageFragmentRoot) child.getParent()).getPackageFragment(realParentName); if (element.exists()) { return element; } } return child.getParent(); }
/** * Evaluates all children of a given {@link IPackageFragment}. Clients can override this method. * @param fragment The fragment to evaluate the children for. * @return The children of the given package fragment. * @exception JavaModelException if the package fragment does not exist or if an * exception occurs while accessing its corresponding resource * * @since 3.3 */ protected Object[] getPackageContent(IPackageFragment fragment) throws JavaModelException { if (fragment.getKind() == IPackageFragmentRoot.K_SOURCE) { return concatenate(fragment.getCompilationUnits(), fragment.getNonJavaResources()); } return concatenate(fragment.getClassFiles(), fragment.getNonJavaResources()); }
private MoveCompilationUnitChange(IPackageFragment oldPackage, String cuName, IPackageFragment newPackage, long stampToRestore, IPackageFragment[] deletePackages) { super(oldPackage.getHandleIdentifier(), newPackage.getHandleIdentifier(), oldPackage.getCompilationUnit(cuName).getHandleIdentifier()); fStampToRestore= stampToRestore; fDeletePackages= deletePackages; setValidationMethod(SAVE_IF_DIRTY | VALIDATE_NOT_READ_ONLY); }
static boolean canAddPackage(IPackageFragment p) throws JavaModelException{ if (! p.exists()) return false; if (p.isReadOnly()) return false; if (! p.isStructureKnown()) return false; return true; }
private boolean isEmpty(IPackageFragment fragment) { try { return (fragment.getCompilationUnits().length == 0) && (fragment.getClassFiles().length == 0); } catch (JavaModelException e) { // ignore } return false; }
/** * Note: This method is for internal use only. Clients should not call this method. */ protected boolean isPackageFragmentEmpty(IJavaElement element) throws JavaModelException { if (element instanceof IPackageFragment) { IPackageFragment fragment= (IPackageFragment)element; if (fragment.exists() && !(fragment.hasChildren() || fragment.getNonJavaResources().length > 0) && fragment.hasSubpackages()) return true; } return false; }
private void computeQualifiedNameMatches(IProgressMonitor pm) { IPackageFragment fragment= fType.getPackageFragment(); if (fQualifiedNameSearchResult == null) fQualifiedNameSearchResult= new QualifiedNameSearchResult(); QualifiedNameFinder.process(fQualifiedNameSearchResult, fType.getFullyQualifiedName(), fragment.getElementName() + "." + getNewElementName(), //$NON-NLS-1$ fFilePatterns, fType.getJavaProject().getProject(), pm); }
private void handleType(IType type, IPackageFragment destination, IProgressMonitor pm) { QualifiedNameFinder.process(fQualifiedNameSearchResult, type.getFullyQualifiedName(), destination.getElementName() + "." + type.getTypeQualifiedName(), //$NON-NLS-1$ fFilePatterns, type.getJavaProject().getProject(), pm); }
private IType resolveType(String qualifiedTypeName) throws JavaModelException{ IType type= getDeclaringType().getJavaProject().findType(qualifiedTypeName); if (type == null) type= getDeclaringType().getJavaProject().findType(getDeclaringType().getPackageFragment().getElementName(), qualifiedTypeName); return type; }
public static boolean isPackageNameOkInRoot(String newName, IPackageFragmentRoot root) throws CoreException { IPackageFragment pack= root.getPackageFragment(newName); if (! pack.exists()) return true; else if (pack.containsJavaResources()) return false; else if (pack.getNonJavaResources().length != 0) return false; else return true; }
private void initialize() throws JavaModelException { fQualifiedTypeName= JavaModelUtil.concatenateName(fType.getPackageFragment().getElementName(), fType.getElementName()); fEnclosingInstanceFieldName= getInitialNameForEnclosingInstanceField(); fSourceRewrite= new CompilationUnitRewrite(fType.getCompilationUnit()); fIsInstanceFieldCreationPossible= !(JdtFlags.isStatic(fType) || fType.isAnnotation() || fType.isEnum()); fIsInstanceFieldCreationMandatory= fIsInstanceFieldCreationPossible && isInstanceFieldCreationMandatory(); fCreateInstanceField= fIsInstanceFieldCreationMandatory; }
private void computeQualifiedNameMatches(IProgressMonitor pm) { if (fQualifiedNameSearchResult == null) { fQualifiedNameSearchResult= new QualifiedNameSearchResult(); } QualifiedNameFinder.process(fQualifiedNameSearchResult, fPackage.getElementName(), getNewElementName(), fFilePatterns, fPackage.getJavaProject().getProject(), pm); }
public static IType findTypeInPackage(IPackageFragment pack, String elementName) throws JavaModelException { Assert.isTrue(pack.exists()); Assert.isTrue(!pack.isReadOnly()); String packageName= pack.getElementName(); elementName= packageName.length() > 0 ? packageName + '.' + elementName : elementName; return pack.getJavaProject().findType(elementName, (IProgressMonitor) null); }
private List<IJavaElement> getSubPackages(IPackageFragment motherPackage) throws JavaModelException { List<IJavaElement> subPackages = new ArrayList<IJavaElement>(); String packageName = motherPackage.getElementName(); IJavaElement[] packages = ((IPackageFragmentRoot) motherPackage.getParent()).getChildren(); for (IJavaElement onePackage : packages) { if (onePackage instanceof IPackageFragment && onePackage.getElementName().startsWith(packageName + ".")) { subPackages.add(onePackage); } } return subPackages; } }
private Object[] getPackageContents(IPackageFragment fragment) throws JavaModelException { ISourceReference[] sourceRefs; if (fragment.getKind() == IPackageFragmentRoot.K_SOURCE) { sourceRefs= fragment.getCompilationUnits(); } else { IClassFile[] classFiles= fragment.getClassFiles(); List topLevelClassFile= new ArrayList(); for (int i= 0; i < classFiles.length; i++) { IType type= classFiles[i].getType(); if (type != null && type.getDeclaringType() == null && !type.isAnonymous() && !type.isLocal()) topLevelClassFile.add(classFiles[i]); } sourceRefs= (ISourceReference[])topLevelClassFile.toArray(new ISourceReference[topLevelClassFile.size()]); } Object[] result= new Object[0]; for (int i= 0; i < sourceRefs.length; i++) result= concatenate(result, removeImportAndPackageDeclarations(getChildren(sourceRefs[i]))); return concatenate(result, fragment.getNonJavaResources()); }
private void collectCompilationUnits(IPackageFragmentRoot root, Collection<IJavaElement> result, String prefix) throws JavaModelException { if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { IJavaElement[] children = root.getChildren(); for (int i = 0; i < children.length; i++) { IPackageFragment pack = (IPackageFragment) children[i]; if (StringUtils.isBlank(prefix) || pack.getElementName().indexOf(prefix) >= 0) { collectCompilationUnits(pack, result); } } } }
private IFolder computeTargetFolder(IPackageFragment rootPackage, RenameArguments args, IPackageFragment pack) { IPath path= pack.getParent().getPath(); path= path.append(getNewPackageName(rootPackage, args.getNewName(), pack.getElementName()).replace('.', IPath.SEPARATOR)); IFolder target= ResourcesPlugin.getWorkspace().getRoot().getFolder(path); return target; }
private String createStringForNewImport(ICompilationUnit movedUnit, IImportDeclaration importDecl) { String old= importDecl.getElementName(); int oldPackLength= movedUnit.getParent().getElementName().length(); StringBuilder result= new StringBuilder(fDestination.getElementName()); if (oldPackLength == 0) { result.append('.').append(old); } else if (result.length() == 0) { result.append(old.substring(oldPackLength + 1)); // cut "." } else { result.append(old.substring(oldPackLength)); } return result.toString(); }
private RefactoringStatus checkPackageClass() { RefactoringStatus status= new RefactoringStatus(); IType type= fDescriptor.getType(); IPackageFragmentRoot ancestor= (IPackageFragmentRoot) type.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); IPackageFragment packageFragment= ancestor.getPackageFragment(fDescriptor.getPackage()); if (packageFragment.getCompilationUnit(fDescriptor.getClassName() + JavaModelUtil.DEFAULT_CU_SUFFIX).exists()) status.addError(Messages.format(RefactoringCoreMessages.ExtractClassRefactoring_error_toplevel_name_clash, new Object[] { BasicElementLabels.getJavaElementName(fDescriptor.getClassName()), BasicElementLabels.getJavaElementName(fDescriptor.getPackage()) })); return status; }
private void indexClassFiles(IndexWriter indexWriter, IPackageFragmentRoot jar, IProgressMonitor monitor) throws Exception { String jarName = getJarName(jar); String projectPath = getProjectPath(jar); for(IJavaElement pkgRootChild: jar.getChildren()) { IPackageFragment pkg = (IPackageFragment) pkgRootChild; monitor.setTaskName("Indexing JAR Source Attachements: " + jar.getElementName() + " - " + pkg.getElementName()); for(IClassFile classFile: pkg.getClassFiles()) { if( classFile.getElementName().contains("$") ) continue; // not type root try { ClassFileSourceStorage classFileSourceStorage = new ClassFileSourceStorage(classFile); if (classFileSourceStorage.hasSource()) indexStorageWithRetry(indexWriter, classFileSourceStorage, projectPath, IResource.NULL_STAMP, jarName); } catch (Exception e) { //Issue #69. Avoid Ex where Eclipse has trouble loading a source file. } if( monitor.isCanceled() ) return; } } }