"use strict";
/*
 * Copyright © 2019 Atomist, Inc.
 *
 * 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.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.visitPredicateMappings = exports.PredicateMappingCompositionStyle = void 0;
/**
 * Style of logical composition
 */
var PredicateMappingCompositionStyle;
(function (PredicateMappingCompositionStyle) {
    PredicateMappingCompositionStyle["And"] = "and";
    PredicateMappingCompositionStyle["Or"] = "or";
    PredicateMappingCompositionStyle["Not"] = "not";
})(PredicateMappingCompositionStyle = exports.PredicateMappingCompositionStyle || (exports.PredicateMappingCompositionStyle = {}));
/**
 * Visit the PredicateMappings, returning whether to continue
 * @param pm predicate mapping to visit. Always visits root,
 * and any subcomponents as long as the visitor returns true
 * @param v visitor
 * @return {boolean} whether to visit the mapping's structure, if any
 */
function visitPredicateMappings(pm, v) {
    if (v(pm) && !!pm.structure) {
        pm.structure.components.forEach(n => visitPredicateMappings(n, v));
    }
}
exports.visitPredicateMappings = visitPredicateMappings;
//# sourceMappingURL=PredicateMapping.js.map