Class MFDataModelFormatter


  • class MFDataModelFormatter
    extends java.lang.Object
    Takes an MFDataModel and formats it to a String (and later on we will also implement formatting to a FormattedMessage).
    • Method Detail

      • format

        java.lang.String format​(java.util.Map<java.lang.String,​java.lang.Object> arguments)
      • findBestMatchingPattern

        private MFDataModel.Pattern findBestMatchingPattern​(MFDataModel.SelectMessage sm,
                                                            java.util.Map<java.lang.String,​java.lang.Object> variables,
                                                            java.util.Map<java.lang.String,​java.lang.Object> arguments)
      • matchSelectorKeys

        private java.util.List<java.lang.String> matchSelectorKeys​(MFDataModelFormatter.ResolvedSelector rv,
                                                                   java.util.List<java.lang.String> keys)
        spec: The method MatchSelectorKeys is determined by the implementation. It takes as arguments a resolved _selector_ value `rv` and a list of string keys `keys`, and returns a list of string keys in preferential order. The returned list MUST contain only unique elements of the input list `keys`. The returned list MAY be empty. The most-preferred key is first, with each successive key appearing in order by decreasing preference.
      • formattingError

        private static void formattingError​(java.lang.String message)
      • getFormattingFunctionFactoryByName

        private FormatterFactory getFormattingFunctionFactoryByName​(java.lang.Object toFormat,
                                                                    java.lang.String functionName)
      • resolveLiteralOrVariable

        private static java.lang.Object resolveLiteralOrVariable​(MFDataModel.LiteralOrVariableRef value,
                                                                 java.util.Map<java.lang.String,​java.lang.Object> localVars,
                                                                 java.util.Map<java.lang.String,​java.lang.Object> arguments)
      • convertOptions

        private static java.util.Map<java.lang.String,​java.lang.Object> convertOptions​(java.util.Map<java.lang.String,​MFDataModel.Option> options,
                                                                                             java.util.Map<java.lang.String,​java.lang.Object> localVars,
                                                                                             java.util.Map<java.lang.String,​java.lang.Object> arguments)
      • formatExpression

        private FormattedPlaceholder formatExpression​(MFDataModel.Expression expression,
                                                      java.util.Map<java.lang.String,​java.lang.Object> variables,
                                                      java.util.Map<java.lang.String,​java.lang.Object> arguments)
        Formats an expression.
        Parameters:
        expression - the expression to format
        variables - local variables, created from declarations (`.input` and `.local`)
        arguments - the arguments passed at runtime to be formatted (`mf.format(arguments)`)
      • resolveDeclarations

        private java.util.Map<java.lang.String,​java.lang.Object> resolveDeclarations​(java.util.List<MFDataModel.Declaration> declarations,
                                                                                           java.util.Map<java.lang.String,​java.lang.Object> arguments)