01: package org.vraptor.plugin.hibernate;
02:
03: import org.apache.log4j.Logger;
04: import org.vraptor.component.ComponentType;
05: import org.vraptor.component.ComponentTypeWrapper;
06: import org.vraptor.component.LogicMethod;
07: import org.vraptor.component.LogicNotFoundException;
08:
09: /**
10: * A wrapper for the hibernate component on validation.
11: *
12: * @author Guilherme Silveira
13: */
14: class HibernateComponent extends ComponentTypeWrapper {
15:
16: private static final Logger LOG = Logger
17: .getLogger(HibernateLogicMethod.class);
18:
19: private final ValidatorLocator locator;
20:
21: public HibernateComponent(ComponentType component,
22: ValidatorLocator locator) {
23: super (component);
24: this .locator = locator;
25: if (LOG.isDebugEnabled()) {
26: LOG.debug("New hibernate component created wrapping "
27: + component);
28: }
29: }
30:
31: @Override
32: public LogicMethod getLogic(String key)
33: throws LogicNotFoundException {
34: LogicMethod logicMethod = super .getLogic(key);
35: if (logicMethod == null
36: || !logicMethod.getMetadata().isAnnotationPresent(
37: Validate.class)) {
38: return logicMethod;
39: } else {
40: return new HibernateLogicMethod(getComponentClass(),
41: logicMethod, locator);
42: }
43: }
44:
45: }
|