package com.sequenceiq.cloudbreak.service.decorator;
/**
* Decortor service interface for domain objects.
* Implementers are expected to decorate passed in domain objects with data from other services.
*
* @param <T> the type of the object to be decorated
*/
public interface Decorator<T> {
/**
* Performs the decorator logic.
*
* @param subject the object to be decorated
* @param data additional data
* @return the decorated object
*/
T decorate(T subject, Object... data);
}