Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyan D. Brooks2016-09-19 18:37:58 +0000
committerdonald.g.dunne2016-09-19 18:37:58 +0000
commitac5583aa9b298f705eb3114883387d13c920558c (patch)
tree2ea94fac0516eeea9ef7f561098853bc74c6b01b /plugins/org.eclipse.osee.framework.access
parent8bd1737c9f353423ac29f207d9ec5b54cb050bff (diff)
downloadorg.eclipse.osee-ac5583aa9b298f705eb3114883387d13c920558c.tar.gz
org.eclipse.osee-ac5583aa9b298f705eb3114883387d13c920558c.tar.xz
org.eclipse.osee-ac5583aa9b298f705eb3114883387d13c920558c.zip
refactor: Use HasBranch with AccessObject
Diffstat (limited to 'plugins/org.eclipse.osee.framework.access')
-rw-r--r--plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/AccessObject.java5
-rw-r--r--plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlService.java170
-rw-r--r--plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/data/ArtifactAccessObject.java53
-rw-r--r--plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/data/BranchAccessObject.java34
4 files changed, 119 insertions, 143 deletions
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/AccessObject.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/AccessObject.java
index 02288a20839..0929b2ebd9e 100644
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/AccessObject.java
+++ b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/AccessObject.java
@@ -13,19 +13,18 @@ package org.eclipse.osee.framework.access;
import org.eclipse.osee.framework.access.internal.data.ArtifactAccessObject;
import org.eclipse.osee.framework.access.internal.data.BranchAccessObject;
import org.eclipse.osee.framework.core.data.BranchId;
+import org.eclipse.osee.framework.core.data.HasBranch;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
/**
* @author Jeff C. Phillips
*/
-public abstract class AccessObject {
+public abstract class AccessObject implements HasBranch {
public abstract void removeFromCache();
public abstract void removeFromDatabase(int subjectId) throws OseeCoreException;
- public abstract long getBranchId();
-
public static AccessObject getAccessObject(Object object) throws OseeCoreException {
if (object instanceof Artifact) {
return ArtifactAccessObject.getArtifactAccessObject((Artifact) object);
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlService.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlService.java
index 004181c8c4a..1e393318ce9 100644
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlService.java
+++ b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlService.java
@@ -11,8 +11,6 @@
package org.eclipse.osee.framework.access.internal;
-import com.google.common.cache.Cache;
-import com.google.common.cache.CacheBuilder;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Collection;
@@ -33,8 +31,9 @@ import org.eclipse.osee.framework.access.AccessControlData;
import org.eclipse.osee.framework.access.AccessObject;
import org.eclipse.osee.framework.access.internal.data.ArtifactAccessObject;
import org.eclipse.osee.framework.access.internal.data.BranchAccessObject;
+import org.eclipse.osee.framework.core.data.ArtifactId;
+import org.eclipse.osee.framework.core.data.ArtifactTypeId;
import org.eclipse.osee.framework.core.data.BranchId;
-import org.eclipse.osee.framework.core.data.TokenFactory;
import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
import org.eclipse.osee.framework.core.enums.CoreBranches;
import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
@@ -84,6 +83,8 @@ import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.FrameworkUtil;
import org.osgi.framework.ServiceReference;
+import com.google.common.cache.Cache;
+import com.google.common.cache.CacheBuilder;
/**
* @author Jeff C. Phillips
@@ -110,18 +111,15 @@ public class AccessControlService implements IAccessControlService {
private final String DELETE_BRANCH_ACL_FROM_BRANCH = "DELETE FROM OSEE_BRANCH_ACL WHERE branch_id =?";
private final String USER_GROUP_MEMBERS =
- "SELECT b_art_id FROM osee_relation_link WHERE a_art_id =? AND rel_link_type_id =? ORDER BY b_art_id";
+ "SELECT b_art_id FROM osee_relation_link WHERE a_art_id = ? AND rel_link_type_id = ? ORDER BY b_art_id";
- private final DoubleKeyHashMap<Integer, AccessObject, PermissionEnum> accessControlListCache =
- new DoubleKeyHashMap<Integer, AccessObject, PermissionEnum>();
- private final HashCollection<AccessObject, Integer> objectToSubjectCache =
- new HashCollection<AccessObject, Integer>(true); // <subjectId, groupId>
- private final HashCollection<Integer, Integer> subjectToGroupCache = new HashCollection<>(true); // <groupId, subjectId>
- private final HashCollection<Integer, Integer> groupToSubjectsCache = new HashCollection<>(true); // <artId, branchUuid>
+ private final DoubleKeyHashMap<Long, AccessObject, PermissionEnum> accessControlListCache = new DoubleKeyHashMap<>();
+ private final HashCollection<AccessObject, ArtifactId> objectToSubjectCache = new HashCollection<>(true);
+ private final HashCollection<Long, ArtifactId> subjectToGroupCache = new HashCollection<>(true); // <subjectId, groupId>
+ private final HashCollection<Long, ArtifactId> groupToSubjectsCache = new HashCollection<>(true); // <groupId, subjectId>
// branch_id, art_id, subject_id
- private final CompositeKeyHashMap<Long, Integer, Integer> artifactLockCache =
- new CompositeKeyHashMap<Long, Integer, Integer>();
+ private final CompositeKeyHashMap<BranchId, Long, ArtifactId> artifactLockCache = new CompositeKeyHashMap<>();
private final HashCollection<Integer, PermissionEnum> subjectToPermissionCache =
new HashCollection<Integer, PermissionEnum>(true);
@@ -210,16 +208,16 @@ public class AccessControlService implements IAccessControlService {
private void populateBranchAccessControlList() throws OseeCoreException {
ensurePopulated();
Consumer<JdbcStatement> consumer = stmt -> {
- Integer subjectId = stmt.getInt("privilege_entity_id");
- Long branchUuid = stmt.getLong("branch_id");
- Long subjectArtifactTypeId = stmt.getLong("art_type_id");
+ ArtifactId subjectId = ArtifactId.valueOf(stmt.getLong("privilege_entity_id"));
+ BranchId branch = BranchId.valueOf(stmt.getLong("branch_id"));
+ ArtifactTypeId subjectArtifactTypeId = ArtifactTypeId.valueOf(stmt.getLong("art_type_id"));
PermissionEnum permission = PermissionEnum.getPermission(stmt.getInt("permission_id"));
- BranchAccessObject branchAccessObject = BranchAccessObject.getBranchAccessObject(branchUuid);
+ BranchAccessObject branchAccessObject = BranchAccessObject.getBranchAccessObject(branch);
- accessControlListCache.put(subjectId, branchAccessObject, permission);
+ accessControlListCache.put(subjectId.getId(), branchAccessObject, permission);
objectToSubjectCache.put(branchAccessObject, subjectId);
- ArtifactType subjectArtifactType = getArtifactTypeCache().getById(subjectArtifactTypeId);
+ ArtifactType subjectArtifactType = getArtifactTypeCache().get(subjectArtifactTypeId);
if (subjectArtifactType != null && subjectArtifactType.inheritsFrom(CoreArtifactTypes.UserGroup)) {
populateGroupMembers(subjectId);
}
@@ -231,19 +229,18 @@ public class AccessControlService implements IAccessControlService {
ensurePopulated();
Consumer<JdbcStatement> consumer = stmt -> {
- Integer subjectId = stmt.getInt("privilege_entity_id");
- Integer objectId = stmt.getInt("art_id");
- Long branchUuid = stmt.getLong("branch_id");
+ ArtifactId subjectId = ArtifactId.valueOf(stmt.getLong("privilege_entity_id"));
+ ArtifactId objectId = ArtifactId.valueOf(stmt.getLong("art_id"));
+ BranchId branch = BranchId.valueOf(stmt.getLong("branch_id"));
Long subjectArtifactTypeId = stmt.getLong("art_type_id");
PermissionEnum permission = PermissionEnum.getPermission(stmt.getInt("permission_id"));
if (permission != null) {
if (permission.equals(PermissionEnum.LOCK)) {
- artifactLockCache.put(branchUuid, objectId, subjectId);
+ artifactLockCache.put(branch, objectId.getId(), subjectId);
} else {
- AccessObject accessObject =
- ArtifactAccessObject.getArtifactAccessObject(objectId, TokenFactory.createBranch(branchUuid));
- cacheAccessObject(objectId, subjectId, permission, accessObject);
+ AccessObject accessObject = ArtifactAccessObject.getArtifactAccessObject(objectId, branch);
+ cacheAccessObject(subjectId, permission, accessObject);
ArtifactType subjectArtifactType = getArtifactTypeCache().getById(subjectArtifactTypeId);
if (subjectArtifactType != null && subjectArtifactType.inheritsFrom(CoreArtifactTypes.UserGroup)) {
@@ -256,14 +253,14 @@ public class AccessControlService implements IAccessControlService {
getJdbcClient().runQuery(consumer, GET_ALL_ARTIFACT_ACCESS_CONTROL_LIST);
}
- private void populateGroupMembers(Integer groupId) throws OseeCoreException {
+ private void populateGroupMembers(ArtifactId groupId) throws OseeCoreException {
ensurePopulated();
- if (!groupToSubjectsCache.containsKey(groupId)) {
+ if (!groupToSubjectsCache.containsKey(groupId.getId())) {
getJdbcClient().runQuery(stmt -> {
- Integer groupMember = stmt.getInt("b_art_id");
- subjectToGroupCache.put(groupMember, groupId);
- groupToSubjectsCache.put(groupId, groupMember);
- }, USER_GROUP_MEMBERS, groupId, CoreRelationTypes.Users_User.getGuid());
+ ArtifactId groupMember = ArtifactId.valueOf(stmt.getLong("b_art_id"));
+ subjectToGroupCache.put(groupMember.getId(), groupId);
+ groupToSubjectsCache.put(groupId.getId(), groupMember);
+ }, USER_GROUP_MEMBERS, groupId, CoreRelationTypes.Users_User);
}
}
@@ -403,18 +400,17 @@ public class AccessControlService implements IAccessControlService {
return PermissionEnum.FULLACCESS;
}
- Integer artId = artifact.getArtId();
+ Long artId = artifact.getId();
BranchId branch = artifact.getBranch();
- Long branchUuid = branch.getUuid();
// accessObject = accessObjectCache.get(artId, branchUuid);
- accessObject = ArtifactAccessObject.getArtifactAccessObjectFromCache(artId, branch);
+ accessObject = ArtifactAccessObject.getArtifactAccessObjectFromCache(artifact);
- if (artifactLockCache.containsKey(branchUuid, artId)) {
+ if (artifactLockCache.containsKey(branch, artId)) {
- int lockOwnerId = artifactLockCache.get(branchUuid, artId);
+ ArtifactId lockOwnerId = artifactLockCache.get(branch, artId);
// this object is locked under a different branch
- if (lockOwnerId != subject.getArtId()) {
+ if (subject.notEqual(lockOwnerId)) {
userPermission = PermissionEnum.LOCK;
}
}
@@ -429,15 +425,14 @@ public class AccessControlService implements IAccessControlService {
private PermissionEnum acquirePermissionRank(IBasicArtifact<?> subject, AccessObject accessObject) {
ensurePopulated();
- int subjectId = subject.getArtId();
-
- PermissionEnum userPermission = accessControlListCache.get(subjectId, accessObject);
-
- if (subjectToGroupCache.containsKey(subjectId)) {
- for (int groupPermissionId : subjectToGroupCache.getValues(subjectId)) {
- PermissionEnum groupPermission = accessControlListCache.get(groupPermissionId, accessObject);
+ PermissionEnum userPermission = accessControlListCache.get(subject.getId(), accessObject);
+ if (subjectToGroupCache.containsKey(subject.getId())) {
+ for (ArtifactId groupPermissionId : subjectToGroupCache.getValues(subject.getId())) {
+ PermissionEnum groupPermission = accessControlListCache.get(groupPermissionId.getId(), accessObject);
if (groupPermission != null) {
+ if (userPermission == null) {
+ userPermission = groupPermission;
} else if (groupPermission.getRank() > userPermission.getRank()) {
userPermission = groupPermission;
}
@@ -465,9 +460,9 @@ public class AccessControlService implements IAccessControlService {
ensurePopulated();
AccessObject accessObject = getAccessObject(object);
- boolean newAccessControlData = !accessControlListCache.containsKey(subject.getArtId(), accessObject);
+ boolean newAccessControlData = !accessControlListCache.containsKey(subject.getId(), accessObject);
- if (newAccessControlData || permission != accessControlListCache.get(subject.getArtId(), accessObject)) {
+ if (newAccessControlData || permission != accessControlListCache.get(subject.getId(), accessObject)) {
AccessControlData data = new AccessControlData(subject, accessObject, permission, newAccessControlData);
persistPermission(data);
}
@@ -512,26 +507,26 @@ public class AccessControlService implements IAccessControlService {
if (data.isBirth()) {
getJdbcClient().runPreparedUpdate(INSERT_INTO_ARTIFACT_ACL, artifactAccessObject.getArtId(),
- data.getPermission().getPermId(), data.getSubject().getArtId(), artifactAccessObject.getBranchId());
+ data.getPermission().getPermId(), data.getSubject().getArtId(), artifactAccessObject.getBranch());
} else {
getJdbcClient().runPreparedUpdate(UPDATE_ARTIFACT_ACL, data.getPermission().getPermId(),
- data.getSubject().getArtId(), artifactAccessObject.getArtId(), artifactAccessObject.getBranchId());
+ data.getSubject().getArtId(), artifactAccessObject.getArtId(), artifactAccessObject.getBranch());
}
event.addArtifact(artifactAccessObject.getArtId());
if (recurse) {
- Artifact artifact = ArtifactQuery.getArtifactFromId(artifactAccessObject.getArtId(),
- TokenFactory.createBranch(artifactAccessObject.getBranchId()));
+ Artifact artifact =
+ ArtifactQuery.getArtifactFromId(artifactAccessObject.getArtId(), artifactAccessObject.getBranch());
for (Artifact child : artifact.getChildren()) {
AccessControlData childAccessControlData = null;
AccessObject childAccessObject = getAccessObject(child);
if (objectToSubjectCache.containsKey(childAccessObject)) {
- Collection<Integer> subjectIds = objectToSubjectCache.getValues(childAccessObject);
+ Collection<ArtifactId> subjectIds = objectToSubjectCache.getValues(childAccessObject);
- for (int subjectId : subjectIds) {
- if (subjectId == subject.getArtId()) {
+ for (ArtifactId subjectId : subjectIds) {
+ if (subjectId.equals(subject)) {
childAccessControlData =
new AccessControlData(subject, childAccessObject, permission, false);
break;
@@ -560,10 +555,10 @@ public class AccessControlService implements IAccessControlService {
try {
if (data.isBirth()) {
getJdbcClient().runPreparedUpdate(INSERT_INTO_BRANCH_ACL, data.getPermission().getPermId(),
- data.getSubject().getArtId(), branchAccessObject.getBranchId());
+ data.getSubject().getArtId(), branchAccessObject.getBranch());
} else {
getJdbcClient().runPreparedUpdate(UPDATE_BRANCH_ACL, data.getPermission().getPermId(),
- data.getSubject().getArtId(), branchAccessObject.getBranchId());
+ data.getSubject().getArtId(), branchAccessObject.getBranch());
}
} catch (OseeCoreException ex) {
OseeLog.log(AccessControlHelper.class, Level.SEVERE, ex);
@@ -574,14 +569,14 @@ public class AccessControlService implements IAccessControlService {
private void cacheAccessControlData(AccessControlData data) throws OseeCoreException {
ensurePopulated();
AccessObject accessObject = data.getObject();
- int subjectId = data.getSubject().getArtId();
PermissionEnum permission = data.getPermission();
+ ArtifactId subject = data.getSubject();
if (!permission.equals(PermissionEnum.LOCK)) {
- accessControlListCache.put(subjectId, accessObject, permission);
- objectToSubjectCache.put(accessObject, subjectId);
+ accessControlListCache.put(data.getSubject().getId(), accessObject, permission);
+ objectToSubjectCache.put(accessObject, subject);
- populateGroupMembers(subjectId);
+ populateGroupMembers(subject);
}
}
@@ -608,14 +603,14 @@ public class AccessControlService implements IAccessControlService {
ensurePopulated();
List<AccessControlData> datas = new LinkedList<>();
- Collection<Integer> subjects = objectToSubjectCache.getValues(accessObject);
+ Collection<ArtifactId> subjects = objectToSubjectCache.getValues(accessObject);
if (subjects == null) {
return datas;
}
- for (int subjectId : subjects) {
+ for (ArtifactId subjectId : subjects) {
Artifact subject = ArtifactQuery.getArtifactFromId(subjectId, CoreBranches.COMMON);
- PermissionEnum permissionEnum = accessControlListCache.get(subjectId, accessObject);
+ PermissionEnum permissionEnum = accessControlListCache.get(subjectId.getId(), accessObject);
AccessControlData accessControlData =
new AccessControlData(subject, accessObject, permissionEnum, false, false);
if (accessObject instanceof ArtifactAccessObject) {
@@ -631,10 +626,7 @@ public class AccessControlService implements IAccessControlService {
}
private PermissionEnum getBranchPermission(IBasicArtifact<?> subject, Object object) throws OseeCoreException {
- long branchUuid = ((AccessObject) object).getBranchId();
- BranchId branch = TokenFactory.createBranch(branchUuid);
-
- return getBranchPermission(subject, branch);
+ return getBranchPermission(subject, ((AccessObject) object).getBranch());
}
public void removeAccessControlDataIf(boolean removeFromDb, AccessControlData data) throws OseeCoreException {
@@ -667,18 +659,18 @@ public class AccessControlService implements IAccessControlService {
}
AccessObject accessObject = data.getObject();
- Integer subjectId = data.getSubject().getArtId();
+ ArtifactId subject = data.getSubject();
- accessControlListCache.remove(subjectId, accessObject);
- objectToSubjectCache.removeValue(accessObject, subjectId);
- Collection<Integer> members = groupToSubjectsCache.getValues(subjectId);
+ accessControlListCache.remove(data.getSubject().getId(), accessObject);
+ objectToSubjectCache.removeValue(accessObject, subject);
+ Collection<ArtifactId> members = groupToSubjectsCache.getValues(subject.getId());
if (members != null) {
- for (Integer member : members) {
- subjectToGroupCache.removeValue(member, subjectId);
+ for (ArtifactId member : members) {
+ subjectToGroupCache.removeValue(member.getId(), subject);
}
}
- groupToSubjectsCache.removeValues(subjectId);
+ groupToSubjectsCache.removeValues(subject.getId());
if (!objectToSubjectCache.containsKey(accessObject)) {
accessObject.removeFromCache();
}
@@ -688,8 +680,8 @@ public class AccessControlService implements IAccessControlService {
return AccessObject.getAccessObject(object);
}
- private void cacheAccessObject(Integer objectId, Integer subjectId, PermissionEnum permission, AccessObject accessObject) {
- accessControlListCache.put(subjectId, accessObject, permission);
+ private void cacheAccessObject(ArtifactId subjectId, PermissionEnum permission, AccessObject accessObject) {
+ accessControlListCache.put(subjectId.getId(), accessObject, permission);
objectToSubjectCache.put(accessObject, subjectId);
}
@@ -702,15 +694,14 @@ public class AccessControlService implements IAccessControlService {
event.setLocked(true);
Set<Artifact> lockedArts = new HashSet<>();
for (Artifact object : objects) {
- Integer objectArtId = object.getArtId();
- Integer subjectArtId = subject.getArtId();
- Long objectBranchId = object.getBranchId();
+ Long objectArtId = object.getId();
+ BranchId objectBranch = object.getBranch();
- if (!artifactLockCache.containsKey(objectBranchId, objectArtId)) {
+ if (!artifactLockCache.containsKey(objectBranch, objectArtId)) {
AccessObject accessObject = getAccessObject(object);
AccessControlData data = new AccessControlData(subject, accessObject, PermissionEnum.LOCK, true);
persistPermission(data);
- artifactLockCache.put(objectBranchId, objectArtId, subjectArtId);
+ artifactLockCache.put(objectBranch, objectArtId, subject);
event.addArtifact(object.getUuid());
lockedArts.add(object);
}
@@ -729,13 +720,13 @@ public class AccessControlService implements IAccessControlService {
event.setLocked(false);
Set<Artifact> lockedArts = new HashSet<>();
for (Artifact object : objects) {
- Integer objectArtId = object.getArtId();
- Long branchUuid = object.getBranchId();
+ Long objectArtId = object.getId();
+ BranchId branch = object.getBranch();
- if (artifactLockCache.containsKey(branchUuid, objectArtId) && canUnlockObject(object, subject)) {
+ if (artifactLockCache.containsKey(branch, objectArtId) && canUnlockObject(object, subject)) {
AccessObject accessObject = getAccessObject(object);
removeAccessControlDataIf(true, new AccessControlData(subject, accessObject, PermissionEnum.LOCK, false));
- artifactLockCache.removeAndGet(branchUuid, objectArtId);
+ artifactLockCache.removeAndGet(branch, objectArtId);
event.addArtifact(object.getUuid());
lockedArts.add(object);
}
@@ -767,13 +758,13 @@ public class AccessControlService implements IAccessControlService {
return false;
}
- return artifactLockCache.containsKey(object.getBranchId(), object.getArtId());
+ return artifactLockCache.containsKey(object.getBranch(), object.getId());
}
public boolean canUnlockObject(Artifact object, Artifact subject) throws OseeCoreException {
ensurePopulated();
- Integer subjectId = artifactLockCache.get(object.getBranchId(), object.getArtId());
- return subjectId != null && subjectId.intValue() == subject.getArtId();
+ ArtifactId subjectId = artifactLockCache.get(object.getBranch(), object.getId());
+ return subject.equals(subjectId);
}
public Artifact getSubjectFromLockedObject(Object object) throws OseeCoreException {
@@ -782,7 +773,7 @@ public class AccessControlService implements IAccessControlService {
if (object instanceof Artifact) {
Artifact art = (Artifact) object;
- Integer subjectArtId = artifactLockCache.get(art.getBranchId(), art.getArtId());
+ ArtifactId subjectArtId = artifactLockCache.get(art.getBranch(), art.getId());
if (subjectArtId != null) {
subject = UserManager.getUserByArtId(subjectArtId);
@@ -800,8 +791,7 @@ public class AccessControlService implements IAccessControlService {
}
if (hasLock(object)) {
- long branchUuid = object.getBranchId();
- hasAccess = artifactLockCache.get(branchUuid, object.getArtId()) == UserManager.getUser().getArtId();
+ hasAccess = artifactLockCache.get(object.getBranch(), object.getId()).equals(UserManager.getUser());
}
return hasAccess;
}
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/data/ArtifactAccessObject.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/data/ArtifactAccessObject.java
index bc9a1386a7d..3a52a77a22a 100644
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/data/ArtifactAccessObject.java
+++ b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/data/ArtifactAccessObject.java
@@ -11,6 +11,7 @@
package org.eclipse.osee.framework.access.internal.data;
import org.eclipse.osee.framework.access.AccessObject;
+import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.jdk.core.type.DoubleKeyHashMap;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
@@ -22,70 +23,60 @@ import org.eclipse.osee.framework.skynet.core.utility.ConnectionHandler;
*/
public class ArtifactAccessObject extends AccessObject {
- private final Integer artId;
- private final Long branchUuid;
- private static final DoubleKeyHashMap<Integer, Long, ArtifactAccessObject> cache =
- new DoubleKeyHashMap<Integer, Long, ArtifactAccessObject>();
+ private final ArtifactId artId;
+ private final BranchId branch;
+ private static final DoubleKeyHashMap<Long, BranchId, ArtifactAccessObject> cache = new DoubleKeyHashMap<>();
- public ArtifactAccessObject(Integer artId, Long branchUuid) {
- super();
+ public ArtifactAccessObject(ArtifactId artId, BranchId branch) {
this.artId = artId;
- this.branchUuid = branchUuid;
+ this.branch = branch;
}
@Override
public int hashCode() {
int result = 17;
- result = 31 * result + artId;
- result = 31 * result + branchUuid.hashCode();
+ result = 31 * result + artId.hashCode();
+ result = 31 * result + branch.hashCode();
return result;
}
- public Integer getArtId() {
+ public ArtifactId getArtId() {
return artId;
}
@Override
- public long getBranchId() {
- return branchUuid;
+ public BranchId getBranch() {
+ return branch;
}
@Override
public void removeFromCache() {
- cache.remove(artId, branchUuid);
+ cache.remove(artId.getId(), branch);
}
@Override
public void removeFromDatabase(int subjectId) throws OseeCoreException {
final String DELETE_ARTIFACT_ACL =
"DELETE FROM OSEE_ARTIFACT_ACL WHERE privilege_entity_id = ? AND art_id =? AND branch_id =?";
- ConnectionHandler.runPreparedUpdate(DELETE_ARTIFACT_ACL, subjectId, artId, branchUuid);
+ ConnectionHandler.runPreparedUpdate(DELETE_ARTIFACT_ACL, subjectId, artId, branch);
}
public static ArtifactAccessObject getArtifactAccessObject(Artifact artifact) throws OseeCoreException {
- Integer artId = artifact.getArtId();
- BranchId branchUuid = artifact.getBranch();
- return getArtifactAccessObject(artId, branchUuid);
+ return getArtifactAccessObject(artifact, artifact.getBranch());
}
- public static ArtifactAccessObject getArtifactAccessObject(Integer artId, BranchId branch) throws OseeCoreException {
- long branchUuid = branch.getUuid();
- ArtifactAccessObject accessObject = cache.get(artId, branchUuid);
+ public static ArtifactAccessObject getArtifactAccessObject(ArtifactId artifact, BranchId branch) throws OseeCoreException {
+ ArtifactAccessObject accessObject = cache.get(artifact.getId(), branch);
if (accessObject == null) {
- accessObject = new ArtifactAccessObject(artId, branchUuid);
- cache.put(artId, branchUuid, accessObject);
+ accessObject = new ArtifactAccessObject(artifact, branch);
+ cache.put(artifact.getId(), branch, accessObject);
}
return accessObject;
}
- public static AccessObject getArtifactAccessObjectFromCache(Artifact art) throws OseeCoreException {
- return getArtifactAccessObjectFromCache(art.getArtId(), art.getBranch());
- }
-
- public static AccessObject getArtifactAccessObjectFromCache(Integer artId2, BranchId branch) throws OseeCoreException {
- long branchUuid2 = branch.getUuid();
- return cache.get(artId2, branchUuid2);
+ public static AccessObject getArtifactAccessObjectFromCache(Artifact artifact) throws OseeCoreException {
+ return cache.get(artifact.getId(), artifact.getBranch());
}
@Override
@@ -94,6 +85,6 @@ public class ArtifactAccessObject extends AccessObject {
return false;
}
ArtifactAccessObject ao = (ArtifactAccessObject) obj;
- return ao.artId.equals(this.artId) && ao.branchUuid.equals(this.branchUuid);
+ return ao.artId.equals(this.artId) && ao.branch.equals(this.branch);
}
-}
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/data/BranchAccessObject.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/data/BranchAccessObject.java
index ba67b1bcf62..c45834e5967 100644
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/data/BranchAccessObject.java
+++ b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/data/BranchAccessObject.java
@@ -21,53 +21,49 @@ import org.eclipse.osee.framework.skynet.core.utility.ConnectionHandler;
* @author Jeff C. Phillips
*/
public class BranchAccessObject extends AccessObject {
- private final Long branchUuid;
- private static final Map<Long, BranchAccessObject> cache = new HashMap<>();
+ private final BranchId branch;
+ private static final Map<BranchId, BranchAccessObject> cache = new HashMap<>();
@Override
public int hashCode() {
int result = 17;
- result = 31 * result + branchUuid.hashCode();
+ result = 31 * result + branch.hashCode();
return result;
}
- public BranchAccessObject(long branchUuid) {
- this.branchUuid = branchUuid;
+ public BranchAccessObject(BranchId branch) {
+ this.branch = branch;
}
@Override
- public long getBranchId() {
- return branchUuid;
+ public BranchId getBranch() {
+ return branch;
}
@Override
public void removeFromCache() {
- cache.remove(branchUuid);
+ cache.remove(branch);
}
@Override
public void removeFromDatabase(int subjectId) throws OseeCoreException {
final String DELETE_BRANCH_ACL = "DELETE FROM OSEE_BRANCH_ACL WHERE privilege_entity_id = ? AND branch_id =?";
- ConnectionHandler.runPreparedUpdate(DELETE_BRANCH_ACL, subjectId, branchUuid);
+ ConnectionHandler.runPreparedUpdate(DELETE_BRANCH_ACL, subjectId, branch);
}
public static BranchAccessObject getBranchAccessObject(BranchId branch) throws OseeCoreException {
- return getBranchAccessObject(branch.getId());
- }
-
- public static BranchAccessObject getBranchAccessObject(long branchUuid) {
BranchAccessObject branchAccessObject;
- if (cache.containsKey(branchUuid)) {
- branchAccessObject = cache.get(branchUuid);
+ if (cache.containsKey(branch)) {
+ branchAccessObject = cache.get(branch);
} else {
- branchAccessObject = new BranchAccessObject(branchUuid);
- cache.put(branchUuid, branchAccessObject);
+ branchAccessObject = new BranchAccessObject(branch);
+ cache.put(branch, branchAccessObject);
}
return branchAccessObject;
}
public static BranchAccessObject getBranchAccessObjectFromCache(BranchId branch) throws OseeCoreException {
- return cache.get(branch.getUuid());
+ return cache.get(branch);
}
@Override
@@ -75,6 +71,6 @@ public class BranchAccessObject extends AccessObject {
if (!(obj instanceof BranchAccessObject)) {
return false;
}
- return branchUuid.equals(((BranchAccessObject) obj).branchUuid);
+ return branch.equals(((BranchAccessObject) obj).branch);
}
}

Back to the top