#
# Copyright (c) 1997-2018 Oracle and/or its affiliates. All rights reserved.
# Copyright 2004 The Apache Software Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

#########################################################################
# Conventions:
# - For error messages from particular tags, the resource should
#     - (a) have a name beginning with TAGNAME_
#     - (b) contain the name of the tag within the message
# - Generic tag messages -- i.e., those used in more than one tag --
#   should begin with TAG_
# - Errors for TagLibraryValidators should begin with TLV_
#########################################################################


#########################################################################
# Generic tag error messages
#########################################################################

TAG_NULL_ATTRIBUTE=\
    The "{0}" attribute illegally evaluated to "null" or "" in &lt;{1}&gt;

#########################################################################
# Specific tag error messages
#########################################################################

# CORE

CHOOSE_EXCLUSIVITY=\
    Only one (or is it two?) &lt;choose&gt; subtag may evaluate its body

EXPR_BAD_VALUE=\
    In &lt;expr&gt;, attribute value="{0}" didn't evaluate successfully, \
    but there was no "default" attribute and no non-whitespace content \
    for the tag.

FOREACH_STEP_NO_RESULTSET=\
    Step cannot be > 1 when iterating over a ResultSet with &lt;forEach&gt;

FOREACH_BAD_ITEMS=\
    Don't know how to iterate over supplied "items" in &lt;forEach&gt;

FORTOKENS_BAD_ITEMS=\
    "items" in &lt;forTokens&gt must be an instance of java.lang.String or \
    an instance of jakarta.el.ValueExpression that evaluates to a \
    java.lang.String;

IMPORT_BAD_RELATIVE=\
    In URL tags, when the "context" attribute is specified, \
    values of both "context" and "url" must start with "/".

IMPORT_REL_WITHOUT_HTTP=\
    Relative &lt;import&gt; from non-HTTP request not allowed
    
IMPORT_REL_WITHOUT_DISPATCHER=\
    Unable to get RequestDispatcher for Context: "{0}" and URL: "{1}". \
    Verify values and/or enable cross context access.

IMPORT_IO=\
    I/O error in &lt;import&gt; occurred reading "{0}"

IMPORT_ILLEGAL_STREAM=\
    Unexpected internal error during &lt;import&gt: \
    Target servlet called getWriter(), then getOutputStream()

IMPORT_ILLEGAL_WRITER=\
    Unexpected internal error during &lt;import&gt: \
    Target servlet called getOutputStream(), then getWriter()

#IMPORT_ILLEGAL_GETSTRING=\
#    Unexpected internal error during &lt;import&gt: \
#    Target servlet called neither getOutputStream() nor getWriter()

PARAM_OUTSIDE_PARENT=\
    &lt;param&gt; outside &lt;import&gt; or &lt;urlEncode&gt;

PARAM_ENCODE_BOOLEAN=\
    In &lt;param&gt;, "encode" must be "true" or "false".  Got "{0}" instead.

SET_BAD_SCOPE=\
    Invalid "scope" attribute for &lt;set&gt;:  "{0}"

SET_BAD_SCOPE_DEFERRED=\
    The "scope" attribute for &lt;set&gt must be "page" when "value" attribute \
    is a deferred expression;

SET_INVALID_PROPERTY=\
    Invalid property in &lt;set&gt;:  "{0}"

SET_INVALID_TARGET=\
    Attempt to set the property of an invalid object in &lt;set&gt;.

SET_NO_VALUE=\
    Need either non-whitespace body or "value" attribute in &lt;set&gt;

URLENCODE_NO_VALUE=\
    Need either non-whitespace body or "value" attribute in &lt;urlEncode&gt;

WHEN_OUTSIDE_CHOOSE=\
    Illegal use of &lt;when&gt;-style tag without &lt;choose&gt; as its \
    direct parent

# I18N

LOCALE_NO_LANGUAGE=\
    Missing language component in 'value' attribute in &lt;setLocale&gt; 

LOCALE_EMPTY_COUNTRY=\
    Empty country component in 'value' attribute in &lt;setLocale&gt;

PARAM_OUTSIDE_MESSAGE=\
    &lt;param&gt; outside &lt;message&gt;

