UNPKG

@finos/legend-graph

Version:
89 lines 2.67 kB
/** * Copyright (c) 2020-present, Goldman Sachs * * 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. */ import { hashArray, uuid } from '@finos/legend-shared'; import { CORE_HASH_STRUCTURE } from '../../../../../graph/Core_HashUtils.js'; export class ServiceExecution { } export class PureExecution extends ServiceExecution { _OWNER; /** * Studio does not process value specification, they are left in raw JSON form * * @discrepancy model */ func; constructor(func, owner) { super(); this.func = func; this._OWNER = owner; } get hashCode() { return hashArray([CORE_HASH_STRUCTURE.SERVICE_PURE_EXECUTION, this.func]); } } export class PureSingleExecution extends PureExecution { mapping; runtime; constructor(func, owner, mapping, runtime) { super(func, owner); this.mapping = mapping; this.runtime = runtime; } get hashCode() { return hashArray([ CORE_HASH_STRUCTURE.SERVICE_PURE_SINGLE_EXECUTION, super.hashCode, this.mapping?.valueForSerialization ?? '', this.runtime ?? '', ]); } } export class KeyedExecutionParameter { _UUID = uuid(); key; mapping; runtime; constructor(key, mapping, runtime) { this.key = key; this.mapping = mapping; this.runtime = runtime; } get hashCode() { return hashArray([ CORE_HASH_STRUCTURE.SERVICE_KEYED_EXECUTION_PARAMETER, this.key, this.mapping.valueForSerialization ?? '', this.runtime, ]); } } export class PureMultiExecution extends PureExecution { executionKey; executionParameters; constructor(executionKey, func, parentService) { super(func, parentService); this.executionKey = executionKey; } get hashCode() { return hashArray([ CORE_HASH_STRUCTURE.SERVICE_PURE_MULTI_EXECUTION, super.hashCode, this.executionKey, hashArray(this.executionParameters ?? []), ]); } } //# sourceMappingURL=ServiceExecution.js.map