/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.store.dao; import java.util.List; import org.springframework.stereotype.Repository; import com.enonic.cms.core.resource.ResourceKey; import com.enonic.cms.core.structure.SiteKey; import com.enonic.cms.core.structure.portlet.PortletEntity; import com.enonic.cms.store.support.EntityPageList; @Repository("portletDao") public final class PortletEntityDao extends AbstractBaseEntityDao<PortletEntity> implements PortletDao { public PortletEntity findByKey( int key ) { return get( PortletEntity.class, key ); } public PortletEntity findBySiteKeyAndNameIgnoreCase( SiteKey siteKey, String name ) { if ( name == null ) { throw new IllegalArgumentException( "Given name cannot be null" ); } return findSingleByNamedQuery( PortletEntity.class, "PortletEntity.findBySiteKeyAndNameIgnoreCase", new String[]{"siteKey", "name"}, new Object[]{siteKey, name.toLowerCase()} ); } public List getResourceUsageCountStyle() { return getHibernateTemplate().findByNamedQuery( "PortletEntity.getResourceUsageCountStyle" ); } public List getResourceUsageCountBorder() { return getHibernateTemplate().findByNamedQuery( "PortletEntity.getResourceUsageCountBorder" ); } public List<PortletEntity> findByStyle( ResourceKey resourceKey ) { return findByNamedQuery( PortletEntity.class, "PortletEntity.findByStyle", "styleKey", resourceKey ); } public List<PortletEntity> findByBorder( ResourceKey resourceKey ) { return findByNamedQuery( PortletEntity.class, "PortletEntity.findByBorder", "borderKey", resourceKey ); } private List<PortletEntity> findByStylePrefix( String prefix ) { return findByNamedQuery( PortletEntity.class, "PortletEntity.findByStylePrefix", "styleKeyPrefix", prefix ); } private List<PortletEntity> findByBorderPrefix( String prefix ) { return findByNamedQuery( PortletEntity.class, "PortletEntity.findByBorderPrefix", "borderKeyPrefix", prefix ); } public void updateResourceStyleReference( ResourceKey oldResourceKey, ResourceKey newResourceKey ) { List<PortletEntity> entityList = findByStyle( oldResourceKey ); for ( PortletEntity entity : entityList ) { entity.setStyleKey( newResourceKey ); } } public void updateResourceBorderReference( ResourceKey oldResourceKey, ResourceKey newResourceKey ) { List<PortletEntity> entityList = findByBorder( oldResourceKey ); for ( PortletEntity entity : entityList ) { entity.setBorderKey( newResourceKey ); } } public void updateResourceStyleReferencePrefix( String oldPrefix, String newPrefix ) { List<PortletEntity> entityList = findByStylePrefix( oldPrefix + "%" ); for ( PortletEntity entity : entityList ) { String key = entity.getStyleKey().toString(); key = key.replace( oldPrefix, newPrefix ); entity.setStyleKey( ResourceKey.from( key ) ); } } public void updateResourceBorderReferencePrefix( String oldPrefix, String newPrefix ) { List<PortletEntity> entityList = findByBorderPrefix( oldPrefix + "%" ); for ( PortletEntity entity : entityList ) { String key = entity.getBorderKey().toString(); key = key.replace( oldPrefix, newPrefix ); entity.setBorderKey( ResourceKey.from( key ) ); } } public List<PortletEntity> findAll() { return findByNamedQuery( PortletEntity.class, "PortletEntity.findAll" ); } public EntityPageList<PortletEntity> findAll( int index, int count ) { return findPageList( PortletEntity.class, null, index, count ); } }