forked from community/device-mgt-core
* Fixed issues regarding roles updating for policy * Fixed the relevent test cases JIRA:- https://wso2.org/jira/browse/EMM-812revert-70aa11f8
parent
1c8bb7551d
commit
45ce4dbe4e
@ -0,0 +1,42 @@
|
||||
package org.wso2.carbon.policy.mgt.core.util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.TreeSet;
|
||||
|
||||
public class SetReferenceTransformer<T>{
|
||||
private List<T> objectsToRemove;
|
||||
private List<T> objectsToAdd;
|
||||
|
||||
/**
|
||||
* Use the Set theory to find the objects to delete and objects to add
|
||||
|
||||
The difference of objects in existingSet and newSet needed to be deleted
|
||||
|
||||
new roles to add = newSet - The intersection of roles in existingSet and newSet
|
||||
* @param currentList
|
||||
* @param nextList
|
||||
*/
|
||||
public void transform(List<T> currentList, List<T> nextList){
|
||||
TreeSet<T> existingSet = new TreeSet<T>(currentList);
|
||||
TreeSet<T> newSet = new TreeSet<T>(nextList);;
|
||||
|
||||
existingSet.removeAll(newSet);
|
||||
|
||||
objectsToRemove = new ArrayList<>(existingSet);
|
||||
|
||||
// Clearing and re-initializing the set
|
||||
existingSet = new TreeSet<T>(currentList);
|
||||
|
||||
newSet.removeAll(existingSet);
|
||||
objectsToAdd = new ArrayList<T>(newSet);
|
||||
}
|
||||
|
||||
public List<T> getObjectsToRemove() {
|
||||
return objectsToRemove;
|
||||
}
|
||||
|
||||
public List<T> getObjectsToAdd() {
|
||||
return objectsToAdd;
|
||||
}
|
||||
}
|
Loading…
Reference in new issue