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

core_analytics_search.transTest.pure Maven / Gradle / Ivy

// Copyright 2023 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::alloy::metadataServer::*;

function meta::analytics::search::transformation::test::buildTestProjectCoordinates(): meta::analytics::search::metamodel::ProjectCoordinates[1]
{
  ^meta::analytics::search::metamodel::ProjectCoordinates(
    groupId = 'org.finos.test',
    artifactId = 'test-project',
    versionId = '0.0.1-SNAPSHOT'
  )
}

function <> meta::analytics::search::transformation::test::testClassDocumentGeneration(): Boolean[1]
{
  let result = meta::analytics::search::transformation::buildDocument(meta::analytics::search::transformation::test::Person, meta::analytics::search::transformation::test::buildTestProjectCoordinates())->cast(@meta::analytics::search::metamodel::class::ClassDocument);
  assert($result.id == 'meta::analytics::search::transformation::test::Person');
  assert($result.package == 'meta::analytics::search::transformation::test');
  assert($result.name == 'Person');
  assert($result.properties->size() == 2);
  assert($result.projectCoordinates.groupId == 'org.finos.test');
  assert($result.projectCoordinates.artifactId == 'test-project');
  assert($result.projectCoordinates.versionId == '0.0.1-SNAPSHOT');

  let json = $result->alloyToJSON();
  assert($json == '{"taggedValues":{"doc.doc":"Person Details"},"package":"meta::analytics::search::transformation::test","name":"Person","description":"Person Details","projectCoordinates":{"versionId":"0.0.1-SNAPSHOT","groupId":"org.finos.test","artifactId":"test-project"},"id":"meta::analytics::search::transformation::test::Person","type":"Class","properties":[{"taggedValues":{"doc.doc":"firstName of the person"},"name":"firstName"},{"taggedValues":{"doc.doc":"lastName of the person"},"name":"lastName"}]}');
}

function <> meta::analytics::search::transformation::test::testClassDocumentGeneration_WithStereotypes(): Boolean[1]
{
  let result = meta::analytics::search::transformation::buildDocument(meta::analytics::search::transformation::test::LegalEntity, meta::analytics::search::transformation::test::buildTestProjectCoordinates())->cast(@meta::analytics::search::metamodel::class::ClassDocument);
  assert($result.id == 'meta::analytics::search::transformation::test::LegalEntity');
  assert($result.package == 'meta::analytics::search::transformation::test');
  assert($result.name == 'LegalEntity');
  assert($result.properties->size() == 4);
  assert($result.projectCoordinates.groupId == 'org.finos.test');
  assert($result.projectCoordinates.artifactId == 'test-project');
  assert($result.projectCoordinates.versionId == '0.0.1-SNAPSHOT');

  let json = $result->alloyToJSON();
  assert($json == '{"taggedValues":{"doc.doc":"Entity Details"},"stereotypes":["temporal.processingtemporal","test.Test"],"package":"meta::analytics::search::transformation::test","name":"LegalEntity","description":"To add further details,Entity Details","projectCoordinates":{"versionId":"0.0.1-SNAPSHOT","groupId":"org.finos.test","artifactId":"test-project"},"id":"meta::analytics::search::transformation::test::LegalEntity","type":"Class","properties":[{"taggedValues":{},"stereotypes":["temporal.processingtemporal"],"name":"legalName"},{"taggedValues":{},"name":"address"},{"taggedValues":{},"stereotypes":["milestoning.generatedmilestoningdateproperty"],"name":"processingDate"},{"taggedValues":{},"stereotypes":["milestoning.generatedmilestoningdateproperty"],"name":"milestoning"}]}');
}

