1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.juddi.query;
19
20 import java.util.List;
21 import javax.persistence.EntityManager;
22
23 import org.apache.juddi.query.util.DynamicQuery;
24 import org.apache.juddi.query.util.FindQualifiers;
25 import org.apache.juddi.model.UddiEntityPublisher;
26
27
28
29
30
31
32
33
34 public class FindEntityByPublisherQuery extends EntityQuery {
35
36 public static final String AUTHORIZED_NAME_FIELD = "authorizedName";
37
38 private final String entityName;
39 private final String entityAlias;
40 private final String keyName;
41 private final String selectSQL;
42 private String signaturePresent;
43
44 public FindEntityByPublisherQuery(String entityName, String entityAlias, String keyName, String signaturePresent) {
45 this.entityName = entityName;
46 this.entityAlias = entityAlias;
47 this.keyName = keyName;
48 this.signaturePresent = signaturePresent;
49
50 StringBuilder sql = new StringBuilder(200);
51 sql.append("select distinct ").append(entityAlias).append(".").append(keyName).append(" from ").append(entityName).append(" ").append(entityAlias).append(" ");
52 selectSQL = sql.toString();
53 }
54
55 public String getEntityName() {
56 return entityName;
57 }
58
59 public String getEntityAlias() {
60 return entityAlias;
61 }
62
63 public String getKeyName() {
64 return keyName;
65 }
66
67 public String getSelectSQL() {
68 return selectSQL;
69 }
70
71 public String getSignaturePresent() {
72 return signaturePresent;
73 }
74
75 public void setSignaturePresent(String signaturePresent) {
76 this.signaturePresent = signaturePresent;
77 }
78
79
80 public List<?> select(EntityManager em, FindQualifiers fq, UddiEntityPublisher publisher, List<?> keysIn, DynamicQuery.Parameter... restrictions) {
81
82 if ((keysIn != null) && (keysIn.size() == 0))
83 return keysIn;
84
85 if (publisher == null)
86 return keysIn;
87
88 DynamicQuery dynamicQry = new DynamicQuery(selectSQL);
89 appendConditions(dynamicQry, fq, publisher);
90 if (restrictions != null && restrictions.length > 0)
91 dynamicQry.AND().pad().appendGroupedAnd(restrictions);
92
93 return getQueryResult(em, dynamicQry, keysIn, entityAlias + "." + keyName);
94 }
95
96
97
98
99 public void appendConditions(DynamicQuery qry, FindQualifiers fq, UddiEntityPublisher publisher) {
100 qry.WHERE().pad();
101 if (fq!=null && fq.isSignaturePresent()) {
102 qry.pad().openParen().pad().append(getSignaturePresent()).pad().closeParen().pad().AND();
103 }
104 qry.appendGroupedAnd(new DynamicQuery.Parameter(entityAlias + "." + AUTHORIZED_NAME_FIELD, publisher.getAuthorizedName(), DynamicQuery.PREDICATE_EQUALS));
105 }
106
107
108 }