/
LinkGroup.java
131 lines (108 loc) · 3.44 KB
/
LinkGroup.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package diskCacheV111.poolManager;
import java.io.Serializable;
import java.util.Collection;
import java.util.concurrent.CopyOnWriteArraySet;
import diskCacheV111.poolManager.PoolSelectionUnit.SelectionLink;
import diskCacheV111.poolManager.PoolSelectionUnit.SelectionLinkGroup;
class LinkGroup implements SelectionLinkGroup, Serializable {
private static final long serialVersionUID = 5425784079451748166L;
private final String _name;
private final Collection<SelectionLink> _links = new CopyOnWriteArraySet<>();
/*
* my personal view to default behavior
*/
private boolean _isNearlineAllowed = true;
private boolean _isOnlineAllowed;
private boolean _isOutputAllowed = true;
private boolean _isReplicaAllowed = true;
private boolean _isCustodialAllowed = true;
LinkGroup(String name) {
_name = name;
}
@Override
public String getName() {
return _name;
}
@Override
public void add(SelectionLink link) {
_links.add(link);
}
@Override
public boolean remove(SelectionLink link) {
return _links.remove(link);
}
@Override
public Collection<SelectionLink> getLinks() {
return _links;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder(_name);
sb.append(" : ");
if (!_links.isEmpty()) {
sb.append("[ ");
for (SelectionLink link : _links) {
sb.append(link.getName());
sb.append(" ");
}
sb.append("]");
} else {
sb.append("[EMPTY]");
}
sb.append("\n");
sb.append(" AccessLatency:\n");
sb.append(" ").append("onlineAllowed=").append(_isOnlineAllowed).append("\n");
sb.append(" ").append("nearlineAllowed=").append(_isNearlineAllowed).append("\n");
sb.append(" RetentionPolicy:\n");
sb.append(" ").append("custodialAllowed=").append(_isCustodialAllowed).append("\n");
sb.append(" ").append("outputAllowed=").append(_isOutputAllowed).append("\n");
sb.append(" ").append("replicaAllowed=").append(_isReplicaAllowed).append("\n");
return sb.toString();
}
public boolean contains(SelectionLink link) {
return _links.contains(link);
}
public Collection<SelectionLink> getAllLinks() {
return _links;
}
@Override
public boolean isCustodialAllowed() {
return _isCustodialAllowed;
}
@Override
public boolean isNearlineAllowed() {
return _isNearlineAllowed;
}
@Override
public boolean isOnlineAllowed() {
return _isOnlineAllowed;
}
@Override
public boolean isOutputAllowed() {
return _isOutputAllowed;
}
@Override
public boolean isReplicaAllowed() {
return _isReplicaAllowed;
}
@Override
public void setCustodialAllowed(boolean isAllowed) {
_isCustodialAllowed = isAllowed;
}
@Override
public void setNearlineAllowed(boolean isAllowed) {
_isNearlineAllowed = isAllowed;
}
@Override
public void setOnlineAllowed(boolean isAllowed) {
_isOnlineAllowed = isAllowed;
}
@Override
public void setOutputAllowed(boolean isAllowed) {
_isOutputAllowed = isAllowed;
}
@Override
public void setReplicaAllowed(boolean isAllowed) {
_isReplicaAllowed = isAllowed;
}
}