package org.exoplatform.ecm.webui.form.validator;
import org.exoplatform.services.cms.taxonomy.TaxonomyService;
import org.exoplatform.services.wcm.utils.WCMCoreUtils;
import org.exoplatform.web.application.ApplicationMessage;
import org.exoplatform.webui.exception.MessageException;
import org.exoplatform.webui.form.UIFormInput;
import org.exoplatform.webui.form.UIFormStringInput;
import org.exoplatform.webui.form.validator.Validator;
public class CategoryValidator implements Validator{
public void validate(UIFormInput uiInput) throws Exception {
if (uiInput.getValue() == null) return;
if (uiInput instanceof UIFormStringInput) {
TaxonomyService taxonomyService = WCMCoreUtils.getService(TaxonomyService.class);
try{
int index = 0;
String categoryPath = (String) uiInput.getValue();
index = categoryPath.indexOf("/");
if (index < 0) {
taxonomyService.getTaxonomyTree(categoryPath);
} else {
taxonomyService.getTaxonomyTree(categoryPath.substring(0, index)).getNode(categoryPath.substring(index + 1));
}
}catch (Exception e) {
throw new MessageException(
new ApplicationMessage(
"CategoryValidator.msg.non-categories",
null,
ApplicationMessage.WARNING));
}
}
}
}