All Downloads are FREE. Search and download functionalities are using the official Maven repository.

core_servicestore.protocols.pure.v1_22_0.extension.extension_serviceStore.pure Maven / Gradle / Ivy

The newest version!
// Copyright 2021 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 meta::pure::mapping::*;

import meta::external::store::service::metamodel::*;
import meta::external::store::service::metamodel::mapping::*;
import meta::external::store::service::metamodel::runtime::*;

function meta::protocols::pure::v1_22_0::extension::store::service::getServiceStoreExtension(type:String[1]):meta::pure::extension::SerializerExtension[1]
{
   let res = [
      pair('serviceStore', | meta::protocols::pure::v1_22_0::extension::store::service::getServiceStoreExtension())
   ]->filter(f|$f.first == $type);
   assert($res->isNotEmpty(), |'Can\'t find the type '+$type);
   $res->at(0).second->eval();
}

function meta::protocols::pure::v1_22_0::extension::store::service::getServiceStoreExtension():meta::protocols::pure::v1_22_0::extension::SerializerExtension_v1_22_0[1]
{
   ^meta::protocols::pure::v1_22_0::extension::SerializerExtension_v1_22_0
   (
      transfers_store_transformConnection = 
          [
             serviceStoreConnection:ServiceStoreConnection[1] | $serviceStoreConnection->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::store::service::transformServiceStoreConnection()
          ],
      transfers_executionPlan_transformNode = {mapping:Mapping[1], extensions:meta::pure::extension::Extension[*] |
          [
             ser:meta::external::store::service::executionPlan::nodes::RestServiceExecutionNode[1]|
                ^meta::protocols::pure::v1_22_0::metamodel::executionPlan::store::service::RestServiceExecutionNode(
                   _type            = 'restService',
                   resultType       = $ser.resultType->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions),
                   url              = $ser.url,
                   method           = $ser.method,
                   mimeType         = $ser.mimeType,
                   securitySchemes  = $ser.authenticationSchemes->map(s | $s->cast(@meta::external::store::service::executionPlan::nodes::SingleAuthenticationSchemeRequirement).securityScheme->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::store::service::transformSecurityScheme($extensions)),
                   params           = $ser.params->map(p | $p->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::store::service::transformServiceStoreParameter())
                ),
             spr:meta::external::store::service::executionPlan::nodes::ServiceParametersResolutionExecutionNode[1]|
                ^meta::protocols::pure::v1_22_0::metamodel::executionPlan::store::service::ServiceParametersResolutionExecutionNode(
                   _type             = 'serviceParametersResolution',
                   resultType        = $spr.resultType->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions),
                   propertyInputMap  = $spr.requiredVariableInputs.name->map(n | pair($n, $n))->newMap(),
                   parameterMappings = $spr.requestParametersBuildInfo.parameterBuildInfoList->map(param | $param->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::store::service::mapping::transformServiceStoreParameterMapping($extensions))
                )
          ]},
      transfers_mapping_transformSetImplementation2 = {mapping:Mapping[1], extensions:meta::pure::extension::Extension[*] | [
            rsi:RootServiceInstanceSetImplementation[1]  | $rsi->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::store::service::mapping::transformRootServiceInstanceSetImplementation($mapping, $extensions),
            esi:EmbeddedServiceStoreSetImplementation[1] | []
          ]},
      transfers_store_transformStore2 = {extensions:meta::pure::extension::Extension[*] |
         [
            s:ServiceStore[1] | $s->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::store::service::transformServiceStore($extensions)
         ]},
      scan_buildBasePureModel_extractStores = {m:Mapping[1], extensions:meta::pure::extension::Extension[*] |
         [
            rsi:RootServiceInstanceSetImplementation[1]  | $rsi->meta::protocols::pure::v1_22_0::extension::store::service::extractServiceStore(),
            esi:EmbeddedServiceStoreSetImplementation[1] | $esi->meta::protocols::pure::v1_22_0::extension::store::service::extractServiceStore()
         ]}
   )
}

function meta::protocols::pure::v1_22_0::extension::store::service::extractServiceStore(set:SetImplementation[1]):ServiceStore[1]
{
   $set->match([
      rsi:RootServiceInstanceSetImplementation[1]  | $rsi.serviceStore(),
      esi:EmbeddedServiceStoreSetImplementation[1] | $esi.owner->cast(@SetImplementation)->toOne()->meta::protocols::pure::v1_22_0::extension::store::service::extractServiceStore()
   ])
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy