package fr.ippon.tatami.repository.cassandra;
import fr.ippon.tatami.repository.TagFollowerRepository;
import org.springframework.stereotype.Repository;
import fr.ippon.tatami.config.ColumnFamilyKeys;
import java.util.Collection;
/**
* Cassandra implementation of the Follower repository.
* <p/>
* Structure :
* - Key = tag + domain
* - Name = follower login
* - Value = time
*
* @author Julien Dubois
*/
@Repository
public class CassandraTagFollowerRepository
extends AbstractCassandraFollowerRepository
implements TagFollowerRepository {
@Override
public void addFollower(String domain, String tag, String login) {
super.addFollower(getKey(domain, tag), login);
}
@Override
public void removeFollower(String domain, String tag, String login) {
super.removeFollower(getKey(domain, tag), login);
}
@Override
public Collection<String> findFollowers(String domain, String tag) {
return super.findFollowers(getKey(domain, tag));
}
@Override
public String getFollowersCF() {
return ColumnFamilyKeys.TAG_FOLLOWERS_CF;
}
/**
* Generates the key for this column family.
*/
private String getKey(String domain, String tag) {
return tag.toLowerCase() + "-" + domain;
}
}