package jetbrains.mps.make.facet.structure;

/*Generated by MPS */

import jetbrains.mps.smodel.runtime.BaseStructureAspectDescriptor;
import jetbrains.mps.smodel.runtime.ConceptDescriptor;
import jetbrains.mps.smodel.runtime.EnumerationDescriptor;
import java.util.Collection;
import java.util.Arrays;
import org.jetbrains.annotations.Nullable;
import jetbrains.mps.smodel.adapter.ids.SConceptId;
import jetbrains.mps.smodel.runtime.DataTypeDescriptor;
import org.jetbrains.mps.openapi.language.SAbstractConcept;
import jetbrains.mps.smodel.runtime.impl.ConceptDescriptorBuilder2;
import jetbrains.mps.smodel.runtime.ConceptKind;
import jetbrains.mps.smodel.runtime.StaticScope;
import jetbrains.mps.smodel.adapter.ids.MetaIdFactory;
import jetbrains.mps.smodel.adapter.ids.PrimitiveTypeId;

public class StructureAspectDescriptor extends BaseStructureAspectDescriptor {
  /*package*/ final ConceptDescriptor myConceptExtendsFacetReference = createDescriptorForExtendsFacetReference();
  /*package*/ final ConceptDescriptor myConceptFacetDeclaration = createDescriptorForFacetDeclaration();
  /*package*/ final ConceptDescriptor myConceptFacetJavaClassExpression = createDescriptorForFacetJavaClassExpression();
  /*package*/ final ConceptDescriptor myConceptFacetReference = createDescriptorForFacetReference();
  /*package*/ final ConceptDescriptor myConceptFacetReferenceExpression = createDescriptorForFacetReferenceExpression();
  /*package*/ final ConceptDescriptor myConceptForeignParametersComponentExpression = createDescriptorForForeignParametersComponentExpression();
  /*package*/ final ConceptDescriptor myConceptForeignParametersExpression = createDescriptorForForeignParametersExpression();
  /*package*/ final ConceptDescriptor myConceptIFacet = createDescriptorForIFacet();
  /*package*/ final ConceptDescriptor myConceptIPropertyExpression = createDescriptorForIPropertyExpression();
  /*package*/ final ConceptDescriptor myConceptLocalParametersComponentExpression = createDescriptorForLocalParametersComponentExpression();
  /*package*/ final ConceptDescriptor myConceptLocalParametersExpression = createDescriptorForLocalParametersExpression();
  /*package*/ final ConceptDescriptor myConceptNamedFacetReference = createDescriptorForNamedFacetReference();
  /*package*/ final ConceptDescriptor myConceptParametersDeclaration = createDescriptorForParametersDeclaration();
  /*package*/ final ConceptDescriptor myConceptRelatedFacetReference = createDescriptorForRelatedFacetReference();
  /*package*/ final ConceptDescriptor myConceptResourceClassifierType = createDescriptorForResourceClassifierType();
  /*package*/ final ConceptDescriptor myConceptResourceSpecificPropertiesExpression = createDescriptorForResourceSpecificPropertiesExpression();
  /*package*/ final ConceptDescriptor myConceptResourceTypeDeclaration = createDescriptorForResourceTypeDeclaration();
  /*package*/ final ConceptDescriptor myConceptTargetDeclaration = createDescriptorForTargetDeclaration();
  /*package*/ final ConceptDescriptor myConceptTargetDependency = createDescriptorForTargetDependency();
  /*package*/ final ConceptDescriptor myConceptTargetReferenceExpression = createDescriptorForTargetReferenceExpression();
  /*package*/ final EnumerationDescriptor myEnumerationResourcesPolicy = new EnumerationDescriptor_ResourcesPolicy();
  /*package*/ final EnumerationDescriptor myEnumerationTargetDependencyQualifier = new EnumerationDescriptor_TargetDependencyQualifier();
  private final LanguageConceptSwitch myIndexSwitch;

