Package org.netbeans.gradle.project.query

Source Code of org.netbeans.gradle.project.query.GradleHomeBinaryForSourceQuery

package org.netbeans.gradle.project.query;

import java.io.File;
import java.net.URL;
import javax.swing.event.ChangeListener;
import org.netbeans.api.java.queries.BinaryForSourceQuery.Result;
import org.netbeans.gradle.project.properties.GlobalGradleSettings;
import org.netbeans.gradle.project.util.GradleFileUtils;
import org.netbeans.spi.java.queries.BinaryForSourceQueryImplementation;
import org.openide.filesystems.FileObject;
import org.openide.filesystems.FileUtil;
import org.openide.util.lookup.ServiceProvider;
import org.openide.util.lookup.ServiceProviders;

@ServiceProviders({@ServiceProvider(service = BinaryForSourceQueryImplementation.class)})
public final class GradleHomeBinaryForSourceQuery extends AbstractBinaryForSourceQuery {
    public GradleHomeBinaryForSourceQuery() {
    }

    @Override
    protected Result tryFindBinaryRoots(File sourceRoot) {
        final FileObject sourceRootObj = FileUtil.toFileObject(sourceRoot);
        if (sourceRootObj == null) {
            return null;
        }

        FileObject gradleHomeObj = GlobalGradleSettings.getGradleLocation();
        if (gradleHomeObj == null) {
            return null;
        }

        File gradleHome = FileUtil.toFile(gradleHomeObj);
        if (gradleHome == null) {
            return null;
        }

        FileObject gradleSrc = GradleFileUtils.getSrcDirOfGradle(gradleHomeObj);
        if (gradleSrc == null) {
            return null;
        }

        if (!FileUtil.isParentOf(gradleSrc, sourceRootObj)) {
            return null;
        }

        final URL[] gradleLibs = GradleHomeClassPathProvider.getGradleBinaries(gradleHomeObj);

        return new Result() {
            @Override
            public URL[] getRoots() {
                return gradleLibs.clone();
            }

            @Override
            public void addChangeListener(ChangeListener l) {
            }

            @Override
            public void removeChangeListener(ChangeListener l) {
            }
        };
    }
}
TOP

Related Classes of org.netbeans.gradle.project.query.GradleHomeBinaryForSourceQuery

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.