protected internal override LogicalNetworkGene CreateGene(EntityDataUnit unit) { Contract.Requires(unit != null); Contract.Requires(unit.EntityData != null); Contract.Ensures(Contract.Result<LogicalNetworkGene>() != null); return null; }
protected internal override LogicalNetworkGene CreateGene(EntityDataUnit unit) { var reg = GetRegistry(unit); int index = GetIndex(reg); var operation = GetValue<LogicalOperation>(reg, "Operation"); return new LogicGateGene(index, operation); }
protected internal override LogicalNetworkGene CreateGene(EntityDataUnit unit) { var reg = GetRegistry(unit); int index = GetIndex(reg); bool isUpper = GetValue<bool>(reg, "IsUpper"); return new LogicalConnectionGene(index, isUpper); }
internal LogicalNetworkGene CreateGene(EntityDataUnit unit) { Contract.Requires(unit != null); switch (unit.OptUnitID) { case NullID: return null; case ConnectionID: return connOptUnit.CreateGene(unit); case GateID: return gateOptUnit.CreateGene(unit); default: throw new InvalidOperationException("Unknown OptUnit ID '" + unit.OptUnitID + "'."); } }
protected internal abstract LogicalNetworkGene CreateGene(EntityDataUnit unit);