function <> meta::analytics::search::transformation::test::testMappingDocumentGeneration(): Boolean[1]
{
  let result = meta::analytics::search::transformation::buildDocument(meta::analytics::search::transformation::test::sampleRelationalMapping, meta::analytics::search::transformation::test::buildTestProjectCoordinates())->cast(@meta::analytics::search::metamodel::mapping::MappingDocument);
  assert($result.id == 'meta::analytics::search::transformation::test::sampleRelationalMapping');
  assert($result.package == 'meta::analytics::search::transformation::test');
  assert($result.name == 'sampleRelationalMapping');
  assert($result.classes->size() == 5);
  assert($result.projectCoordinates.groupId == 'org.finos.test');
  assert($result.projectCoordinates.artifactId == 'test-project');
  assert($result.projectCoordinates.versionId == '0.0.1-SNAPSHOT');

  let json = $result->alloyToJSON();
  assert($json == '{"taggedValues":{},"package":"meta::analytics::search::transformation::test","includedMappings":["meta::analytics::search::transformation::test::sampleMappingTest"],"classes":[{"taggedValues":{},"stereotypes":["temporal.processingtemporal"],"package":"meta::analytics::search::transformation::test","name":"Firm","properties":[{"taggedValues":{},"name":"id"},{"taggedValues":{},"name":"employees"},{"taggedValues":{},"name":"address"}]},{"taggedValues":{"doc.doc":"Person Details"},"package":"meta::analytics::search::transformation::test","name":"Person","properties":[{"taggedValues":{"doc.doc":"firstName of the person"},"name":"firstName"},{"taggedValues":{"doc.doc":"lastName of the person"},"name":"lastName"}]},{"taggedValues":{"doc.doc":"Entity Details"},"stereotypes":["temporal.processingtemporal","test.Test"],"package":"meta::analytics::search::transformation::test","name":"LegalEntity"},{"taggedValues":{},"package":"meta::analytics::search::transformation::test","name":"Address"},{"taggedValues":{},"package":"meta::analytics::search::transformation::test","name":"Street"}],"name":"sampleRelationalMapping","projectCoordinates":{"versionId":"0.0.1-SNAPSHOT","groupId":"org.finos.test","artifactId":"test-project"},"id":"meta::analytics::search::transformation::test::sampleRelationalMapping","type":"Mapping"}');
}

function <> meta::analytics::search::transformation::test::testDatabaseDocumentGeneration(): Boolean[1]
{
  let result = meta::analytics::search::transformation::buildDocument(meta::analytics::search::transformation::test::sampleDB, meta::analytics::search::transformation::test::buildTestProjectCoordinates())->cast(@meta::analytics::search::metamodel::database::DatabaseDocument);
  assert($result.id == 'meta::analytics::search::transformation::test::sampleDB');
  assert($result.name == 'sampleDB');
  let json = $result->alloyToJSON();
  assert($json == '{"taggedValues":{},"package":"meta::analytics::search::transformation::test","includedStores":["meta::analytics::search::transformation::test::sampleDBTest"],"schemas":[{"tables":[{"columns":["id","name"],"name":"sampleTable"}],"name":"sampleSchema"},{"tables":[{"columns":["id","legalName"],"name":"FirmTable"},{"columns":["id","firmID","firstName","lastName"],"name":"PersonTable"},{"columns":["id","firmID","name"],"name":"AddressTable"}],"name":"default"}],"name":"sampleDB","projectCoordinates":{"versionId":"0.0.1-SNAPSHOT","groupId":"org.finos.test","artifactId":"test-project"},"id":"meta::analytics::search::transformation::test::sampleDB","type":"DatabaseStore"}');
}

