Package org.gradle.api.reporting.components.internal

Source Code of org.gradle.api.reporting.components.internal.BinaryRenderer

/*
* Copyright 2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.gradle.api.reporting.components.internal;

import org.apache.commons.lang.StringUtils;
import org.gradle.api.internal.file.FileResolver;
import org.gradle.api.tasks.diagnostics.internal.text.TextReportBuilder;
import org.gradle.jvm.ClassDirectoryBinarySpec;
import org.gradle.jvm.JarBinarySpec;
import org.gradle.jvm.JvmBinarySpec;
import org.gradle.logging.StyledTextOutput;
import org.gradle.nativeplatform.NativeBinarySpec;
import org.gradle.nativeplatform.NativeExecutableBinarySpec;
import org.gradle.nativeplatform.SharedLibraryBinarySpec;
import org.gradle.nativeplatform.StaticLibraryBinarySpec;
import org.gradle.nativeplatform.test.NativeTestSuiteBinarySpec;
import org.gradle.platform.base.BinarySpec;
import org.gradle.play.PlayApplicationBinarySpec;
import org.gradle.reporting.ReportRenderer;

class BinaryRenderer extends ReportRenderer<BinarySpec, TextReportBuilder> {
    private final FileResolver fileResolver;

    BinaryRenderer(FileResolver fileResolver) {
        this.fileResolver = fileResolver;
    }

    @Override
    public void render(BinarySpec binary, TextReportBuilder builder) {
        StyledTextOutput textOutput = builder.getOutput();

        textOutput.append(StringUtils.capitalize(binary.getDisplayName()));
        if (!binary.isBuildable()) {
            textOutput.append(" (not buildable)");
        }
        textOutput.println();

        textOutput.formatln("    build using task: %s", binary.getBuildTask().getPath());

        if (binary instanceof NativeBinarySpec) {
            NativeBinarySpec nativeBinary = (NativeBinarySpec) binary;
            textOutput.formatln("    platform: %s", nativeBinary.getTargetPlatform().getName());
            textOutput.formatln("    build type: %s", nativeBinary.getBuildType().getName());
            textOutput.formatln("    flavor: %s", nativeBinary.getFlavor().getName());
            textOutput.formatln("    tool chain: %s", nativeBinary.getToolChain().getDisplayName());
            if (binary instanceof NativeExecutableBinarySpec) {
                NativeExecutableBinarySpec executableBinary = (NativeExecutableBinarySpec) binary;
                textOutput.formatln("    executable file: %s", fileResolver.resolveAsRelativePath(executableBinary.getExecutableFile()));
            }
            if (binary instanceof NativeTestSuiteBinarySpec) {
                NativeTestSuiteBinarySpec executableBinary = (NativeTestSuiteBinarySpec) binary;
                textOutput.formatln("    executable file: %s", fileResolver.resolveAsRelativePath(executableBinary.getExecutableFile()));
            }
            if (binary instanceof SharedLibraryBinarySpec) {
                SharedLibraryBinarySpec libraryBinary = (SharedLibraryBinarySpec) binary;
                textOutput.formatln("    shared library file: %s", fileResolver.resolveAsRelativePath(libraryBinary.getSharedLibraryFile()));
            }
            if (binary instanceof StaticLibraryBinarySpec) {
                StaticLibraryBinarySpec libraryBinary = (StaticLibraryBinarySpec) binary;
                textOutput.formatln("    static library file: %s", fileResolver.resolveAsRelativePath(libraryBinary.getStaticLibraryFile()));
            }
        }

        if (binary instanceof JvmBinarySpec) {
            JvmBinarySpec jvmBinary = (JvmBinarySpec) binary;
            textOutput.formatln("    platform: %s", jvmBinary.getTargetPlatform().getName());
            textOutput.formatln("    tool chain: %s", jvmBinary.getToolChain().getDisplayName());
            if (binary instanceof JarBinarySpec) {
                JarBinarySpec jarBinary = (JarBinarySpec) binary;
                textOutput.formatln("    Jar file: %s", fileResolver.resolveAsRelativePath(jarBinary.getJarFile()));
            }
            if (binary instanceof ClassDirectoryBinarySpec) {
                ClassDirectoryBinarySpec classDirectoryBinary = (ClassDirectoryBinarySpec) binary;
                textOutput.formatln("    classes dir: %s", fileResolver.resolveAsRelativePath(classDirectoryBinary.getClassesDir()));
                textOutput.formatln("    resources dir: %s", fileResolver.resolveAsRelativePath(classDirectoryBinary.getResourcesDir()));
            }
        }

        if (binary instanceof PlayApplicationBinarySpec) {
            PlayApplicationBinarySpec playBinary = (PlayApplicationBinarySpec) binary;
            textOutput.formatln("    platform: %s", playBinary.getTargetPlatform().getName());
            textOutput.formatln("    tool chain: %s", playBinary.getToolChain().getDisplayName());
        }
    }
}
TOP

Related Classes of org.gradle.api.reporting.components.internal.BinaryRenderer

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.