1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package com.hack23.cia.web.impl.ui.application.views.pageclicklistener;
20
21 import java.lang.reflect.InvocationTargetException;
22
23 import org.apache.commons.beanutils.BeanUtils;
24 import org.slf4j.Logger;
25 import org.slf4j.LoggerFactory;
26
27 import com.hack23.cia.model.common.api.ModelObject;
28
29
30
31
32 public final class PageItemPropertyClickListener extends AbstractPageItemRendererClickListener<ModelObject> {
33
34
35 private static final String ERROR_GETTING_PAGE_ID = "ErrorGettingPageId";
36
37
38 private static final String LOG_MSG_PROBLEM_GETTING_PROPERTY_FROM_OBJECT_EXCEPTION = "Problem getting property {} from object {} exception {}";
39
40
41 private static final long serialVersionUID = 1L;
42
43
44 private static final Logger LOGGER = LoggerFactory
45 .getLogger(PageItemPropertyClickListener.class);
46
47
48
49 private final String property;
50
51
52
53
54
55
56
57
58
59 public PageItemPropertyClickListener(final String page, final String property) {
60 super(page);
61 this.property = property;
62 }
63
64 @Override
65 protected String getPageId(final ModelObject t) {
66 try {
67 return BeanUtils.getProperty(t, property);
68 } catch (IllegalAccessException | InvocationTargetException |
69 NoSuchMethodException e) {
70 LOGGER.warn(LOG_MSG_PROBLEM_GETTING_PROPERTY_FROM_OBJECT_EXCEPTION,property,t,e);
71 return ERROR_GETTING_PAGE_ID;
72 }
73 }
74
75 }