function <> meta::analytics::search::transformation::test::testServiceDocumentGeneration(): Boolean[1]
{
  let result = meta::analytics::search::transformation::buildDocument(meta::analytics::search::transformation::test::getService(), meta::analytics::search::transformation::test::buildTestProjectCoordinates())->cast(@meta::analytics::search::metamodel::service::ServiceDocument);
  assert($result.type == meta::analytics::search::metamodel::DocumentType.Service);
  assert($result.id == 'meta::analytics::search::transformation::test::personDetailsService');
  assert($result.name == '/personDetails');
  let json = $result->alloyToJSON();
  assert($json == '{"taggedValues":{},"executions":[{"mapping":"meta::analytics::search::transformation::test::sampleRelationalMapping","databaseColumns":[{"schema":"default","database":"sampleDB","columns":["lastName"],"table":"PersonTable"}],"classes":[{"taggedValues":{"doc.doc":"Person Details"},"package":"meta::analytics::search::transformation::test::Person","name":"Person","properties":[{"taggedValues":{"doc.doc":"lastName of the person"},"name":"lastName"}]}]}],"package":"meta::analytics::search::transformation::test","name":"\\/personDetails","description":"person details","owners":["xyz","abc"],"projectCoordinates":{"versionId":"0.0.1-SNAPSHOT","groupId":"org.finos.test","artifactId":"test-project"},"id":"meta::analytics::search::transformation::test::personDetailsService","type":"Service"}');
}

function <> meta::analytics::search::transformation::test::testPackageableFunctionDocumentGeneration(): Boolean[1]
{
  let result = meta::analytics::search::transformation::buildDocument(meta::analytics::search::transformation::test::testPackageableFunction(), meta::analytics::search::transformation::test::buildTestProjectCoordinates())->cast(@meta::analytics::search::metamodel::BaseRootDocument);
  assert($result.type == meta::analytics::search::metamodel::DocumentType.Function);
  let json = $result->alloyToJSON();
  assert($json == '{"taggedValues":{},"package":"meta::analytics::search::transformation::test","name":"testPackageableFunction","projectCoordinates":{"versionId":"0.0.1-SNAPSHOT","groupId":"org.finos.test","artifactId":"test-project"},"id":"meta::analytics::search::transformation::test::testPackageableFunction","type":"Function"}');
}

function <> meta::analytics::search::transformation::test::testPackageableConnectionDocumentGeneration(): Boolean[1]
{
  let result = meta::analytics::search::transformation::buildDocument(meta::analytics::search::transformation::test::getConnectionElement()->toOne(), meta::analytics::search::transformation::test::buildTestProjectCoordinates())->cast(@meta::analytics::search::metamodel::BaseRootDocument);
  assert($result.type == meta::analytics::search::metamodel::DocumentType.Connection);
  let json = $result->alloyToJSON();
  assert($json == '{"taggedValues":{},"package":"meta::analytics::search::transformation::test","name":"MyConnection","projectCoordinates":{"versionId":"0.0.1-SNAPSHOT","groupId":"org.finos.test","artifactId":"test-project"},"id":"meta::analytics::search::transformation::test::MyConnection","type":"Connection"}');
}

function <> meta::analytics::search::transformation::test::testPackageableRuntimeDocumentGeneration(): Boolean[1]
{
  let result = meta::analytics::search::transformation::buildDocument(meta::analytics::search::transformation::test::getPackageableElement()->at(0), meta::analytics::search::transformation::test::buildTestProjectCoordinates())->cast(@meta::analytics::search::metamodel::BaseRootDocument);
  assert($result.type == meta::analytics::search::metamodel::DocumentType.Runtime);
  let json = $result->alloyToJSON();
  assert($json == '{"taggedValues":{},"package":"meta::analytics::search::transformation::test","name":"sampleRuntime","projectCoordinates":{"versionId":"0.0.1-SNAPSHOT","groupId":"org.finos.test","artifactId":"test-project"},"id":"meta::analytics::search::transformation::test::sampleRuntime","type":"Runtime"}');
}