MESSAGE_NO_KEY=\
    &lt;message&gt; needs 'key' attribute or non-whitespace body

FORMAT_NUMBER_INVALID_TYPE=\
    In &lt;formatNumber&gt;, invalid 'type' attribute: "{0}"

FORMAT_NUMBER_NO_VALUE=\
    &lt;formatNumber&gt; needs 'value' attribute or non-whitespace body

FORMAT_NUMBER_PARSE_ERROR=\
    In &lt;formatNumber&gt;, 'value' attribute can not be parsed into java.lang.Number: "{0}"

FORMAT_NUMBER_CURRENCY_ERROR=\
    In &lt;formatNumber&gt;, unable to set currency

PARSE_NUMBER_INVALID_TYPE=\
    In &lt;parseNumber&gt;, invalid 'type' attribute: "{0}"

PARSE_NUMBER_NO_VALUE=\
    &lt;parseNumber&gt; needs 'value' attribute or non-whitespace body

PARSE_NUMBER_NO_PARSE_LOCALE=\
    In &lt;parseNumber&gt;, a parse locale can not be established

PARSE_NUMBER_PARSE_ERROR=\
    In &lt;parseNumber&gt;, 'value' attribute can not be parsed: "{0}"

FORMAT_DATE_INVALID_TYPE=\
    In &lt;formatDate&gt;, invalid 'type' attribute: "{0}"

FORMAT_DATE_BAD_TIMEZONE=\
    In &lt;formatDate&gt;, 'timeZone' must be an instance of java.lang.String or java.util.TimeZone

FORMAT_DATE_INVALID_DATE_STYLE=\
    In &lt;formatDate&gt;, invalid 'dateStyle' attribute: "{0}"

FORMAT_DATE_INVALID_TIME_STYLE=\
    In &lt;formatDate&gt;, invalid 'timeStyle' attribute: "{0}"

PARSE_DATE_INVALID_TYPE=\
    In &lt;parseDate&gt;, invalid 'type' attribute: "{0}"

PARSE_DATE_BAD_TIMEZONE=\
    In &lt;parseDate&gt;, 'timeZone' must be an instance of java.lang.String or java.util.TimeZone

PARSE_DATE_INVALID_DATE_STYLE=\
    In &lt;parseDate&gt;, invalid 'dateStyle' attribute: "{0}"

PARSE_DATE_INVALID_TIME_STYLE=\
    In &lt;parseDate&gt;, invalid 'timeStyle' attribute: "{0}"

PARSE_DATE_NO_VALUE=\
    &lt;parseDate&gt; needs 'value' attribute or non-whitespace body

PARSE_DATE_PARSE_ERROR=\
    In &lt;parseDate&gt;, 'value' attribute can not be parsed: "{0}"

PARSE_DATE_NO_PARSE_LOCALE=\
    In &lt;parseDate&gt;, a parse locale can not be established

# SQL

DRIVER_INVALID_CLASS=\
    In &lt;driver&gt;, invalid driver class name: "{0}"

DATASOURCE_INVALID=\
    Unable to get connection, DataSource invalid: "{0}"
 
JDBC_PARAM_COUNT=\
    Invalid number of JDBC parameters specified.

PARAM_BAD_VALUE=\
    Invalid or out of bounds value specified in parameter.
 
TRANSACTION_NO_SUPPORT=\
    In &lt;transaction&gt;, datasource does not support transactions

TRANSACTION_COMMIT_ERROR=\
    In &lt;transaction&gt;, error committing transaction: "{0}"

TRANSACTION_INVALID_ISOLATION=\
    In &lt;transaction&gt;, invalid transaction isolation

NOT_SUPPORTED=\
    Not supported

ERROR_GET_CONNECTION=\
    Error getting connection: "{0}"

ERROR_NESTED_DATASOURCE=\
    It is illegal to specify a DataSource when nested within a &lt;transaction&gt;

SQL_PARAM_OUTSIDE_PARENT=\
    &lt;param&gt; or &lt;dateParam&gt; must be subtag of SQLExecutionTag actions like &lt;query&gt; or &lt;update&gt;

SQL_NO_STATEMENT=\
    No SQL statement specified

SQL_PROCESS_ERROR=\
    Error processing SQL: "{0}"

