package jetbrains.mps.baseLanguage.regexp.dataFlow;

/*Generated by MPS */

import jetbrains.mps.lang.dataFlow.framework.DataFlowAspectDescriptorBase;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
import jetbrains.mps.lang.dataFlow.framework.IDataFlowBuilder;
import org.jetbrains.mps.openapi.language.SAbstractConcept;
import java.util.Collections;
import jetbrains.mps.lang.smodel.ConceptSwitchIndex;
import jetbrains.mps.lang.smodel.ConceptSwitchIndexBuilder;
import jetbrains.mps.smodel.adapter.ids.MetaIdFactory;

public class DataFlowAspectDescriptorImpl extends DataFlowAspectDescriptorBase {

  @NotNull
  @Override
  public Collection<IDataFlowBuilder> getDataFlowBuilders(SAbstractConcept concept) {
    SAbstractConcept cncpt = ((SAbstractConcept) concept);
    switch (conceptIndex.index(cncpt)) {
      case 0:
        return Collections.<IDataFlowBuilder>singletonList(new BinaryRegexp_DataFlow());
      case 1:
        return Collections.<IDataFlowBuilder>singletonList(new FindMatchExpression_DataFlow());
      case 2:
        return Collections.<IDataFlowBuilder>singletonList(new FindMatchStatement_DataFlow());
      case 3:
        return Collections.<IDataFlowBuilder>singletonList(new ForEachMatchStatement_DataFlow());
      case 4:
        return Collections.<IDataFlowBuilder>singletonList(new InlineRegexpExpression_DataFlow());
      case 5:
        return Collections.<IDataFlowBuilder>singletonList(new LookRegexp_DataFlow());
      case 6:
        return Collections.<IDataFlowBuilder>singletonList(new MatchParensRegexp_DataFlow());
      case 7:
        return Collections.<IDataFlowBuilder>singletonList(new MatchRegexpExpression_DataFlow());
      case 8:
        return Collections.<IDataFlowBuilder>singletonList(new MatchRegexpOperation_DataFlow());
      case 9:
        return Collections.<IDataFlowBuilder>singletonList(new MatchRegexpStatement_DataFlow());
      case 10:
        return Collections.<IDataFlowBuilder>singletonList(new MatchVariableReference_DataFlow());
      case 11:
        return Collections.<IDataFlowBuilder>singletonList(new MatchVariableReferenceRegexp_DataFlow());
      case 12:
        return Collections.<IDataFlowBuilder>singletonList(new MatchVariableReferenceReplacement_DataFlow());
      case 13:
        return Collections.<IDataFlowBuilder>singletonList(new ParensRegexp_DataFlow());
      case 14:
        return Collections.<IDataFlowBuilder>singletonList(new Regexp_DataFlow());
      case 15:
        return Collections.<IDataFlowBuilder>singletonList(new RegexpDeclaration_DataFlow());
      case 16:
        return Collections.<IDataFlowBuilder>singletonList(new RegexpDeclarationReferenceRegexp_DataFlow());
      case 17:
        return Collections.<IDataFlowBuilder>singletonList(new RegexpExpression_DataFlow());
      case 18:
        return Collections.<IDataFlowBuilder>singletonList(new Regexps_DataFlow());
      case 19:
        return Collections.<IDataFlowBuilder>singletonList(new ReplaceRegexpOperation_DataFlow());
      case 20:
        return Collections.<IDataFlowBuilder>singletonList(new ReplaceWithRegexpOperation_DataFlow());
      case 21:
        return Collections.<IDataFlowBuilder>singletonList(new SplitOperation_DataFlow());
      case 22:
        return Collections.<IDataFlowBuilder>singletonList(new SymbolClassRegexp_DataFlow());
      case 23:
        return Collections.<IDataFlowBuilder>singletonList(new UnaryRegexp_DataFlow());
      default:
    }
    return Collections.<IDataFlowBuilder>emptyList();
  }
  private static final ConceptSwitchIndex conceptIndex = new ConceptSwitchIndexBuilder().put(MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x11174c56bf9L), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x550fbf4ebc5de3f5L), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x1119d8807a3L), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x1119caff72eL), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x1117648961dL), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x1118de32185L), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x111797946c7L), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x112972a0c32L), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x11c9466ae95L), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x11176652f14L), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x1117987ff5eL), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x1118e0a1c55L), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x34ae970c192ab94eL), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x111752101b0L), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x11174a06efdL), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x11174a6454dL), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x1117f58ea2aL), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x1118ea37105L), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x1117f550b6dL), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x34ae970c1923d18aL), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x11c94680172L), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x11c942ab86bL), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x11178e2916aL), MetaIdFactory.conceptId(0xdaafa647f1f74b0bL, 0xb09669cd7c8408c0L, 0x11174c678adL)).seal();
}