function <> meta::analytics::search::transformation::test::testDataSpaceWithoutDescriptionDocumentGeneration(): Boolean[1]
{
  let result = meta::analytics::search::transformation::buildDocument(meta::analytics::search::transformation::test::getTestDataSpaceWithoutDescription(), meta::analytics::search::transformation::test::buildTestProjectCoordinates())->cast(@meta::analytics::search::metamodel::BaseRootDocument);
  assert($result.type == meta::analytics::search::metamodel::DocumentType.DataSpace);
  let json = $result->alloyToJSON();
  assert($json == '{"taggedValues":{},"package":"meta::analytics::search::transformation::test","defaultExecutionContext":"testContext","name":"TestDataSpace","projectCoordinates":{"versionId":"0.0.1-SNAPSHOT","groupId":"org.finos.test","artifactId":"test-project"},"id":"meta::analytics::search::transformation::test::TestDataSpace","type":"DataSpace","executionContexts":[{"runtimePath":"meta::analytics::search::transformation::test::TestRuntime","classes":[{"taggedValues":{},"package":"meta::analytics::search::transformation::test::Address","name":"Address","properties":[{"taggedValues":{},"name":"zipcode"}]},{"taggedValues":{},"stereotypes":["temporal.processingtemporal"],"package":"meta::analytics::search::transformation::test::Firm","name":"Firm","properties":[{"taggedValues":{},"name":"id"},{"taggedValues":{},"name":"employees"},{"taggedValues":{},"name":"incType"}]},{"taggedValues":{"doc.doc":"Entity Details"},"stereotypes":["temporal.processingtemporal","test.Test"],"package":"meta::analytics::search::transformation::test::LegalEntity","name":"LegalEntity","properties":[{"taggedValues":{},"stereotypes":["temporal.processingtemporal"],"name":"legalName"},{"taggedValues":{},"name":"address"},{"taggedValues":{},"stereotypes":["milestoning.generatedmilestoningdateproperty"],"name":"processingDate"},{"taggedValues":{},"stereotypes":["milestoning.generatedmilestoningdateproperty"],"name":"milestoning"}]},{"taggedValues":{"doc.doc":"Person Details"},"package":"meta::analytics::search::transformation::test::Person","name":"Person","properties":[{"taggedValues":{"doc.doc":"firstName of the person"},"name":"firstName"},{"taggedValues":{"doc.doc":"lastName of the person"},"name":"lastName"}]},{"taggedValues":{},"package":"meta::analytics::search::transformation::test::Street","name":"Street","properties":[{"taggedValues":{},"name":"streetName"}]}],"name":"testContext","mappingPath":"meta::analytics::search::transformation::test::sampleRelationalMapping"}]}');
}

function <> meta::analytics::search::transformation::test::testDataSpaceWithDescriptionDocumentGeneration(): Boolean[1]
{
  let testDataspaceWithoutDescription = meta::analytics::search::transformation::test::getTestDataSpaceWithoutDescription();
  let testDataspace = ^$testDataspaceWithoutDescription(
    description = 'This is a test description'
  );
  let result = meta::analytics::search::transformation::buildDocument($testDataspace, meta::analytics::search::transformation::test::buildTestProjectCoordinates())->cast(@meta::analytics::search::metamodel::BaseRootDocument);
  assert($result.type == meta::analytics::search::metamodel::DocumentType.DataSpace);
  let json = $result->alloyToJSON();
  assert($json == '{"taggedValues":{},"package":"meta::analytics::search::transformation::test","defaultExecutionContext":"testContext","name":"TestDataSpace","description":"This is a test description","projectCoordinates":{"versionId":"0.0.1-SNAPSHOT","groupId":"org.finos.test","artifactId":"test-project"},"id":"meta::analytics::search::transformation::test::TestDataSpace","type":"DataSpace","executionContexts":[{"runtimePath":"meta::analytics::search::transformation::test::TestRuntime","classes":[{"taggedValues":{},"package":"meta::analytics::search::transformation::test::Address","name":"Address","properties":[{"taggedValues":{},"name":"zipcode"}]},{"taggedValues":{},"stereotypes":["temporal.processingtemporal"],"package":"meta::analytics::search::transformation::test::Firm","name":"Firm","properties":[{"taggedValues":{},"name":"id"},{"taggedValues":{},"name":"employees"},{"taggedValues":{},"name":"incType"}]},{"taggedValues":{"doc.doc":"Entity Details"},"stereotypes":["temporal.processingtemporal","test.Test"],"package":"meta::analytics::search::transformation::test::LegalEntity","name":"LegalEntity","properties":[{"taggedValues":{},"stereotypes":["temporal.processingtemporal"],"name":"legalName"},{"taggedValues":{},"name":"address"},{"taggedValues":{},"stereotypes":["milestoning.generatedmilestoningdateproperty"],"name":"processingDate"},{"taggedValues":{},"stereotypes":["milestoning.generatedmilestoningdateproperty"],"name":"milestoning"}]},{"taggedValues":{"doc.doc":"Person Details"},"package":"meta::analytics::search::transformation::test::Person","name":"Person","properties":[{"taggedValues":{"doc.doc":"firstName of the person"},"name":"firstName"},{"taggedValues":{"doc.doc":"lastName of the person"},"name":"lastName"}]},{"taggedValues":{},"package":"meta::analytics::search::transformation::test::Street","name":"Street","properties":[{"taggedValues":{},"name":"streetName"}]}],"name":"testContext","mappingPath":"meta::analytics::search::transformation::test::sampleRelationalMapping"}]}');
}

