"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
/**
 * Copyright 2017-2020 Plexus Interop Deutsche Bank AG
 * SPDX-License-Identifier: Apache-2.0
 *
 * 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.
 */
var BaseJavaGenCommand_1 = require("./BaseJavaGenCommand");
var DefaultOptions_1 = require("./DefaultOptions");
var java_1 = require("../common/java");
var process_1 = require("../common/process");
var ValidateMetadataCommand = /** @class */ (function (_super) {
    tslib_1.__extends(ValidateMetadataCommand, _super);
    function ValidateMetadataCommand() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.plexusGenArgs = function (opts) {
            return tslib_1.__spreadArrays(['--type=validate'], _this.optionArgs(opts, '=', function (name) { return name === 'out' ? 'outFile' : name; }));
        };
        _this.generalDescription = function () { return 'validate metadata'; };
        _this.name = function () { return 'validate'; };
        _this.options = function () { return [DefaultOptions_1.baseDir(), DefaultOptions_1.outFile(), DefaultOptions_1.verbose()]; };
        return _this;
    }
    ValidateMetadataCommand.prototype.action = function (opts) {
        return tslib_1.__awaiter(this, void 0, void 0, function () {
            var javaExecPath, javaLibPath;
            return tslib_1.__generator(this, function (_a) {
                switch (_a.label) {
                    case 0: return [4 /*yield*/, java_1.getJavaExecPath()];
                    case 1:
                        javaExecPath = _a.sent();
                        javaLibPath = java_1.getJavaGenLibPath();
                        return [4 /*yield*/, process_1.simpleSpawn(javaExecPath, tslib_1.__spreadArrays(['-jar', javaLibPath], this.plexusGenArgs(opts)), true)];
                    case 2:
                        _a.sent();
                        this.log('No validation errors found');
                        return [2 /*return*/];
                }
            });
        });
    };
    return ValidateMetadataCommand;
}(BaseJavaGenCommand_1.BaseJavaGenCommand));
exports.ValidateMetadataCommand = ValidateMetadataCommand;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFsaWRhdGVNZXRhZGF0YUNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbWFuZHMvVmFsaWRhdGVNZXRhZGF0YUNvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsMkRBQTBEO0FBQzFELG1EQUE2RDtBQUU3RCx1Q0FBb0U7QUFDcEUsNkNBQWdEO0FBRWhEO0lBQTZDLG1EQUFrQjtJQUEvRDtRQUFBLHFFQW1CQztRQWpCVSxtQkFBYSxHQUE0QixVQUFBLElBQUk7WUFDaEQsK0JBQVEsaUJBQWlCLEdBQUssS0FBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQWpDLENBQWlDLENBQUMsRUFBRTtRQUN6RyxDQUFDLENBQUE7UUFFTSx3QkFBa0IsR0FBRyxjQUFNLE9BQUEsbUJBQW1CLEVBQW5CLENBQW1CLENBQUM7UUFFL0MsVUFBSSxHQUFHLGNBQU0sT0FBQSxVQUFVLEVBQVYsQ0FBVSxDQUFDO1FBRXhCLGFBQU8sR0FBbUIsY0FBTSxPQUFBLENBQUMsd0JBQU8sRUFBRSxFQUFFLHdCQUFPLEVBQUUsRUFBRSx3QkFBTyxFQUFFLENBQUMsRUFBakMsQ0FBaUMsQ0FBQzs7SUFTN0UsQ0FBQztJQVBnQix3Q0FBTSxHQUFuQixVQUFvQixJQUFTOzs7Ozs0QkFDSixxQkFBTSxzQkFBZSxFQUFFLEVBQUE7O3dCQUF0QyxZQUFZLEdBQUcsU0FBdUI7d0JBQ3RDLFdBQVcsR0FBRyx3QkFBaUIsRUFBRSxDQUFDO3dCQUN4QyxxQkFBTSxxQkFBVyxDQUFDLFlBQVksMEJBQUcsTUFBTSxFQUFFLFdBQVcsR0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFBOzt3QkFBekYsU0FBeUYsQ0FBQzt3QkFDMUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDOzs7OztLQUMxQztJQUVMLDhCQUFDO0FBQUQsQ0FBQyxBQW5CRCxDQUE2Qyx1Q0FBa0IsR0FtQjlEO0FBbkJZLDBEQUF1QiJ9