  public StructureAspectDescriptor() {
    myIndexSwitch = new LanguageConceptSwitch();
  }


  @Override
  public void reportDependencies(jetbrains.mps.smodel.runtime.StructureAspectDescriptor.Dependencies deps) {
    deps.extendedLanguage(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, "jetbrains.mps.lang.core");
    deps.extendedLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage");
    deps.extendedLanguage(0xa247e09e243545baL, 0xb8d207e93feba96aL, "jetbrains.mps.baseLanguage.tuples");
    deps.aggregatedLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage");
    deps.aggregatedLanguage(0x95f8a3e6f9944ca0L, 0xa65e763c9bae2d3bL, "jetbrains.mps.make.script");
  }

  @Override
  public Collection<ConceptDescriptor> getDescriptors() {
    return Arrays.asList(myConceptExtendsFacetReference, myConceptFacetDeclaration, myConceptFacetJavaClassExpression, myConceptFacetReference, myConceptFacetReferenceExpression, myConceptForeignParametersComponentExpression, myConceptForeignParametersExpression, myConceptIFacet, myConceptIPropertyExpression, myConceptLocalParametersComponentExpression, myConceptLocalParametersExpression, myConceptNamedFacetReference, myConceptParametersDeclaration, myConceptRelatedFacetReference, myConceptResourceClassifierType, myConceptResourceSpecificPropertiesExpression, myConceptResourceTypeDeclaration, myConceptTargetDeclaration, myConceptTargetDependency, myConceptTargetReferenceExpression);
  }

  @Override
  @Nullable
  public ConceptDescriptor getDescriptor(SConceptId id) {
    switch (myIndexSwitch.index(id)) {
      case LanguageConceptSwitch.ExtendsFacetReference:
        return myConceptExtendsFacetReference;
      case LanguageConceptSwitch.FacetDeclaration:
        return myConceptFacetDeclaration;
      case LanguageConceptSwitch.FacetJavaClassExpression:
        return myConceptFacetJavaClassExpression;
      case LanguageConceptSwitch.FacetReference:
        return myConceptFacetReference;
      case LanguageConceptSwitch.FacetReferenceExpression:
        return myConceptFacetReferenceExpression;
      case LanguageConceptSwitch.ForeignParametersComponentExpression:
        return myConceptForeignParametersComponentExpression;
      case LanguageConceptSwitch.ForeignParametersExpression:
        return myConceptForeignParametersExpression;
      case LanguageConceptSwitch.IFacet:
        return myConceptIFacet;
      case LanguageConceptSwitch.IPropertyExpression:
        return myConceptIPropertyExpression;
      case LanguageConceptSwitch.LocalParametersComponentExpression:
        return myConceptLocalParametersComponentExpression;
      case LanguageConceptSwitch.LocalParametersExpression:
        return myConceptLocalParametersExpression;
      case LanguageConceptSwitch.NamedFacetReference:
        return myConceptNamedFacetReference;
      case LanguageConceptSwitch.ParametersDeclaration:
        return myConceptParametersDeclaration;
      case LanguageConceptSwitch.RelatedFacetReference:
        return myConceptRelatedFacetReference;
      case LanguageConceptSwitch.ResourceClassifierType:
        return myConceptResourceClassifierType;
      case LanguageConceptSwitch.ResourceSpecificPropertiesExpression:
        return myConceptResourceSpecificPropertiesExpression;
      case LanguageConceptSwitch.ResourceTypeDeclaration:
        return myConceptResourceTypeDeclaration;
      case LanguageConceptSwitch.TargetDeclaration:
        return myConceptTargetDeclaration;
      case LanguageConceptSwitch.TargetDependency:
        return myConceptTargetDependency;
      case LanguageConceptSwitch.TargetReferenceExpression:
        return myConceptTargetReferenceExpression;
      default:
        return null;
    }
  }

  @Override
  public Collection<DataTypeDescriptor> getDataTypeDescriptors() {
    return Arrays.asList(myEnumerationResourcesPolicy, myEnumerationTargetDependencyQualifier);
  }

