Package org.geoserver.hibernate.dao

Source Code of org.geoserver.hibernate.dao.ServiceDAOImpl

/**
*
*/
package org.geoserver.hibernate.dao;

import java.util.Collection;

import java.util.List;
import javax.persistence.FlushModeType;
import javax.persistence.Query;
import org.geoserver.config.GeoServerInfo;
import org.geoserver.config.LoggingInfo;
import org.geoserver.config.ServiceInfo;
import org.geoserver.config.hibernate.beans.GeoServerInfoImplHb;
import org.geoserver.config.hibernate.beans.LoggingInfoImplHb;
import org.geoserver.hibernate.HibMapper;
import org.geotools.renderer.i18n.Logging;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

/**
*/
@Repository
@Transactional
public class ServiceDAOImpl extends AbstractDAOImpl implements ServiceDAO {

    /**
     * Constructor for HibernateDAO.
     */
    public ServiceDAOImpl() {
        super();
    }

    /**
     *
     */
    public GeoServerInfo getGeoServer() {
        Query query = buildQuery("from ", GeoServerInfoImplHb.class);
        return (GeoServerInfo) first(query, true);
    }

    /**
     *
     */
    public Collection<? extends ServiceInfo> getServices(Class<?> clazz) {
        Class clazz2 = HibMapper.mapHibernableClass(clazz);
        Query query = buildQuery("from ", clazz2);
        return (Collection<? extends ServiceInfo>) query.getResultList();

    }

    /**
     *
     */
    public <T extends ServiceInfo> T getService(String id, Class<T> clazz) {
        Class clazz2 = HibMapper.mapHibernableClass(clazz);
        Query query = buildQuery("from ", clazz2, " where id = ", param(id));
        return (T) first(query);

    }

    /**
     *
     */
    public <T extends ServiceInfo> T getServiceByName(String name, Class<T> clazz) {
        Query query = buildQuery("from ", clazz, " where name = ", param(name));
        List result = query.getResultList();
        if (result.isEmpty()) {
            return null;
        } else {
            T service = (T) result.get(0);
            return service; // todo: maybe we should deproxy it
        }

    }

    public void save(ServiceInfo entity) {
        super.save(entity);
        entityManager.flush();// TODO useless??
    }

    public void delete(ServiceInfo entity) {
        super.delete(entity);
    }

    public void update(ServiceInfo entity) {
        super.merge(entity);
    }

    public GeoServerInfo save(GeoServerInfo entity) {

        super.save(entity);
        entityManager.flush();// TODO useless??
        return entityManager.find(GeoServerInfoImplHb.class, entity.getId());// TODO useless??
    }

    public GeoServerInfo update(GeoServerInfo entity) {
        GeoServerInfo ret = entityManager.merge(entity);
        entityManager.flush();
        entityManager.refresh(ret);
        return ret;
    }

    public void delete(GeoServerInfo entity) {
        super.delete(entity);
    }

    public void setLogging(LoggingInfo entity) {
        LoggingInfoImplHb old = (LoggingInfoImplHb) getLogging();
        if (old == null) {
            entityManager.persist(entity);
        } else {
            old.copyFrom(entity);
            entityManager.merge(old);
        }
    }

    public LoggingInfo getLogging() {
        Query query = buildQuery("from ", LoggingInfoImplHb.class);
        return (LoggingInfo) first(query);
    }
}
TOP

Related Classes of org.geoserver.hibernate.dao.ServiceDAOImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.