All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yammer.dropwizard.hibernate.UnitOfWorkResourceMethodDispatchProvider Maven / Gradle / Ivy

package com.yammer.dropwizard.hibernate;

import com.sun.jersey.api.model.AbstractResourceMethod;
import com.sun.jersey.spi.container.ResourceMethodDispatchProvider;
import com.sun.jersey.spi.dispatch.RequestDispatcher;
import org.hibernate.SessionFactory;

public class UnitOfWorkResourceMethodDispatchProvider implements ResourceMethodDispatchProvider {
    private final ResourceMethodDispatchProvider provider;
    private final SessionFactory sessionFactory;

    public UnitOfWorkResourceMethodDispatchProvider(ResourceMethodDispatchProvider provider,
                                                    SessionFactory sessionFactory) {
        this.provider = provider;
        this.sessionFactory = sessionFactory;
    }

    public ResourceMethodDispatchProvider getProvider() {
        return provider;
    }

    public SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    @Override
    public RequestDispatcher create(AbstractResourceMethod abstractResourceMethod) {
        final RequestDispatcher dispatcher = provider.create(abstractResourceMethod);
        final UnitOfWork unitOfWork = abstractResourceMethod.getMethod().getAnnotation(UnitOfWork.class);
        if (unitOfWork != null) {
            return new UnitOfWorkRequestDispatcher(unitOfWork, dispatcher, sessionFactory);
        }
        return dispatcher;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy