﻿// Copyright 2015 Adamantworks.  All Rights Reserved.
//
// 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.

namespace Adamantworks.Amazon.DynamoDB.Converters
{
	// TODO spin this off as a different library with IValueConverter?
	public static class ValueConverterExtensions
	{
		public static bool CanConvert<TFrom, TTo>(this IValueConverter converter, IValueConverter context = null)
		{
			return converter.CanConvert(typeof(TFrom), typeof(TTo), context ?? converter);
		}

		public static bool TryConvert<T>(this IValueConverter converter, object fromValue, out T toValue, IValueConverter context = null)
		{
			object value;
			var converted = converter.TryConvert(fromValue, typeof(T), out value, context ?? converter);
			toValue = converted ? (T)value : default(T);
			return converted;
		}
	}
}
