001// Copyright 2008, 2010 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.tapestry5.internal.services;
016
017import org.apache.tapestry5.ValueEncoder;
018import org.apache.tapestry5.services.ContextValueEncoder;
019import org.apache.tapestry5.services.ValueEncoderSource;
020
021@SuppressWarnings("all")
022public class ContextValueEncoderImpl implements ContextValueEncoder
023{
024    private final ValueEncoderSource valueEncoderSource;
025
026    public ContextValueEncoderImpl(ValueEncoderSource valueEncoderSource)
027    {
028        this.valueEncoderSource = valueEncoderSource;
029    }
030
031    public String toClient(Object value)
032    {
033        assert value != null;
034
035        ValueEncoder encoder = valueEncoderSource.getValueEncoder(value.getClass());
036
037        return encoder.toClient(value);
038    }
039
040
041    public <T> T toValue(Class<T> requiredType, String clientValue)
042    {
043        assert requiredType != null;
044
045        ValueEncoder<T> encoder = valueEncoderSource.getValueEncoder(requiredType);
046
047        return encoder.toValue(clientValue);
048    }
049}