private String getMessage(final ParserMessage msg) {
    if (msg instanceof AmbiguousRootParserMessage) {
      final TypeNode tn = model.getRoot();
      final AmbiguousRootParserMessage m = (AmbiguousRootParserMessage) msg;
      return GuidedDecisionTreeConstants.INSTANCE.parserMessageAmbiguousRootParserMessage(
          tn.getClassName(), m.getClassName());

    } else if (msg instanceof BindingNotFoundParserMessage) {
      final BindingNotFoundParserMessage m = (BindingNotFoundParserMessage) msg;
      return GuidedDecisionTreeConstants.INSTANCE.parserMessageBindingNotFoundParserMessage(
          m.getBinding());

    } else if (msg instanceof DataTypeConversionErrorParserMessage) {
      final DataTypeConversionErrorParserMessage m = (DataTypeConversionErrorParserMessage) msg;
      return GuidedDecisionTreeConstants.INSTANCE.parserMessageDataTypeConversionErrorParserMessage(
          m.getValue(), m.getDataTypeClassName());

    } else if (msg instanceof DataTypeNotFoundParserMessage) {
      final DataTypeNotFoundParserMessage m = (DataTypeNotFoundParserMessage) msg;
      return GuidedDecisionTreeConstants.INSTANCE.parserMessageDataTypeNotFoundParserMessage(
          m.getClassName(), m.getFieldName());

    } else if (msg instanceof DefaultParserMessage) {
      final DefaultParserMessage m = (DefaultParserMessage) msg;
      return GuidedDecisionTreeConstants.INSTANCE.parserMessageDefaultParserMessage(m.getMessage());

    } else if (msg instanceof InvalidRootParserMessage) {
      return GuidedDecisionTreeConstants.INSTANCE.parserMessageInvalidRootParserMessage();

    } else if (msg instanceof UnsupportedFieldConstraintParserMessage) {
      return GuidedDecisionTreeConstants.INSTANCE
          .parserMessageUnsupportedFieldConstraintParserMessage();

    } else if (msg instanceof UnsupportedFieldConstraintTypeParserMessage) {
      return GuidedDecisionTreeConstants.INSTANCE
          .parserMessageUnsupportedFieldConstraintTypeParserMessage();

    } else if (msg instanceof UnsupportedFieldNatureTypeParserMessage) {
      return GuidedDecisionTreeConstants.INSTANCE
          .parserMessageUnsupportedFieldNatureTypeParserMessage();

    } else if (msg instanceof UnsupportedIActionParserMessage) {
      return GuidedDecisionTreeConstants.INSTANCE.parserMessageUnsupportedIActionParserMessage();

    } else if (msg instanceof UnsupportedIPatternParserMessage) {
      return GuidedDecisionTreeConstants.INSTANCE.parserMessageUnsupportedIPatternParserMessage();

    } else {
      return GuidedDecisionTreeConstants.INSTANCE.parserMessageUnknownMessage();
    }
  }