/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.store.dao; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Repository; import com.enonic.cms.core.preference.PreferenceEntity; import com.enonic.cms.core.preference.PreferenceKey; import com.enonic.cms.core.preference.PreferenceSpecification; @Repository("preferenceDao") public final class PreferenceEntityDao extends AbstractBaseEntityDao<PreferenceEntity> implements PreferenceDao { public PreferenceEntity findByKey( PreferenceKey key ) { return get( PreferenceEntity.class, key ); } public List<PreferenceEntity> findBy( PreferenceSpecification spec ) { final List<PreferenceEntity> list = new ArrayList<PreferenceEntity>(); List<String> prefixes = spec.getPrefixes(); for ( String prefix : prefixes ) { String str = translateWildcardExpressionToSqlExpression( prefix ); list.addAll( findByNamedQuery( PreferenceEntity.class, "PreferenceEntity.findByKeyLike", "key", str ) ); } return list; } public void removeBy( PreferenceSpecification spec ) { List<String> prefixes = spec.getPrefixes(); for ( String prefix : prefixes ) { String str = translateWildcardExpressionToSqlExpression( prefix ); deleteByNamedQuery( "PreferenceEntity.deleteByLike", "key", str ); } } private String translateWildcardExpressionToSqlExpression( String s ) { return s.replaceAll( "\\*", "%" ); } }