/* * Copyright (c) 2016 OBiBa. All rights reserved. * * This program and the accompanying materials * are made available under the terms of the GNU Public License v3.0. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.obiba.core.service.impl; import java.util.ArrayList; import java.util.List; import org.obiba.core.service.PersistenceManager; import org.obiba.core.validation.exception.ValidationRuntimeException; import org.obiba.core.validation.interceptor.ObjectValidationInspector; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.validation.Errors; public abstract class DefaultPersistenceManagerImpl implements PersistenceManager { private final Logger log = LoggerFactory.getLogger(getClass()); protected ObjectValidationInspector objectValidationInspector; public ObjectValidationInspector getObjectValidationInspector() { return objectValidationInspector; } public void setObjectValidationInspector(ObjectValidationInspector objectValidationInspector) { this.objectValidationInspector = objectValidationInspector; } public <T> void validate(T entity) throws ValidationRuntimeException { if(getObjectValidationInspector() != null) { List<Errors> errors = new ArrayList<Errors>(); getObjectValidationInspector().setEntityQueryService(this); getObjectValidationInspector().inspectObject(errors, entity); if(errors.size() > 0) { log.warn("Validation error(s) found, throwing ValidationException."); throw new ValidationRuntimeException(errors); } } } }