using HeuristicLab.Common; using HeuristicLab.Core; using HeuristicLab.Data; using HeuristicLab.Encodings.IntegerVectorEncoding; using HeuristicLab.Encodings.RealVectorEncoding; using HeuristicLab.Parameters; using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; namespace HeuristicLab.BioBoost.Operators.Transformation { [StorableClass] public class FeedstockTransformer : BioBoostOperator { public ValueLookupParameter ProductNameParameter { get { return (ValueLookupParameter) Parameters["ProductName"]; } } public string ProductName { get { return ProductNameParameter.Value.Value; } set { ProductNameParameter.Value = new StringValue(value);} } #region Construction & Cloning [StorableConstructor] protected FeedstockTransformer(bool isDeserializing) : base(isDeserializing) {} protected FeedstockTransformer(FeedstockTransformer orig, Cloner cloner) : base(orig, cloner) {} public FeedstockTransformer() { Parameters.Add(new ValueLookupParameter("ProductName", "The product name to be transformed.")); } public override IDeepCloneable Clone(Cloner cloner) { return new FeedstockTransformer(this, cloner); } #endregion public override IOperation Execute(IExecutionContext context, System.Threading.CancellationToken cancellationToken) { return base.Execute(context, cancellationToken); } protected void TransformValue(string valueName, T value) where T : class, IItem { IParameter param; if (!Parameters.TryGetValue(valueName, out param)) { param = new LookupParameter(valueName, "Transformed value."); ((ILookupParameter) param).ExecutionContext = ExecutionContext; Parameters.Add(param); } param.ActualValue = value; } protected double GetMaxCapacity(int i, ValueParameterCollection maxCapacities, double defaultValue) { var regionName = ProblemData.LocationNames[i]; IValueParameter param; if (maxCapacities.TryGetValue(regionName, out param)) return ((DoubleValue) param.Value).Value; if (maxCapacities.TryGetValue("Default", out param)) return ((DoubleValue) param.Value).Value; return defaultValue; } } }