function meta::analytics::search::transformation::test::getTestDataSpaceWithoutDescription(): meta::pure::metamodel::dataSpace::DataSpace[1]
{
  let executionContext = ^meta::pure::metamodel::dataSpace::DataSpaceExecutionContext(
    name = 'testContext',
    mapping = meta::analytics::search::transformation::test::sampleRelationalMapping,
    defaultRuntime = ^meta::pure::runtime::PackageableRuntime(
      name = 'meta::analytics::search::transformation::test::TestRuntime',
      runtimeValue = ^meta::core::runtime::EngineRuntime(
        mappings = [meta::analytics::search::transformation::test::sampleRelationalMapping]
      )
    )
  );

  ^meta::pure::metamodel::dataSpace::DataSpace(
    name = 'TestDataSpace',
    package = ^Package(
      name = 'test',
      package = ^Package(
        name = 'transformation',
        package = ^Package(
          name = 'search',
          package = ^Package(
            name = 'analytics',
            package = ^Package(
              name = 'meta',
              package = ^Package()
            )
          )
        )
      )
    ),
    defaultExecutionContext = $executionContext,
    executionContexts = [$executionContext],
    title = 'Test DataSpace'
  );
}

function meta::analytics::search::transformation::test::testPackageableFunction(): PackageableElement[1]
{
  ^PackageableFunction(
    name = 'testPackageableFunction',
    package = ^Package(
      name = 'test',
      package = ^Package(
        name = 'transformation',
        package = ^Package(
          name = 'search',
          package = ^Package(
            name = 'analytics',
              package = ^Package(
                name = 'meta',
                package = ^Package()
            )
          )
        )
      )
    )
  )
}

function meta::analytics::search::transformation::test::getConnectionElement(): meta::pure::metamodel::PackageableElement[*]
{
   meta::legend::compileLegendGrammar('###Connection\n'+
  'RelationalDatabaseConnection meta::analytics::search::transformation::test::MyConnection\n'+
  '{\n'+
    'store: store::TestDB;\n'+
    'type: H2;\n'+
    'specification: LocalH2\n'+
    '{\n'+
      'testDataSetupSqls: [];\n'+
    '};\n'+
    'auth: DefaultH2;\n'+
  '}'
  );
}

