package com.venky.swf.extensions;
import java.util.List;
import com.venky.swf.db.extensions.BeforeModelSaveExtension;
import com.venky.swf.db.model.UserEmail;
import com.venky.swf.exceptions.AccessDeniedException;
import com.venky.swf.sql.Conjunction;
import com.venky.swf.sql.Expression;
import com.venky.swf.sql.Operator;
import com.venky.swf.sql.Select;
public class BeforeUserEmailSave extends BeforeModelSaveExtension<UserEmail> {
static {
registerExtension(new BeforeUserEmailSave());
}
@Override
public void beforeSave(UserEmail model) {
Expression expression = new Expression(getPool(),Conjunction.AND);
expression.add(new Expression(getPool(),"email",Operator.IN, model.getEmail()));
expression.add(new Expression(getPool(),"user_id",Operator.NE,model.getUserId()));
Select select = new Select().from(UserEmail.class).where(expression);
List<UserEmail> r = select.execute(UserEmail.class);
if (!r.isEmpty()){
throw new AccessDeniedException("Email belongs to different user!");
}
}
}