CompositeSliceLoader.java
// Copyright (c) ZeroC, Inc.
package com.zeroc.Ice;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Implements SliceLoader by combining multiple SliceLoaders.
*/
public final class CompositeSliceLoader implements SliceLoader {
private final List<SliceLoader> _loaders;
/**
* Creates a CompositeSliceLoader that combines the given SliceLoaders.
*
* @param loaders The initial Slice loaders.
*/
public CompositeSliceLoader(SliceLoader... loaders) {
_loaders = new ArrayList<>(Arrays.asList(loaders));
}
/**
* Adds a SliceLoader to this CompositeSliceLoader.
*
* @param loader The SliceLoader to add.
*/
public void add(SliceLoader loader) {
_loaders.add(loader);
}
@Override
public java.lang.Object newInstance(String typeId) {
for (SliceLoader loader : _loaders) {
java.lang.Object instance = loader.newInstance(typeId);
if (instance != null) {
return instance;
}
}
return null;
}
}