Exemple #1
0
  @NotNull
  public ConstraintsDescriptor getConstraintsDescriptor(@Nullable String fqName) {
    ConstraintsDescriptor descriptor = constraintsDescriptors.get(fqName);

    if (descriptor != null) {
      return descriptor;
    }

    if (!startLoad(fqName, LanguageAspect.CONSTRAINTS)) {
      return new IllegalConstraintsDescriptor(fqName);
    }

    try {
      try {
        LanguageRuntime languageRuntime =
            myLanguageRegistry.getLanguage(NameUtil.namespaceFromConceptFQName(fqName));
        ConstraintsAspectDescriptor constraintsAspectDescriptor;
        if (languageRuntime == null) {
          // Then language was just renamed and was not re-generated then it can happen that it has
          // no
          LOG.warn(
              "No language for: " + fqName + ", while looking for constraints descriptor.",
              new Throwable());
          constraintsAspectDescriptor = ConstraintsAspectInterpreted.getInstance();
        } else {
          constraintsAspectDescriptor = languageRuntime.getConstraintsAspectDescriptor();
        }
        descriptor = constraintsAspectDescriptor.getDescriptor(fqName);
      } catch (Throwable e) {
        LOG.warn("Exception while constraints descriptor creating", e);
      }

      if (descriptor == null) {
        descriptor = new IllegalConstraintsDescriptor(fqName);
      }

      constraintsDescriptors.put(fqName, descriptor);

      return descriptor;
    } finally {
      finishLoad(fqName, LanguageAspect.CONSTRAINTS);
    }
  }
Exemple #2
0
  private TextGenDescriptor getTextGenDescriptor(SConcept concept) {
    final String fqName = concept.getQualifiedName();

    TextGenDescriptor descriptor = textGenDescriptors.get(fqName);

    if (descriptor != null) {
      return descriptor;
    }

    if (!startLoad(fqName, LanguageAspect.TEXT_GEN)) {
      return new DefaultTextGenDescriptor();
    }

    try {
      LanguageRuntime languageRuntime =
          myLanguageRegistry.getLanguage(concept.getLanguage().getQualifiedName());
      TextGenAspectDescriptor textGenAspectDescriptor;
      if (languageRuntime == null) {
        // Then language was just renamed and was not re-generated then it can happen that it has no
        LOG.warn(
            String.format(
                "No language for concept %s, while looking for textgen descriptor.", fqName),
            new Throwable());
        textGenAspectDescriptor = new TextGenAspectInterpreted();
      } else {
        textGenAspectDescriptor = languageRuntime.getTextGenAspectDescriptor();
      }
      descriptor = textGenAspectDescriptor.getDescriptor(concept);

      if (descriptor == null) {
        descriptor = new DefaultTextGenDescriptor();
      }

      textGenDescriptors.put(fqName, descriptor);

      return descriptor;
    } finally {
      finishLoad(fqName, LanguageAspect.TEXT_GEN);
    }
  }
Exemple #3
0
  @NotNull
  public BehaviorDescriptor getBehaviorDescriptor(@Nullable String fqName) {
    BehaviorDescriptor descriptor = behaviorDescriptors.get(fqName);

    if (descriptor != null) {
      return descriptor;
    }

    if (!startLoad(fqName, LanguageAspect.BEHAVIOR)) {
      return NullSafeIllegalBehaviorDescriptor.INSTANCE;
    }

    try {
      try {
        LanguageRuntime languageRuntime =
            myLanguageRegistry.getLanguage(NameUtil.namespaceFromConceptFQName(fqName));
        if (languageRuntime == null) {
          LOG.warn(
              "No language for: " + fqName + ", while looking for behavior descriptor.",
              new Throwable());
        } else {
          descriptor = languageRuntime.getBehaviorAspectDescriptor().getDescriptor(fqName);
        }
      } catch (Throwable e) {
        LOG.warn("Exception while behavior descriptor creating", e);
      }

      if (descriptor == null) {
        //        descriptor = new IllegalBehaviorDescriptor(fqName);
        descriptor = new InterpretedBehaviorDescriptor(fqName);
      }

      behaviorDescriptors.put(fqName, descriptor);

      return descriptor;
    } finally {
      finishLoad(fqName, LanguageAspect.BEHAVIOR);
    }
  }
Exemple #4
0
  @NotNull
  public ConceptDescriptor getConceptDescriptor(@Nullable String fqName) {
    ConceptDescriptor descriptor = conceptDescriptors.get(fqName);

    if (descriptor != null) {
      return descriptor;
    }

    if (!startLoad(fqName, LanguageAspect.STRUCTURE)) {
      return new IllegalConceptDescriptor(fqName);
    }

    try {
      try {
        LanguageRuntime languageRuntime =
            LanguageRegistry.getInstance().getLanguage(NameUtil.namespaceFromConceptFQName(fqName));
        if (languageRuntime == null) {
          LOG.warning("No language for: " + fqName);
        } else {
          descriptor = languageRuntime.getStructureAspectDescriptor().getDescriptor(fqName);
        }
      } catch (Throwable e) {
        LOG.warning("Exception while structure descriptor creating: " + fqName, e);
      }

      if (descriptor == null) {
        // todo: maybe Interpreted?
        descriptor = new IllegalConceptDescriptor(fqName);
      }

      conceptDescriptors.put(fqName, descriptor);

      return descriptor;
    } finally {
      finishLoad(fqName, LanguageAspect.STRUCTURE);
    }
  }