private String _context;
private String _name;
- private List<ProvidedInterface> _provided;
- private List<RequiredInterface> _required;
+ private ReadWriteProvidedInterfaces _provided;
+ private ReadWriteRequiredInterfaces _required;
/**
* Constructs the subsystem.
_remaining = new ThreadLocal<List<ProvidedInterface>>();
_context = null;
_name = aName;
- _provided = new ArrayList<ProvidedInterface>();
- _provided.addAll(Arrays.asList(aProvided));
- _required = new ArrayList<RequiredInterface>();
- _required.addAll(Arrays.asList(aRequired));
+ _provided = new ReadWriteProvidedInterfaces(aProvided);
+ _required = new ReadWriteRequiredInterfaces(aRequired);
}
protected AbstractComponent(String aName) {
}
@Override
- public final ProvidedInterface[] getProvidedInterfaces() {
- return _provided.toArray(new ProvidedInterface[0]);
+ public final ProvidedInterfaces getProvidedInterfaces() {
+ return _provided.readOnlyView();
}
@Override
- public final RequiredInterface[] getRequiredInterfaces() {
- return _required.toArray(new RequiredInterface[0]);
+ public final RequiredInterfaces getRequiredInterfaces() {
+ return _required.readOnlyView();
}
@Override
public final Type start(Scope aScope) {
LOG.info("Initialization starting '" + getQualifiedName() + "'");
List<ProvidedInterface> oldRemaining = _remaining.get();
- _remaining.set(new ArrayList<ProvidedInterface>(Arrays.asList(getProvidedInterfaces())));
+ _remaining.set(new ArrayList<ProvidedInterface>(Arrays.asList(getProvidedInterfaces().toArray())));
try {
Type runtime = doStart(aScope);
checkNotStartedInterfaces();