/// <summary>
 /// Gets array of <see cref="T:Ferda.Modules.SelectString"/> as
 /// options for property, whose options are dynamically variable.
 /// </summary>
 public override SelectString[] GetPropertyOptions(string propertyName, BoxModuleI boxModule)
 {
     return null;
 }
 /// <summary>
 /// Creates <see cref="T:Ice.Object"/> implementing Ice interface of
 /// the box module i.e. box`s functions declared in slice design.
 /// </summary>
 /// <param name="boxModule">Box module, to which created functions
 /// will belong to.</param>
 /// <param name="iceObject">An out parameter returning <see cref="T:Ice.Object"/>
 /// implementing box`s "ice" functions. This value is same as value
 /// of <c>functions</c>.</param>
 /// <param name="functions">An out parameter returning <see cref="T:Ice.Object"/>
 /// implementing box`s "ice" functions. This value is same as value
 /// of <c>iceObject</c>.</param>
 /// <example>
 /// Please see an example for <see cref="T:Ferda.Modules.Boxes.IBoxInfo">IBoxInfo`s</see>
 /// 	<see cref="M:Ferda.Modules.Boxes.IBoxInfo.CreateFunctions(Ferda.Modules.BoxModuleI,Ice.Object,Ferda.Modules.IFunctions)"/>.
 /// </example>
 /// <remarks>
 /// Each instance of the box module has its own functions object but
 /// class implementing <see cref="T:Ferda.Modules.Boxes.IBoxInfo">
 /// this interface</see> is shared by all instances of the box modules
 /// of the same type <see cref="P:Ferda.Modules.Boxes.IBoxInfo.Identifier"/>
 /// </remarks>
 public override void CreateFunctions(BoxModuleI boxModule, out Ice.Object iceObject, out IFunctions functions)
 {
     BodyMassIndexFunctionsI result = new BodyMassIndexFunctionsI();
     iceObject = (Ice.Object)result;
     functions = (IFunctions)result;
 }
 /// <summary>
 /// Gets the box modules asking for creation.
 /// </summary>
 /// <param name="localePrefs">The localization preferences.</param>
 /// <param name="boxModule">The box module.</param>
 /// <returns>
 /// Array of <see cref="T:Ferda.Modules.ModuleAskingForCreation">
 /// Modules Asking For Creation</see>.
 /// </returns>
 public override ModulesAskingForCreation[] GetModulesAskingForCreation(string[] localePrefs, BoxModuleI boxModule)
 {
     Dictionary<string, ModulesAskingForCreation> modulesAFC = this.getModulesAskingForCreationNonDynamic(localePrefs);
     List<ModulesAskingForCreation> result = new List<ModulesAskingForCreation>();
     ModulesAskingForCreation moduleAFC;
     ModulesConnection moduleConnection;
     ModuleAskingForCreation singleModuleAFC;
     foreach (string moduleAFCName in modulesAFC.Keys)
     {
         moduleAFC = modulesAFC[moduleAFCName];
         moduleConnection = new ModulesConnection();
         singleModuleAFC = new ModuleAskingForCreation();
         switch (moduleAFCName)
         {
             case "Attribute":
                 moduleConnection.socketName = "ColumnOrDerivedColumn";
                 singleModuleAFC.newBoxModuleIdentifier = "DataMiningCommon.Attributes.Attribute";
                 // == Ferda.Modules.Boxes.DataMiningCommon.Attributes.Attribute.AttributeBoxInfo.typeIdentifier;
                 break;
             case "AtomSetting":
                 moduleConnection.socketName = "Attribute";
                 singleModuleAFC.newBoxModuleIdentifier = "DataMiningCommon.AtomSetting";
                 // == Ferda.Modules.Boxes.DataMiningCommon.AtomSetting.AtomSettingBoxInfo.typeIdentifier;
                 break;
             case "CategorialPartialCedentSetting":
                 moduleConnection.socketName = "Attribute";
                 singleModuleAFC.newBoxModuleIdentifier = "DataMiningCommon.CategorialPartialCedentSetting";
                 // == Ferda.Modules.Boxes.DataMiningCommon.CategorialPartialCedentSetting.CategorialPartialCedentSettingBoxInfo.typeIdentifier;
                 break;
             default:
                 throw Ferda.Modules.Exceptions.SwitchCaseNotImplementedError(moduleAFCName);
         }
         moduleConnection.boxModuleParam = boxModule.MyProxy;
         singleModuleAFC.modulesConnection = new ModulesConnection[] { moduleConnection };
         moduleAFC.newModules = new ModuleAskingForCreation[] { singleModuleAFC };
         result.Add(moduleAFC);
     }
     return result.ToArray();
 }
 /// <summary>
 /// Gets default value for box module user label.
 /// </summary>
 public override string GetDefaultUserLabel(BoxModuleI boxModule)
 {
     BodyMassIndexFunctionsI functionsObject = (BodyMassIndexFunctionsI)boxModule.FunctionsIObj;
     return functionsObject.GetDefaultUserLabel();
 }
 /// <summary>
 /// Creates new box module in the factory.
 /// </summary>
 /// <param name="__current">The Ice.Current.</param>
 /// <returns>
 /// The <see cref="T:Ferda.Modules.BoxModulePrx">proxy</see> of
 /// the newly created <see cref="T:Ferda.Modules.BoxModuleI">box module</see>.
 /// </returns>
 /// <exception cref="T:Ice.ObjectNotExistException">
 /// Thrown iff factory is destroying or destroyed.
 /// </exception>
 public override BoxModulePrx createBoxModule(Ice.Current __current)
 {
     if (_destroy)
     {
         throw new Ice.ObjectNotExistException();
     }
     Ice.Identity boxModuleIdentity = Ice.Util.stringToIdentity(Ice.Util.generateUUID());
     BoxModuleFactoryPrx myProxy = BoxModuleFactoryPrxHelper.uncheckedCast(__current.adapter.addWithUUID(this));
     BoxModuleI boxModule = new BoxModuleI(this.boxInfo, boxModuleIdentity, myProxy, this.manager, __current.adapter, this.localePrefs);
     BoxModulePrx boxModulePrx = boxModule.MyProxy;
     string boxIdentity = Ice.Util.identityToString(boxModulePrx.ice_getIdentity());
     this.boxModules[boxIdentity] = boxModule;
     return boxModulePrx;
 }
 /// <summary>
 /// Sets the <see cref="T:Ferda.Modules.BoxModuleI">box module</see>
 /// and the <see cref="T:Ferda.Modules.Boxes.IBoxInfo">box info</see>.
 /// </summary>
 /// <param name="boxModule">The box module.</param>
 /// <param name="boxInfo">The box info.</param>
 public void setBoxModuleInfo(BoxModuleI boxModule, IBoxInfo boxInfo)
 {
     this.boxModule = boxModule;
     //this.boxInfo = boxInfo;
 }
 /// <summary>
 /// Gets the second set.
 /// </summary>
 /// <param name="boxModule">The box module.</param>
 /// <returns>Second set setting for SD-* task.</returns>
 public static WorkingWithCedentsSecondSetEnum GetSecondSet(BoxModuleI boxModule)
 {
     return (WorkingWithCedentsSecondSetEnum)Enum.Parse(typeof(WorkingWithCedentsSecondSetEnum),
         boxModule.GetPropertyString("SecondSet"),
         true);
 }