  /*package*/ int internalIndex(SAbstractConcept c) {
    return myIndexSwitch.index(c);
  }

  private static ConceptDescriptor createDescriptorForExtendsFacetReference() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "ExtendsFacetReference", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5979ed6d2b23b819L);
    b.class_(false, false, false);
    // extends: jetbrains.mps.make.facet.structure.FacetReference
    b.super_(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5979ed6d2b21b2f2L);
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/6447445394688555033");
    b.version(3);
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForFacetDeclaration() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "FacetDeclaration", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5912a2ab1cd24c13L);
    b.class_(false, false, true);
    b.parent(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L);
    b.parent(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x3ff8b7a0d94242e1L);
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/6418371274763029523");
    b.version(3);
    b.aggregate("extended", 0x5979ed6d2b21b2feL).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5979ed6d2b23b819L).optional(true).ordered(true).multiple(true).origin("6447445394688422654").done();
    b.aggregate("required", 0x5979ed6d2b21b300L).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x73e720709e312229L).optional(true).ordered(true).multiple(true).origin("6447445394688422656").done();
    b.aggregate("optional", 0x5979ed6d2b21b301L).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x73e720709e312229L).optional(true).ordered(true).multiple(true).origin("6447445394688422657").done();
    b.aggregate("targetDeclaration", 0x5912a2ab1cd4153eL).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5912a2ab1cd24c3dL).optional(true).ordered(true).multiple(true).origin("6418371274763146558").done();
    b.alias("Facet");
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForFacetJavaClassExpression() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "FacetJavaClassExpression", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x1a4b910f856c1c94L);
    b.class_(false, false, false);
    // extends: jetbrains.mps.baseLanguage.structure.Expression
    b.super_(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c37f506fL);
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/1894767564088417428");
    b.version(3);
    b.associate("facet", 0x1a4b910f856c1d9fL).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5912a2ab1cd24c13L).optional(false).origin("1894767564088417695").done();
    b.alias("facet class/");
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForFacetReference() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "FacetReference", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5979ed6d2b21b2f2L);
    b.class_(false, true, false);
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/6447445394688422642");
    b.version(3);
    b.associate("facet", 0x5979ed6d2b21b2f3L).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5912a2ab1cd24c13L).optional(false).origin("6447445394688422643").done();
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForFacetReferenceExpression() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "FacetReferenceExpression", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x639ef64ff4850bb0L);
    b.class_(false, false, false);
    // extends: jetbrains.mps.baseLanguage.structure.Expression
    b.super_(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c37f506fL);
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/7178445679340358576");
    b.version(3);
    b.aggregate("reference", 0x639ef64ff4850bb2L).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x1aa1f6c694329f95L).optional(false).ordered(true).multiple(false).origin("7178445679340358578").done();
    b.kind(ConceptKind.NORMAL, StaticScope.NONE);
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForForeignParametersComponentExpression() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "ForeignParametersComponentExpression", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x2e69d2eba535f3b1L);
    b.class_(false, false, false);
    // extends: jetbrains.mps.baseLanguage.structure.DotExpression
    b.super_(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x116b46a08c4L);
    b.parent(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x1e69fdb2a034c3f8L);
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/3344436107830227889");
    b.version(3);
    b.aggregate("expression", 0x2e69d2eba535f3b2L).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x2e69d2eba535f3b0L).optional(false).ordered(true).multiple(false).origin("3344436107830227890").specialize(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x116b46a08c4L, 0x116b46a4416L).done();
    b.kind(ConceptKind.NORMAL, StaticScope.NONE);
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForForeignParametersExpression() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "ForeignParametersExpression", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x2e69d2eba535f3b0L);
    b.class_(false, false, false);
    // extends: jetbrains.mps.baseLanguage.structure.Expression
    b.super_(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c37f506fL);
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/3344436107830227888");
    b.version(3);
    b.associate("target", 0x2e69d2eba535f3beL).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5912a2ab1cd24c3dL).optional(false).origin("3344436107830227902").done();
    b.kind(ConceptKind.NORMAL, StaticScope.NONE);
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForIFacet() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "IFacet", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5912a2ab1cd24c11L);
    b.interface_();
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/6418371274763029521");
    b.version(3);
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForIPropertyExpression() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "IPropertyExpression", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x1e69fdb2a034c3f8L);
    b.interface_();
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/2191561637326275576");
    b.version(3);
    b.aggregate("resource", 0x716499a90689fe76L).target(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c37f506fL).optional(true).ordered(true).multiple(false).origin("8170824575195151990").done();
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForLocalParametersComponentExpression() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "LocalParametersComponentExpression", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x6598ce4d2f231cb3L);
    b.class_(false, false, false);
    // extends: jetbrains.mps.baseLanguage.structure.DotExpression
    b.super_(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x116b46a08c4L);
    b.parent(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x1e69fdb2a034c3f8L);
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/7320828025189375155");
    b.version(3);
    b.aggregate("expression", 0x6598ce4d2f231cb4L).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x6598ce4d2f231cb2L).optional(true).ordered(true).multiple(false).origin("7320828025189375156").specialize(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x116b46a08c4L, 0x116b46a4416L).done();
    b.kind(ConceptKind.NORMAL, StaticScope.NONE);
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForLocalParametersExpression() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "LocalParametersExpression", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x6598ce4d2f231cb2L);
    b.class_(false, false, false);
    // extends: jetbrains.mps.baseLanguage.structure.Expression
    b.super_(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c37f506fL);
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/7320828025189375154");
    b.version(3);
    b.kind(ConceptKind.NORMAL, StaticScope.NONE);
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForNamedFacetReference() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "NamedFacetReference", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x1aa1f6c694329f95L);
    b.class_(false, false, false);
    // extends: jetbrains.mps.make.facet.structure.FacetReference
    b.super_(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5979ed6d2b21b2f2L);
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/1919086248986845077");
    b.version(3);
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForParametersDeclaration() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "ParametersDeclaration", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x6598ce4d2f22a97eL);
    b.class_(false, false, false);
    // extends: jetbrains.mps.baseLanguage.tuples.structure.NamedTupleDeclaration
    b.super_(0xa247e09e243545baL, 0xb8d207e93feba96aL, 0x1208fa48aa5L);
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/7320828025189345662");
    b.version(3);
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForRelatedFacetReference() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "RelatedFacetReference", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x73e720709e312229L);
    b.class_(false, false, false);
    // extends: jetbrains.mps.make.facet.structure.FacetReference
    b.super_(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5979ed6d2b21b2f2L);
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/8351679702044320297");
    b.version(3);
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForResourceClassifierType() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "ResourceClassifierType", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x1a6da65e8aea0b4L);
    b.class_(false, false, false);
    // extends: jetbrains.mps.baseLanguage.structure.ClassifierType
    b.super_(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x101de48bf9eL);
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/119022571402207412");
    b.version(3);
    b.associate("resource", 0x1a6da65e8aea0b5L).target(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x101d9d3ca30L).optional(true).origin("119022571402207413").specialize(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x101de48bf9eL, 0x101de490babL).done();
    b.kind(ConceptKind.INTERFACE, StaticScope.NONE);
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForResourceSpecificPropertiesExpression() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "ResourceSpecificPropertiesExpression", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x1e69fdb2a034c3f6L);
    b.class_(false, false, false);
    // extends: jetbrains.mps.baseLanguage.structure.Expression
    b.super_(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c37f506fL);
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/2191561637326275574");
    b.version(3);
    b.aggregate("properties", 0x1e69fdb2a034c3f7L).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x1e69fdb2a034c3f8L).optional(false).ordered(true).multiple(false).origin("2191561637326275575").done();
    b.aggregate("resource", 0x1e69fdb2a034c408L).target(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c37f506fL).optional(false).ordered(true).multiple(false).origin("2191561637326275592").done();
    b.kind(ConceptKind.NORMAL, StaticScope.NONE);
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForResourceTypeDeclaration() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "ResourceTypeDeclaration", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x1a6da65e8aab1d4L);
    b.class_(false, false, false);
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/119022571401949652");
    b.version(3);
    b.aggregate("resourceType", 0x1a6da65e8aab1d7L).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x1a6da65e8aea0b4L).optional(false).ordered(true).multiple(true).origin("119022571401949655").done();
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForTargetDeclaration() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "TargetDeclaration", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5912a2ab1cd24c3dL);
    b.class_(false, false, false);
    b.parent(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L);
    b.parent(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x3ff8b7a0d94242e1L);
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/6418371274763029565");
    b.version(3);
    b.property("resourcesPolicy", 0x1740bd43b75c4b28L).type(MetaIdFactory.dataTypeId(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x1740bd43b75c4b23L)).origin("4241665505353454005").done();
    b.property("optional", 0x642ffc6d854ec1c5L).type(PrimitiveTypeId.BOOLEAN).origin("7219266275016360389").done();
    b.property("weight", 0x28fa08363635e31L).type(PrimitiveTypeId.INTEGER).origin("184542595914096177").done();
    b.associate("overrides", 0x5912a2ab1cd24c55L).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5912a2ab1cd24c3dL).optional(true).origin("6418371274763029589").done();
    b.aggregate("parameters", 0x6598ce4d2f20bbdfL).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x6598ce4d2f22a97eL).optional(true).ordered(true).multiple(false).origin("7320828025189219295").done();
    b.aggregate("dependency", 0x5912a2ab1cd41539L).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5912a2ab1cd24c60L).optional(true).ordered(true).multiple(true).origin("6418371274763146553").done();
    b.aggregate("job", 0x20c069f80a974bcaL).target(0x95f8a3e6f9944ca0L, 0xa65e763c9bae2d3bL, 0x70276038dc4d7edL).optional(false).ordered(true).multiple(false).origin("2360002718792633290").done();
    b.aggregate("input", 0x1a6da65e8aab1e0L).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x1a6da65e8aab1d4L).optional(true).ordered(true).multiple(false).origin("119022571401949664").done();
    b.aggregate("output", 0x1a6da65e8aab1e1L).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x1a6da65e8aab1d4L).optional(true).ordered(true).multiple(false).origin("119022571401949665").done();
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForTargetDependency() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "TargetDependency", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5912a2ab1cd24c60L);
    b.class_(false, false, false);
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/6418371274763029600");
    b.version(3);
    b.property("qualifier", 0x73e720709e3139e9L).type(MetaIdFactory.dataTypeId(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x73e720709e3139e2L)).origin("4241665505353454007").done();
    b.associate("dependsOn", 0x5912a2ab1cd24c63L).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5912a2ab1cd24c3dL).optional(false).origin("6418371274763029603").done();
    return b.create();
  }
  private static ConceptDescriptor createDescriptorForTargetReferenceExpression() {
    ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.make.facet", "TargetReferenceExpression", 0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x78c916bd7aecaff7L);
    b.class_(false, false, false);
    // extends: jetbrains.mps.baseLanguage.structure.Expression
    b.super_(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c37f506fL);
    b.origin("r:b16ff46d-fa06-479d-9f5c-5b6e17e7f1b2(jetbrains.mps.make.facet.structure)/8703512757937156087");
    b.version(3);
    b.associate("target", 0x78c916bd7aecc3bcL).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5912a2ab1cd24c3dL).optional(false).origin("8703512757937161148").done();
    b.aggregate("facetRef", 0x78c916bd7aecc3aeL).target(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x639ef64ff4850bb0L).optional(false).ordered(true).multiple(false).origin("8703512757937161134").done();
    b.kind(ConceptKind.NORMAL, StaticScope.NONE);
    return b.create();
  }
}
