package SOFA.demos.logdemo;

/**
  * Generated by SOFA CodeGen
  * Component builder for ::CUNI::SOFA::demos::logdemo::Tester?nenya.ms.mff.cuni.cz!0
  * Friday, March 14, 2003 11:16:51 AM CET
  */

public class TesterBuilder extends SOFA.Component.DCUP.ComponentBuilderImpl {
  // Defined in the ancestor
  // protected SOFA.Component.ComponentManager cm;
  // protected SOFA.SOFAnode.Run.Deployment.DeploymentDescriptor dd;
  
  TesterImpl impl;
  
  
  
  private void initProperties() throws NumberFormatException {
  }

  
  public TesterBuilder() {
  }
  
  public void initialize(SOFA.Component.ComponentManager cm, SOFA.SOFAnode.Run.Deployment.DeploymentDescriptor dd) {
    super.initialize(cm, dd);
    initProperties();
    
    impl = new TesterImpl ((SOFA.Component.DCUP.DCUPComponentManagerImpl) cm);
    
    
    updatable = impl.isUpdatable();
  }
  
  public void onLeaving(SOFA.SOFAnode.Run.Storage stateStore) throws SOFA.Component.ComponentLifecycleException {
    if (!stopped) {
      impl.bStop();
    } else {
      SOFA.SOFAnode.Run.Deployment.DeplDock dock = cm.getLocalDeplDock();
      try {
        dock.removeComponent(fullInstanceName);
      } catch (SOFA.SOFAnode.Run.Deployment.DeploymentException e) {
        throw new SOFA.Component.ComponentLifecycleException("Component can't be removed", e);
      }
    }
  }
  
  public void onArrival(SOFA.SOFAnode.Run.Storage stateStore) throws SOFA.Component.ComponentLifecycleException {
    impl.bStart();
  }
  
  public void store(SOFA.SOFAnode.Run.Storage stateStore) throws SOFA.Component.ComponentLifecycleException {
    impl.bStore();
  }
  
  public void restore(SOFA.SOFAnode.Run.Storage stateStore) throws SOFA.Component.ComponentLifecycleException {
    impl.bRestore();
  }
}
