Select class
Represents a message send of Intl.select
inside a message that is to
be internationalized. This corresponds to an ICU message syntax "select"
with arbitrary options.
- Inheritance
-
- Object
- Message
- ComplexMessage
- SubMessage
- Select
Constructors
- Select()
- Select.from(String mainArgument, List clauses, Message? parent)
-
Create a new Select providing
mainArgument
and the list of possible clauses. Each clause is expected to be a list whose first element is a variable name and whose second element is either a String or a list of strings and Messages or VariableSubstitutions.
Properties
- arguments → dynamic
-
We find the arguments from the top-level MainMessage and use those to
do variable substitutions. MainMessage overrides this to return
the actual arguments.
no setterinherited
-
attributeNames
→ List<
String> -
no setteroverride
-
cases
↔ Map<
String, Message> -
getter/setter pair
-
codeAttributeNames
→ List<
String> -
Return the list of attribute names to use when generating code. This
may be different from attributeNames if there are multiple aliases
that map to the same clause.
no setteroverride
- dartMessageName → String
-
Return the message name we would use for this when doing Dart code
generation, e.g. "Intl.plural".
no setteroverride
- examples → dynamic
-
We find the examples from the top-level MainMessage and use those
when writing out variables. MainMessage overrides this to return
the actual examples.
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- icuMessageName → String
-
Return the name of the message type, as it will be generated into an
ICU-type format. e.g. choice, select
no setteroverride
- mainArgument ↔ String?
-
The name of the main argument, which is expected to have the value which
is one of attributeNames and is used to decide which clause to use.
getter/setter pairinherited
- name → String
-
The name of the top-level MainMessage.
no setterinherited
- parent ↔ Message?
-
All Messages except a MainMessage are contained inside some parent,
terminating at an Intl.message call which supplies the arguments we
use for variable substitutions.
getter/setter pairinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
argumentsOfInterestFor(
MethodInvocation node) → Map -
Return the arguments that we care about for the select. In this
case they will all be passed in as a Map rather than as the named
arguments used in Plural/Gender.
override
-
checkArgs(
NamedExpression? args, List< String> parameterNames) → bool -
Verify that the args argument matches the method parameters and
isn't, e.g. passing string names instead of the argument values.
inherited
-
checkValidity(
MethodInvocation node, List arguments, String? outerName, FormalParameterList outerArgs, {bool nameAndArgsGenerated = false, bool examplesRequired = false}) → String? -
Verify that this looks like a correct
Intl.message/plural/gender/... invocation.
inherited
-
escapeAndValidateString(
String value) → String -
Escape the string for use in generated Dart code.
inherited
-
expanded(
[Function transform = _nullTransform]) → String -
Expand this string out into a printed form. The function
f
will be applied to any sub-messages, allowing this to be used to generate a form suitable for a wide variety of translation file formats.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toCode(
) → String -
Write out the generated representation of this message. This differs
from Plural/Gender in that it prints a literal map rather than
named arguments.
override
-
toJson(
) → Object -
We represent this in JSON as a List with the name of the message
(e.g. Intl.select), the index in the arguments list of the main argument,
and then a Map from the cases to the List of strings or sub-messages.
override
-
toString(
) → String -
A string representation of this object.
inherited
-
validate(
) → void -
Verify that a constructed message is valid.
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
-
operator [](
String attributeName) → Message? -
When we create these from strings or from AST nodes, we want to look up
and set their attributes by string names, so we override the indexing
operators so that they behave like maps with respect to those attribute
names.
override
-
operator []=(
String attributeName, dynamic rawValue) → void -
When we create these from strings or from AST nodes, we want to look up
and set their attributes by string names, so we override the indexing
operators so that they behave like maps with respect to those attribute
names.
override
Static Properties
- validSelectKey → RegExp
-
final
Constants
- selectPattern → const String