package cms.model.validator;
import cms.model.dao.TagDAO;
import cms.model.meta.TagEntityMeta;
import cms.model.model.TagEntity;
import com.google.appengine.api.datastore.Key;
import com.google.inject.Inject;
public class TagValidator extends AbstractValidator {
protected TagEntityMeta meta = TagEntityMeta.get();
@Inject
protected TagDAO tagDAO;
protected boolean validateFields() {
boolean ret = true;
validators.add(meta.name, validators.required(), validators.maxlength(255));
if (isAdd()) {
String name = (String) input.get(meta.name.toString());
if (tagDAO.getByName(name) != null) {
validators.getErrors().put(meta.name.toString(), "Tento štítek již existuje.");
ret = false;
}
}
if(isEdit()) {
Key tagKey = (Key) input.get(meta.key.toString());
TagEntity oldTagEntity = tagDAO.get(tagKey);
String oldName = oldTagEntity.getName();
String name = (String) input.get(meta.name.toString());
if(!oldName.equals(name)) {
if (tagDAO.getByName(name) != null) {
validators.getErrors().put(meta.name.toString(), "Tento štítek již existuje.");
ret = false;
}
}
}
return ret;
}
}