public interface  org.apache.camel.spi.UnitOfWork extends java.lang.Object implements org.apache.camel.Service
{
public abstract void addSynchronization(org.apache.camel.spi.Synchronization);
public abstract void removeSynchronization(org.apache.camel.spi.Synchronization);
public abstract boolean containsSynchronization(org.apache.camel.spi.Synchronization);
public abstract void handoverSynchronization(org.apache.camel.Exchange);
public abstract void handoverSynchronization(org.apache.camel.Exchange, java.util.function.Predicate);
public abstract void done(org.apache.camel.Exchange);
public abstract void beforeRoute(org.apache.camel.Exchange, org.apache.camel.Route);
public abstract void afterRoute(org.apache.camel.Exchange, org.apache.camel.Route);
public abstract java.lang.String getId();
public abstract org.apache.camel.Message getOriginalInMessage();
public abstract org.apache.camel.spi.TracedRouteNodes getTracedRouteNodes();
public abstract boolean isTransacted();
public abstract boolean isTransactedBy(java.lang.Object);
public abstract void beginTransactedBy(java.lang.Object);
public abstract void endTransactedBy(java.lang.Object);
public abstract org.apache.camel.spi.RouteContext getRouteContext();
public abstract void pushRouteContext(org.apache.camel.spi.RouteContext);
public abstract org.apache.camel.spi.RouteContext popRouteContext();
public abstract org.apache.camel.AsyncCallback beforeProcess(org.apache.camel.Processor, org.apache.camel.Exchange, org.apache.camel.AsyncCallback);
public abstract void afterProcess(org.apache.camel.Processor, org.apache.camel.Exchange, org.apache.camel.AsyncCallback, boolean);
public abstract org.apache.camel.spi.UnitOfWork createChildUnitOfWork(org.apache.camel.Exchange);
public abstract void setParentUnitOfWork(org.apache.camel.spi.UnitOfWork);
public abstract org.apache.camel.spi.SubUnitOfWorkCallback getSubUnitOfWorkCallback();
public abstract void beginSubUnitOfWork(org.apache.camel.Exchange);
public abstract void endSubUnitOfWork(org.apache.camel.Exchange);
}