package foundation.right;
|
|
public class RightPool {
|
|
private static RangePool applicationPool;
|
private static RangePool orgPool;
|
private static RangePool departmentPool;
|
private static RangePool userPool;
|
private static RangePool onlieUserPool;
|
|
static {
|
applicationPool = new RangePool(Range.Application);
|
orgPool = new RangePool(Range.Org);
|
departmentPool = new RangePool(Range.Department);
|
userPool = new RangePool(Range.User);
|
onlieUserPool = new RangePool(Range.OnlineUser);
|
}
|
|
public static String getResourceKey(Range range, String category, String instanceCode) {
|
if (range == null) {
|
range = Range.Application;
|
}
|
|
return range.toString() + "-" + category + "-" + instanceCode;
|
}
|
|
public static void apply(Range range, String resourceKey, RightAssistant assistant) {
|
if (range == null) {
|
range = Range.Application;
|
}
|
|
RangePool pool = parsePool(range);
|
|
if (pool == null) {
|
return;
|
}
|
|
pool.apply(resourceKey, assistant);
|
}
|
|
private static RangePool parsePool(Range range) {
|
RangePool pool = null;
|
|
if (Range.Application == range) {
|
pool = applicationPool;
|
}
|
else if (Range.Org == range) {
|
pool = orgPool;
|
}
|
else if (Range.Department == range) {
|
pool = departmentPool;
|
}
|
else if (Range.User == range) {
|
pool = userPool;
|
}
|
else if (Range.OnlineUser == range) {
|
pool = onlieUserPool;
|
}
|
|
return pool;
|
}
|
|
}
|