SQL_DATASOURCE_INVALID_TYPE=\
    'dataSource' is neither a String nor a javax.sql.DataSource

SQL_DATASOURCE_NULL=\
    'dataSource' is null

SQL_MAXROWS_PARSE_ERROR=\
    Error parsing 'jakarta.servlet.jsp.jstl.sql.maxRows' configuration setting: "{0}"

SQL_MAXROWS_INVALID=\
    'jakarta.servlet.jsp.jstl.sql.maxRows' configuration setting neither an Integer nor a String

SQL_DATE_PARAM_INVALID_TYPE=\
    In &lt;dateParam&gt;, invalid 'type' attribute: "{0}"

# XML

FOREACH_NOT_NODESET=\
    &lt;forEach&gt; can't iterate over XPath expressions that don't return a node-set

PARAM_NO_VALUE=\
    &lt;param&gt; needs 'value' attribute or non-whitespace body

PARAM_OUTSIDE_TRANSFORM=\
    &lt;param&gt; outside &lt;transform&gt;

PARSE_INVALID_SOURCE=\
    Unrecognized object supplied as 'xml' attribute to &lt;parse&gt;

PARSE_NO_SAXTRANSFORMER=\
    Filter supplied to &lt;parse&gt;, but default TransformerFactory \
    does not support SAX.

TRANSFORM_NO_TRANSFORMER=\
    &lt;transform&gt; was not passed an XSLT stylesheet

TRANSFORM_SOURCE_INVALID_LIST=\
    &lt;transform&gt; encountered an invalid java.util.List while processing 'xml' attribute.  This error is typically caused if you pass a node-set with more than one node to &lt;transform&gt;'s 'xml' attribute.

TRANSFORM_SOURCE_UNRECOGNIZED=\
    &lt;transform&gt; encountered an unknown type while processing 'xml' attribute

TRANSFORM_XSLT_UNRECOGNIZED=\
    &lt;transform&gt; encountered an unknown type while processing 'xslt' attribute

UNABLE_TO_RESOLVE_ENTITY=\
    Could not resolve entity reference: "{0}"

#########################################################################
# JSTL core TLV messages
#########################################################################

# Parameters 

TLV_PARAMETER_ERROR=\
    Invalid value for "{0}" validator parameter in TLD

# Generic errors

TLV_ILLEGAL_BODY=\
    Encountered illegal body of tag "{0}" tag, given its attributes.

TLV_MISSING_BODY=\
    A body is necessary inside the "{0}" tag, given its attributes.

TLV_ILLEGAL_CHILD_TAG=\
    Illegal child tag in "{0}:{1}" tag: "{2}" tag

TLV_ILLEGAL_TEXT_BODY=\
    Illegal text inside "{0}:{1}" tag: "{2}...".

TLV_INVALID_ATTRIBUTE=\
    Invalid "{0}" attribute in "{1}" tag: "{2}"

TLV_ILLEGAL_ORPHAN=\
    Invalid use of "{0}" tag outside legitimate parent tag

TLV_PARENT_WITHOUT_SUBTAG=\
    Illegal "{0}" without child "{1}" tag

# Errors customized to particular tags (sort of)  :-)

TLV_ILLEGAL_ORDER=\
    Illegal "{0}" after "{1}:{2}" tag in "{1}:{3}" tag.

TLV_ILLEGAL_PARAM=\
    Illegal "{0}:{1}" tag within "{0}:{2} {3}='...'" tag

TLV_DANGLING_SCOPE=\
    Illegal 'scope' attribute without 'var' in "{0}" tag.

TLV_EMPTY_VAR=\
    Empty 'var' attribute in "{0}" tag.

SET_NO_SETTER_METHOD=No setter method in &lt;set&gt; for property "{0}"

IMPORT_ABS_ERROR=Problem accessing the absolute URL "{0}". {1}

XPATH_ERROR_EVALUATING_EXPR=Error evaluating XPath expression "{0}": {1}

XPATH_ILLEGAL_ARG_EVALUATING_EXPR=Illegal argument evaluating XPath expression "{0}": {1}

XPATH_ERROR_XOBJECT=Error accessing data in XObject: {0}