function meta::analytics::search::transformation::test::getPackageableElement(): meta::pure::metamodel::PackageableElement[*]
{
  meta::legend::compileLegendGrammar('###Runtime\n'+
  'Runtime meta::analytics::search::transformation::test::sampleRuntime\n'+
  '{\n'+
    'mappings:\n'+
    '[\n'+
      'meta::analytics::search::transformation::test::sampleRelationalMapping\n'+
    '];\n'+
    'connections:\n'+
    '[\n'+
      ' meta::analytics::search::transformation::test::sampleDB:\n'+
       '[\n'+
        'connection_1 : #{\n' +
                 'RelationalDatabaseConnection\n'+
                  '{\n'+
                    'store: meta::analytics::search::transformation::test::sampleDB;\n'+
                    'type: H2;\n'+
                    'specification: LocalH2\n'+
                    '{\n'+
                      'testDataSetupSqls: [];\n'+
                    '};\n'+
                    'auth: DefaultH2;\n'+
                  '}\n' +
            '}#\n' +
       ']\n'+
    '];\n'+
  '}\n'+
  '###Mapping\n'+
  'Mapping meta::analytics::search::transformation::test::sampleRelationalMapping\n' +
  '(\n'+
  ')\n'+
  '###Relational\n'+
  'Database meta::analytics::search::transformation::test::sampleDB\n'+
  '(\n'+
  'Schema sampleSchema\n'+
  '(\n'+
  'Table sampleTable\n'+
  '(\n'+
  'id INTEGER,\n'+
  'name VARCHAR(200)\n'+
  ')\n'+
  ')\n'+
  'Table FirmTable\n'+
  '(\n'+
  'id INTEGER PRIMARY KEY,\n'+
  'legalName VARCHAR(200)\n'+
  ')\n'+
  'Table PersonTable\n'+
  '(\n'+
  'id INTEGER PRIMARY KEY,\n'+
  'firmID INTEGER,\n'+
  'firstName VARCHAR(200),\n'+
  'lastName VARCHAR(200)\n'+
  ')\n'+
  'Table AddressTable\n'+
  '(\n'+
  'id INTEGER PRIMARY KEY,\n'+
  'firmID INTEGER,\n'+
  'name VARCHAR(200)\n'+
  ')\n'+

'Join firm_person(PersonTable.firmID = FirmTable.id)\n'+
'Join firm_address(AddressTable.firmID = FirmTable.id)\n'+
  ')'
  );
}

function meta::analytics::search::transformation::test::getService(): meta::legend::service::metamodel::Service[1]
{
  ^meta::legend::service::metamodel::Service(
    pattern = '/personDetails',
    owners = ['xyz', 'abc'],
    documentation = 'person details',
    execution = ^meta::legend::service::metamodel::PureSingleExecution
    (
      func = |meta::analytics::search::transformation::test::Person.all()->project([x|$x.lastName], ['Last Name']),
      mapping = meta::analytics::search::transformation::test::sampleRelationalMapping,
      runtime =  meta::analytics::search::transformation::test::getPackageableElement()->filter(x| $x->instanceOf(meta::pure::runtime::PackageableRuntime))->cast(@meta::pure::runtime::PackageableRuntime).runtimeValue->toOne()
    ),
    autoActivateUpdates = true,
    name = 'personDetailsService',
    package = meta::analytics::search::transformation::test
  )
}


###Relational
Database meta::analytics::search::transformation::test::sampleDB
(
  include meta::analytics::search::transformation::test::sampleDBTest
  Schema sampleSchema
  (
    Table sampleTable
    (
      id INTEGER,
      name VARCHAR(200)
    )
  )
  Table FirmTable
  (
    id INTEGER PRIMARY KEY,
    legalName VARCHAR(200)
  )
  Table PersonTable
  (
    id INTEGER PRIMARY KEY,
    firmID INTEGER,
    firstName VARCHAR(200),
    lastName VARCHAR(200)
  )
  Table AddressTable
  (
    id INTEGER PRIMARY KEY,
    firmID INTEGER,
    name VARCHAR(200)
  )

  Join firm_person(PersonTable.firmID = FirmTable.id)
  Join firm_address(AddressTable.firmID = FirmTable.id)
)

