Package org.netbeans.gradle.project.query

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

package org.netbeans.gradle.project.query;

import java.nio.charset.Charset;
import java.util.Collections;
import java.util.Map;
import java.util.TreeMap;
import org.jtrim.utils.ExceptionHelper;
import org.netbeans.gradle.project.NbGradleProject;
import org.netbeans.gradle.project.properties.DefaultProjectProperties;
import org.netbeans.gradle.project.properties.LicenseHeaderInfo;
import org.netbeans.spi.queries.FileEncodingQueryImplementation;
import org.openide.filesystems.FileUtil;
import org.openide.loaders.CreateFromTemplateAttributesProvider;
import org.openide.loaders.DataFolder;
import org.openide.loaders.DataObject;

public final class GradleTemplateAttrProvider implements CreateFromTemplateAttributesProvider {
    private final NbGradleProject project;

    public GradleTemplateAttrProvider(NbGradleProject project) {
        ExceptionHelper.checkNotNullArgument(project, "project");

        this.project = project;
    }

    @Override
    public Map<String, ?> attributesFor(DataObject template, DataFolder target, String name) {
        Map<String, Object> values = new TreeMap<>();

        LicenseHeaderInfo licenseHeader = project.getProperties().getLicenseHeader().getValue();
        if (licenseHeader != null) {
            String licenseName = licenseHeader.getPrivateLicenseName(project);
            String fileName = "license-" + licenseName + ".txt";

            if (FileUtil.getConfigFile("Templates/Licenses/" + fileName) != null) {
                values.put("license", licenseName);
                for (Map.Entry<String, String> property: licenseHeader.getProperties().entrySet()) {
                    values.put(property.getKey(), property.getValue());
                }
            }
        }

        FileEncodingQueryImplementation enc = project.getLookup().lookup(FileEncodingQueryImplementation.class);
        Charset encoding = enc.getEncoding(target.getPrimaryFile());
        if (encoding == null) {
            encoding = DefaultProjectProperties.DEFAULT_SOURCE_ENCODING;
        }

        values.put("encoding", encoding.name());
        values.put("name", project.getName());
        values.put("displayName", project.getDisplayName());

        if (values.size() > 0) {
            return Collections.singletonMap("project", values);
        }
        else {
            return null;
        }
    }
}
TOP

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

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.