Package org.netbeans.gradle.project.properties

Source Code of org.netbeans.gradle.project.properties.ProjectPlatformSource

package org.netbeans.gradle.project.properties;

import org.jtrim.utils.ExceptionHelper;
import org.netbeans.gradle.project.api.entry.GradleProjectPlatformQuery;
import org.netbeans.gradle.project.api.entry.ProjectPlatform;
import org.openide.util.Lookup;

public final class ProjectPlatformSource extends AbstractProjectPlatformSource {
    private final String name;
    private final String version;
    private final boolean defaultValue;

    public ProjectPlatformSource(String name, String version, boolean defaultValue) {
        ExceptionHelper.checkNotNullArgument(name, "name");
        ExceptionHelper.checkNotNullArgument(version, "version");

        this.name = name;
        this.version = version;
        this.defaultValue = defaultValue;
    }

    private GradleProjectPlatformQuery findOwnerQuery() {
        for (GradleProjectPlatformQuery query: Lookup.getDefault().lookupAll(GradleProjectPlatformQuery.class)) {
            if (query.isOwnerQuery(name)) {
                return query;
            }
        }
        return null;
    }

    private ProjectPlatform findPlatformFromAll() {
        for (GradleProjectPlatformQuery query: Lookup.getDefault().lookupAll(GradleProjectPlatformQuery.class)) {
            ProjectPlatform platform = query.tryFindPlatformByName(name, version);
            if (platform != null) {
                return platform;
            }
        }
        return null;
    }

    @Override
    public ProjectPlatform tryGetValue() {
        GradleProjectPlatformQuery query = getCurrentQuery();
        if (query == null) {
            query = findOwnerQuery();
            if (query == null) {
                return findPlatformFromAll();
            }

            query = trySetQuery(query);
        }
        return query.tryFindPlatformByName(name, version);
    }

    @Override
    public boolean isDefault() {
        return defaultValue;
    }
}
TOP

Related Classes of org.netbeans.gradle.project.properties.ProjectPlatformSource

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.