1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.logic;
20
21 import java.lang.reflect.Method;
22 import org.apache.commons.lang3.ArrayUtils;
23 import org.apache.syncope.common.lib.to.AuthProfileTO;
24 import org.apache.syncope.core.persistence.api.dao.AuthProfileDAO;
25 import org.apache.syncope.core.provisioning.api.data.AuthProfileDataBinder;
26
27 public abstract class AbstractAuthProfileLogic extends AbstractTransactionalLogic<AuthProfileTO> {
28
29 protected final AuthProfileDAO authProfileDAO;
30
31 protected final AuthProfileDataBinder binder;
32
33 public AbstractAuthProfileLogic(final AuthProfileDAO authProfileDAO, final AuthProfileDataBinder binder) {
34 this.authProfileDAO = authProfileDAO;
35 this.binder = binder;
36 }
37
38 @Override
39 protected AuthProfileTO resolveReference(final Method method, final Object... args)
40 throws UnresolvedReferenceException {
41
42 String key = null;
43 if (ArrayUtils.isNotEmpty(args)) {
44 for (int i = 0; key == null && i < args.length; i++) {
45 if (args[i] instanceof String) {
46 key = (String) args[i];
47 } else if (args[i] instanceof AuthProfileTO) {
48 key = ((AuthProfileTO) args[i]).getKey();
49 }
50 }
51 }
52
53 if (key != null) {
54 try {
55 return binder.getAuthProfileTO(authProfileDAO.find(key));
56 } catch (Throwable ignore) {
57 LOG.debug("Unresolved reference", ignore);
58 throw new UnresolvedReferenceException(ignore);
59 }
60 }
61
62 throw new UnresolvedReferenceException();
63 }
64 }