Example usage for org.eclipse.jdt.core.search SearchPattern R_REGEXP_MATCH

List of usage examples for org.eclipse.jdt.core.search SearchPattern R_REGEXP_MATCH

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.search SearchPattern R_REGEXP_MATCH.

Prototype

int R_REGEXP_MATCH

To view the source code for org.eclipse.jdt.core.search SearchPattern R_REGEXP_MATCH.

Click Source Link

Document

Match rule: The search pattern contains a regular expression.

Usage

From source file:com.android.ide.eclipse.adt.internal.refactoring.core.AndroidPackageRenameParticipant.java

License:Open Source License

@Override
protected boolean initialize(final Object element) {
    mIsPackage = false;/*  w w  w. ja  va 2s.co  m*/
    try {
        if (element instanceof IPackageFragment) {
            mPackageFragment = (IPackageFragment) element;
            if (!mPackageFragment.containsJavaResources())
                return false;
            IJavaProject javaProject = (IJavaProject) mPackageFragment.getAncestor(IJavaElement.JAVA_PROJECT);
            IProject project = javaProject.getProject();
            IResource manifestResource = project
                    .findMember(AdtConstants.WS_SEP + SdkConstants.FN_ANDROID_MANIFEST_XML);

            if (manifestResource == null || !manifestResource.exists()
                    || !(manifestResource instanceof IFile)) {
                RefactoringUtil.logInfo("Invalid or missing the " + SdkConstants.FN_ANDROID_MANIFEST_XML
                        + " in the " + project.getName() + " project.");
                return false;
            }
            mAndroidManifest = (IFile) manifestResource;
            String packageName = mPackageFragment.getElementName();
            ManifestData manifestData;
            manifestData = AndroidManifestHelper.parseForData(mAndroidManifest);
            if (manifestData == null) {
                return false;
            }
            mAppPackage = manifestData.getPackage();
            mOldName = packageName;
            mNewName = getArguments().getNewName();
            if (mOldName == null || mNewName == null) {
                return false;
            }

            if (RefactoringUtil.isRefactorAppPackage() && mAppPackage != null
                    && mAppPackage.equals(packageName)) {
                mIsPackage = true;
            }
            mAndroidElements = addAndroidElements();
            try {
                final IType type = javaProject.findType(SdkConstants.CLASS_VIEW);
                SearchPattern pattern = SearchPattern.createPattern("*", IJavaSearchConstants.TYPE,
                        IJavaSearchConstants.DECLARATIONS, SearchPattern.R_REGEXP_MATCH);
                IJavaSearchScope scope = SearchEngine
                        .createJavaSearchScope(new IJavaElement[] { mPackageFragment });
                final HashSet<IType> elements = new HashSet<IType>();
                SearchRequestor requestor = new SearchRequestor() {

                    @Override
                    public void acceptSearchMatch(SearchMatch match) throws CoreException {
                        Object elem = match.getElement();
                        if (elem instanceof IType) {
                            IType eType = (IType) elem;
                            IType[] superTypes = JavaModelUtil.getAllSuperTypes(eType,
                                    new NullProgressMonitor());
                            for (int i = 0; i < superTypes.length; i++) {
                                if (superTypes[i].equals(type)) {
                                    elements.add(eType);
                                    break;
                                }
                            }
                        }

                    }
                };
                SearchEngine searchEngine = new SearchEngine();
                searchEngine.search(pattern,
                        new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() }, scope,
                        requestor, null);
                List<String> views = new ArrayList<String>();
                for (IType elem : elements) {
                    views.add(elem.getFullyQualifiedName());
                }
                if (views.size() > 0) {
                    String[] classNames = views.toArray(new String[0]);
                    addLayoutChanges(project, classNames);
                }
            } catch (CoreException e) {
                RefactoringUtil.log(e);
            }

            return mIsPackage || mAndroidElements.size() > 0 || mFileChanges.size() > 0;
        }
    } catch (JavaModelException ignore) {
    }
    return false;
}

From source file:rs.snpe.android.refactoring.core.AndroidPackageRenameParticipant.java

License:Open Source License

@Override
protected boolean initialize(final Object element) {
    isPackage = false;//from w  w  w. j a  v  a 2 s.c om
    try {
        if (element instanceof IPackageFragment) {
            packageFragment = (IPackageFragment) element;
            if (!packageFragment.containsJavaResources())
                return false;
            IJavaProject javaProject = (IJavaProject) packageFragment.getAncestor(IJavaElement.JAVA_PROJECT);
            IProject project = javaProject.getProject();
            IResource manifestResource = project
                    .findMember(AndroidConstants.WS_SEP + AndroidConstants.FN_ANDROID_MANIFEST);

            if (manifestResource == null || !manifestResource.exists()
                    || !(manifestResource instanceof IFile)) {
                Activator.logInfo("Invalid or missing the " + AndroidConstants.FN_ANDROID_MANIFEST + " in the "
                        + project.getName() + " project.");
                return false;
            }
            androidManifest = (IFile) manifestResource;
            String packageName = packageFragment.getElementName();
            AndroidManifestParser parser;
            try {
                parser = AndroidManifestParser.parseForData(androidManifest);
            } catch (CoreException e) {
                Activator.logInfo("Invalid or missing the " + AndroidConstants.FN_ANDROID_MANIFEST + " in the "
                        + project.getName() + " project.");
                return false;
            }
            javaPackage = parser.getPackage();
            oldName = packageName;
            newName = getArguments().getNewName();
            if (oldName == null || newName == null) {
                return false;
            }

            if (javaPackage != null && javaPackage.equals(packageName)) {
                isPackage = true;
            }
            androidElements = addAndroidElements();
            try {
                final IType type = javaProject.findType(AndroidConstants.CLASS_VIEW);
                SearchPattern pattern = SearchPattern.createPattern("*", IJavaSearchConstants.TYPE,
                        IJavaSearchConstants.DECLARATIONS, SearchPattern.R_REGEXP_MATCH);
                IJavaSearchScope scope = SearchEngine
                        .createJavaSearchScope(new IJavaElement[] { packageFragment });
                final HashSet<IType> elements = new HashSet<IType>();
                SearchRequestor requestor = new SearchRequestor() {
                    public void acceptSearchMatch(SearchMatch match) throws CoreException {
                        Object elem = match.getElement();
                        if (elem instanceof IType) {
                            IType eType = (IType) elem;
                            IType[] superTypes = JavaModelUtil.getAllSuperTypes(eType,
                                    new NullProgressMonitor());
                            for (int i = 0; i < superTypes.length; i++) {
                                if (superTypes[i].equals(type)) {
                                    elements.add(eType);
                                    break;
                                }
                            }
                        }

                    }
                };
                SearchEngine searchEngine = new SearchEngine();
                searchEngine.search(pattern,
                        new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() }, scope,
                        requestor, null);
                List<String> views = new ArrayList<String>();
                for (IType elem : elements) {
                    views.add(elem.getFullyQualifiedName());
                }
                if (views.size() > 0) {
                    String[] classNames = views.toArray(new String[0]);
                    addLayoutChanges(project, classNames);
                }
            } catch (CoreException e) {
                Activator.log(e);
            }

            return isPackage || androidElements.size() > 0 || fileChanges.size() > 0;
        }
    } catch (JavaModelException ignore) {
    }
    return false;
}