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