###Relational
Database meta::analytics::search::transformation::test::sampleDBTest
(
  Table testTable
  (
    col1 INTEGER,
    col2 INTEGER
  )
)


###Pure
Enum meta::analytics::search::transformation::test::IncType
{
  Corp,
  LLC
}

Class <> {doc.doc = 'To add further details', doc.doc = 'Entity Details'} meta::analytics::search::transformation::test::LegalEntity
{
  <> legalName: String[1];
  address: meta::analytics::search::transformation::test::Address[1];
}

Class <> meta::analytics::search::transformation::test::Firm extends meta::analytics::search::transformation::test::LegalEntity
{
  id: Decimal[1];
  employees: meta::analytics::search::transformation::test::Person[1..*];
  incType: meta::analytics::search::transformation::test::IncType[1];
  employeeSize() {$this.employees->count()}: Number[1];
}


Class {doc.doc = 'Person Details'} meta::analytics::search::transformation::test::Person
{
  {doc.doc = 'firstName of the person'}
  firstName: String[1];
  {doc.doc = 'lastName of the person'}
  lastName: String[1];
}

Class meta::analytics::search::transformation::test::Address
{
  zipcode: Integer[1];
}

Class meta::analytics::search::transformation::test::Street extends meta::analytics::search::transformation::test::Address
{
  streetName: String[1];
}

###Mapping
Mapping meta::analytics::search::transformation::test::sampleRelationalMapping
(
  include meta::analytics::search::transformation::test::sampleMappingTest
  *meta::analytics::search::transformation::test::Firm: Relational
  {
    ~primaryKey
    (
      [meta::analytics::search::transformation::test::sampleDB]FirmTable.id
    )
    ~mainTable [meta::analytics::search::transformation::test::sampleDB]FirmTable
    id: [meta::analytics::search::transformation::test::sampleDB]FirmTable.id,
    employees
    (
      firstName: [meta::analytics::search::transformation::test::sampleDB]PersonTable.firstName
    ),
    address: [meta::analytics::search::transformation::test::sampleDB]@firm_address
  }
  *meta::analytics::search::transformation::test::Person: Relational
  {
    ~primaryKey
    (
      [meta::analytics::search::transformation::test::sampleDB]PersonTable.id
    )
    ~mainTable [meta::analytics::search::transformation::test::sampleDB]PersonTable
    firstName: [meta::analytics::search::transformation::test::sampleDB]PersonTable.firstName,
    lastName: [meta::analytics::search::transformation::test::sampleDB]PersonTable.lastName
  }
  *meta::analytics::search::transformation::test::LegalEntity: Operation
  {
    meta::pure::router::operations::inheritance_OperationSetImplementation_1__SetImplementation_MANY_()
  }
  *meta::analytics::search::transformation::test::Address: Operation
  {
    meta::pure::router::operations::inheritance_OperationSetImplementation_1__SetImplementation_MANY_()
  }
  *meta::analytics::search::transformation::test::Street: Operation
  {
    meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(s1,s2)
  }
  meta::analytics::search::transformation::test::Street[s2]: Relational
  {
    ~primaryKey
    (
      [meta::analytics::search::transformation::test::sampleDB]AddressTable.id
    )
    ~mainTable [meta::analytics::search::transformation::test::sampleDB]AddressTable
    zipcode: [meta::analytics::search::transformation::test::sampleDB]AddressTable.id
  }
  meta::analytics::search::transformation::test::Street[s1]: Relational
  {
    ~primaryKey
    (
      [meta::analytics::search::transformation::test::sampleDB]AddressTable.id
    )
    ~mainTable [meta::analytics::search::transformation::test::sampleDB]AddressTable
    zipcode: [meta::analytics::search::transformation::test::sampleDB]AddressTable.id
  }
)

###Mapping
Mapping meta::analytics::search::transformation::test::sampleMappingTest
(

)






© 2015 - 2025 Weber Informatics LLC | Privacy Policy