public static Destination Transform(IDestination destination)
{
Destination result = null;
if(destination != null)
{
if(destination is Destination)
{
result = (Destination) destination;
}
else
{
if(destination is ITemporaryQueue)
{
result = new TempQueue(((IQueue) destination).QueueName);
}
else if(destination is ITemporaryTopic)
{
result = new TempTopic(((ITopic) destination).TopicName);
}
else if(destination is IQueue)
{
result = new Queue(((IQueue) destination).QueueName);
}
else if(destination is ITopic)
{
result = new Topic(((ITopic) destination).TopicName);
}
}
}
return result;
}