package scs.demos.bigtable.test.servant;
import java.util.ArrayList;
import org.omg.PortableServer.POAPackage.ServantNotActive;
import org.omg.PortableServer.POAPackage.WrongPolicy;
import scs.core.FacetDescription;
import scs.core.servant.IComponentServant;
import scs.demos.bigtable.test.Reducer;
import scs.demos.bigtable.test.ReducerHelper;
public class TestComponent extends IComponentServant {
private final static String IFACE_REDUCER = "scs::demos::bigtable::test::Reducer";
private final static String FACET_REDUCER = "Reducer";
private ReducerServant reducerServant = null;
private Reducer reducer = null;
@Override
protected ArrayList<FacetDescription> createFacets() {
ArrayList<FacetDescription> facets = new ArrayList<FacetDescription>();
FacetDescription fd = new FacetDescription();
fd.interface_name = IFACE_REDUCER;
fd.name = FACET_REDUCER;
fd.facet_ref = getReducer();
facets.add(fd);
return facets;
}
@Override
protected boolean doShutdown() {
// TODO Auto-generated method stub
return true;
}
@Override
protected boolean doStartup() {
// TODO Auto-generated method stub
return true;
}
private Reducer getReducer() {
if (this.reducerServant == null) {
try {
this.reducerServant = new ReducerServant(this);
this.reducer = ReducerHelper.narrow(this._poa()
.servant_to_reference(this.reducerServant));
} catch (ServantNotActive e) {
e.printStackTrace();
} catch (WrongPolicy e) {
e.printStackTrace();
}
}
return this.reducer;
}
}