001// Copyright 2004, 2005 The Apache Software Foundation
002//
003// Licensed under the Apache License, Version 2.0 (the "License");
004// you may not use this file except in compliance with the License.
005// You may obtain a copy of the License at
006//
007//     http://www.apache.org/licenses/LICENSE-2.0
008//
009// Unless required by applicable law or agreed to in writing, software
010// distributed under the License is distributed on an "AS IS" BASIS,
011// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
012// See the License for the specific language governing permissions and
013// limitations under the License.
014
015package org.apache.tapestry.parse;
016
017import java.util.Map;
018
019import org.apache.hivemind.Location;
020
021/**
022 *  Represents localized text from the template.
023 *
024 *  @see TokenType#LOCALIZATION
025 * 
026 *  @author Howard Lewis Ship
027 *  @since 3.0
028 *
029 **/
030
031public class LocalizationToken extends TemplateToken
032{
033    private String _tag;
034    private String _key;
035    private boolean _raw;
036    private Map _attributes;
037    
038    /**
039     *  Creates a new token.
040     * 
041     * 
042     *  @param tag the tag of the element from the template
043     *  @param key the localization key specified
044     *  @param raw if true, then the localized value contains markup that should not be escaped
045     *  @param attributes any additional attributes (beyond those used to define key and raw)
046     *  that were specified.  This value is retained, not copied.
047     *  @param location location of the tag which defines this token
048     * 
049     **/
050    
051    public LocalizationToken(String tag, String key, boolean raw, Map attributes, Location location)
052    {
053        super(TokenType.LOCALIZATION, location);
054        
055        _tag = tag;
056        _key = key;
057        _raw = raw;
058        _attributes = attributes;
059    }
060    
061    /**
062     *  Returns any attributes for the token, which may be null.  Do not modify
063     *  the return value.
064     * 
065     **/
066    
067    public Map getAttributes()
068    {
069        return _attributes;
070    }
071
072    public boolean isRaw()
073    {
074        return _raw;
075    }
076
077    public String getTag()
078    {
079        return _tag;
080    }
081
082    public String getKey()
083    {
084        return _key;
085    }
086}