protected void validateMapKeyClass_(List<IMessage> messages) {
    if (StringTools.isBlank(getMapKeyClass())) {
      messages.add(
          this.buildValidationMessage(
              this.getMapKeyClassTextRange(),
              JptJpaCoreValidationMessages.MAP_KEY_CLASS_NOT_DEFINED));
      return;
    }

    if (MappingTools.typeIsBasic(this.getJavaProject(), this.getFullyQualifiedMapKeyClass())) {
      return;
    }

    if (this.getResolvedMapKeyType() == null) {
      IType mapKeyJdtType =
          JavaProjectTools.findType(this.getJavaProject(), this.getFullyQualifiedMapKeyClass());
      if (mapKeyJdtType == null) {
        messages.add(
            this.buildValidationMessage(
                this.getMapKeyClassTextRange(),
                JptJpaCoreValidationMessages.MAP_KEY_CLASS_NOT_EXIST,
                this.getFullyQualifiedMapKeyClass()));
      }
      return;
    }
    if (this.getResolvedMapKeyEmbeddable() == null && this.getResolvedMapKeyEntity() == null) {
      messages.add(
          this.buildValidationMessage(
              this.getMapKeyClassTextRange(),
              JptJpaCoreValidationMessages.MAP_KEY_CLASS_MUST_BE_ENTITY_EMBEDDABLE_OR_BASIC_TYPE,
              this.getFullyQualifiedMapKeyClass()));
    }
  }
 public String getDefaultColumnName(NamedColumn column) {
   return MappingTools.buildJoinColumnDefaultName((JoinColumn) column, this);
 }
 public String getMetamodelFieldMapKeyTypeName() {
   return MappingTools.getMetamodelFieldMapKeyTypeName(this);
 }
 @SuppressWarnings("unchecked")
 protected Iterable<String> getCandidateMapKeyClassNames() {
   return IterableTools.concatenate(
       JavaProjectTools.getJavaClassNames(getJavaProject()),
       MappingTools.getPrimaryBasicTypeNames());
 }
 public SpecifiedColumn resolveOverriddenColumn(String attributeName) {
   return MappingTools.resolveOverriddenColumn(this.getOverridableTypeMapping(), attributeName);
 }