/* * 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.content.contenttype.ContentHandlerKey; import com.enonic.cms.core.content.contenttype.ContentTypeEntity; import com.enonic.cms.core.content.contenttype.ContentTypeKey; import com.enonic.cms.core.resource.ResourceKey; import com.enonic.cms.store.support.EntityPageList; @Repository("contentTypeDao") public class ContentTypeEntityDao extends AbstractBaseEntityDao<ContentTypeEntity> implements ContentTypeDao { public ContentTypeEntity findByKey( int key ) { return get( ContentTypeEntity.class, key ); } public ContentTypeEntity findByKey( ContentTypeKey key ) { return get( ContentTypeEntity.class, key.toInt() ); } public ContentTypeEntity findByName( String name ) { return findSingleByNamedQuery( ContentTypeEntity.class, "ContentTypeEntity.getByName", "name", name ); } public List<ContentTypeEntity> findByContentHandler( ContentHandlerKey contentHandlerKey ) { return findByNamedQuery( ContentTypeEntity.class, "ContentTypeEntity.getByHandler", "contentHandlerKey", contentHandlerKey ); } public List<ContentTypeEntity> getAll() { return findByNamedQuery( ContentTypeEntity.class, "ContentTypeEntity.getAll" ); } public List getResourceUsageCountCSS() { return getHibernateTemplate().findByNamedQuery( "ContentTypeEntity.getResourceUsageCountCSS" ); } public List<ContentTypeEntity> findByCSS( ResourceKey resourceKey ) { return findByNamedQuery( ContentTypeEntity.class, "ContentTypeEntity.findByCSS", "defaultCssKey", resourceKey ); } private List<ContentTypeEntity> findByCSSPrefix( String prefix ) { return findByNamedQuery( ContentTypeEntity.class, "ContentTypeEntity.findByCSSPrefix", "defaultCssKeyPrefix", prefix ); } public void updateResourceCSSReference( ResourceKey oldResourceKey, ResourceKey newResourceKey ) { List<ContentTypeEntity> entityList = findByCSS( oldResourceKey ); for ( ContentTypeEntity entity : entityList ) { entity.setDefaultCssKey( newResourceKey ); } } public void updateResourceCSSReferencePrefix( String oldPrefix, String newPrefix ) { List<ContentTypeEntity> entityList = findByCSSPrefix( oldPrefix + "%" ); for ( ContentTypeEntity entity : entityList ) { String key = entity.getDefaultCssKey().toString(); key = key.replace( oldPrefix, newPrefix ); entity.setDefaultCssKey( ResourceKey.from( key ) ); } } public EntityPageList<ContentTypeEntity> findAll( int index, int count ) { return findPageList( ContentTypeEntity.class, null, index, count ); } }