Coverage Summary for Class: RecursiveGrantDomainCreatePermissionPostCreateSysPersister (com.acciente.oacc.sql.internal.persister)
Class | Class, % | Method, % | Line, % |
---|---|---|---|
RecursiveGrantDomainCreatePermissionPostCreateSysPersister | 100% (1/ 1) | 100% (2/ 2) | 85.7% (12/ 14) |
1 /*
2 * Copyright 2009-2018, Acciente LLC
3 *
4 * Acciente LLC licenses this file to you under the
5 * Apache License, Version 2.0 (the "License"); you
6 * may not use this file except in compliance with the
7 * License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in
12 * writing, software distributed under the License is
13 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
14 * OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing
16 * permissions and limitations under the License.
17 */
18 package com.acciente.oacc.sql.internal.persister;
19
20 import com.acciente.oacc.DomainCreatePermission;
21 import com.acciente.oacc.Resource;
22 import com.acciente.oacc.sql.SQLProfile;
23
24 import java.io.Serializable;
25 import java.sql.SQLException;
26 import java.util.HashSet;
27 import java.util.Set;
28
29 public class RecursiveGrantDomainCreatePermissionPostCreateSysPersister extends CommonGrantDomainCreatePermissionPostCreateSysPersister implements Serializable {
30 private static final long serialVersionUID = 1L;
31
32 public RecursiveGrantDomainCreatePermissionPostCreateSysPersister(SQLProfile sqlProfile,
33 SQLStrings sqlStrings) {
34 super(sqlProfile, sqlStrings);
35 }
36
37 @Override
38 public Set<DomainCreatePermission> getDomainCreatePostCreateSysPermissionsIncludeInherited(SQLConnection connection,
39 Resource accessorResource) {
40 SQLStatement statement = null;
41
42 try {
43 statement = connection.prepareStatement(sqlStrings.SQL_findInGrantDomainCreatePermissionPostCreateSys_PostCreateSysPermissionID_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID);
44 statement.setResourceId(1, accessorResource);
45 SQLResult resultSet = statement.executeQuery();
46
47 // first collect the create permissions that this resource has to domains
48 Set<DomainCreatePermission> domainCreatePermissions = new HashSet<>();
49 while (resultSet.next()) {
50 domainCreatePermissions.add(getDomainCreatePostCreateSysPermission(resultSet));
51 }
52 resultSet.close();
53
54 return domainCreatePermissions;
55 }
56 catch (SQLException e) {
57 throw new RuntimeException(e);
58 }
59 finally {
60 closeStatement(statement);
61 }
62 }
63 }