/// <summary> /// /// </summary> /// <param name="identifier"></param> /// <param name="readOnly">Indicates whether the IRegistry is ReadOnly. If true, an exception will be thrown if the IRegistry /// attempts a write.</param> /// <param name="registryType"></param> protected RegistryBase(IRegistryIdentifier identifier, RegistryType registryType, bool readOnly) { this.Clear(); this.Identifier = identifier; this.ReadOnly = readOnly; this.RegistryType = registryType; }
public bool Equals(IRegistryIdentifier other) { if (other == null) return false; else if (other is RegistryIdentifier) return this.Identifier == ((RegistryIdentifier)other).Identifier; else return false; }
public static List<IFunction> GetSumFunctions(IRegistryIdentifier[] allWriteableRegistryIdentifiers, IRegistryIdentifier[] allRegistryIdentifiers, IEnumerable<ICodonConverterIdentifier> codonConverters, double weightInGeneticCode) { return FunctionFactory.GetFunctionsWith2Parameters( allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, functionBaseName: "Sum", getFunctionName: (registryPermutation, codonConverterPermutation) => "Sum", functionArea: "Arithmetic", twoConvertedCodons: Sum2ConvertedCodons, evaluatedAminoAcidAndConvertedCodon: SumEvaluatedAminoAcidAndConvertedCodon, convertedCodonAndEvaluatedAminoAcid: SumConvertedCodonAndEvaluatedAminoAcid, twoEvaluatedAminoAcids: Sum2EvaluatedAminoAcids, weightInGeneticCode: weightInGeneticCode); }
public static List<IFunction> GetWriteFunctions(IRegistryIdentifier[] allWriteableRegistryIdentifiers, IRegistryIdentifier[] allRegistryIdentifiers, IEnumerable<ICodonConverterIdentifier> codonConverters, double weightInGeneticCode) { weightInGeneticCode /= 2d; var registryWriteConvertedCodonFunctions = FunctionFactory.CreatePermutationsOfFunction( executeMethod: Functions.IRegistryWrite.RegistryWriteConvertedCodon, functionBaseName: "WriteRegistry", functionArea: "Write Registry", getFunctionName: (registryPermutation, codonConverterPermutation) => "WriteTo" + registryPermutation.First(), allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, numberOfRegistriesUsedInFunction: 1, weightInGeneticCode: weightInGeneticCode, onlyUseWriteableRegistries: true, parameters: new Parameter(ParameterType.ConvertedCodon)); var registryWriteEvaluatedAminoAcidFunctions = FunctionFactory.CreatePermutationsOfFunction( executeMethod: Functions.IRegistryWrite.RegistryWriteEvaluatedAminoAcid, functionBaseName: "WriteRegistry", functionArea: "Write Registry", getFunctionName: (registryPermutation, codonConverterPermutation) => "WriteTo" + registryPermutation.First(), allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, numberOfRegistriesUsedInFunction: 1, weightInGeneticCode: weightInGeneticCode, onlyUseWriteableRegistries: true, parameters: new Parameter(ParameterType.EvaluatedAminoAcid)); var functions = new List<IFunction>(); functions.AddRange(registryWriteConvertedCodonFunctions); functions.AddRange(registryWriteEvaluatedAminoAcidFunctions); return functions; }
public static List<IFunction> GetReadFunctions(IRegistryIdentifier[] allWriteableRegistryIdentifiers, IRegistryIdentifier[] allRegistryIdentifiers, IEnumerable<ICodonConverterIdentifier> codonConverters, double weightInGeneticCode) { var registryReadFunctions = FunctionFactory.CreatePermutationsOfFunction(executeMethod: Functions.IRegistryRead.RegistryRead, functionBaseName: "ReadRegistry", functionArea: "Read Registry", getFunctionName: (registryPermutation, codonConverterPermutation) => "ReadFrom" + registryPermutation.First(), allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, weightInGeneticCode: weightInGeneticCode, numberOfRegistriesUsedInFunction: 1); var functions = new List<IFunction>(); functions.AddRange(registryReadFunctions); return functions; }
/// <summary> /// /// </summary> /// <param name="identifier"></param> /// <param name="registryType"></param> /// <param name="readOnly">Indicates whether the IRegistry is ReadOnly. If true, an exception will be thrown if the IRegistry /// attempts a write.</param> public Registry(IRegistryIdentifier identifier, RegistryType registryType, bool readOnly) : base(identifier: identifier, registryType: registryType, readOnly: readOnly) { }
public static List<IFunction> GetPredecessorFunctions(IRegistryIdentifier[] allWriteableRegistryIdentifiers, IRegistryIdentifier[] allRegistryIdentifiers, IEnumerable<ICodonConverterIdentifier> codonConverters, double weightInGeneticCode) { return FunctionFactory.GetFunctionsWith1Parameter( allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, functionBaseName: "Predecessor", getFunctionName: (registryPermutation, codonConverterPermutation) => "Predecessor", functionArea: "Arithmetic", evaluatedAminoAcid: PredecessorEvaluatedAminoAcid, convertedCodons: PredecessorConvertedCodons, weightInGeneticCode: weightInGeneticCode); }
public static List<IFunction> GetFunctions(IRegistryIdentifier[] allWriteableRegistryIdentifiers, IRegistryIdentifier[] allRegistryIdentifiers, ICodonConverterIdentifier[] codonConverters, IFunctionBaseIdentifier functionBaseIdentifier) { var identifier = functionBaseIdentifier.Identifier; if(identifier == "ReadRegistry") { return GeneticFaraday.GEP.Functions.Functions.IRegistryRead.GetReadFunctions( allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode); } else if(identifier == "WriteRegistry") { return GeneticFaraday.GEP.Functions.Functions.IRegistryWrite.GetWriteFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode); } else if (identifier == "Sum") { return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetSumFunctions( allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode); } else if (identifier == "Difference") { return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetDifferenceFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode); } else if (identifier == "Multiply") { return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetMultiplyFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode); } else if (identifier == "Divide") { return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetDivideFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode); } else if (identifier == "Square") { return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetSquareFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode); } else if (identifier == "Power") { return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetPowerFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode); } else if (identifier == "SquareRoot") { return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetSquareRootFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode); } else if (identifier == "Negate") { return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetNegateFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode); } else if (identifier == "ForceNegate") { return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetForceNegateFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode); } else if (identifier == "Absolute") { return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetAbsoluteFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode); } else if (identifier == "RoundToNearestWholeNumber") { return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetRoundToNearestWholeNumberFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode); } else if (identifier == "Successor") { return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetSuccessorFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode); } else if (identifier == "Predecessor") { return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetPredecessorFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers, allRegistryIdentifiers: allRegistryIdentifiers, codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode); } else if (identifier == "Constants") { return GeneticFaraday.GEP.Functions.Functions.Constants.GetConstantsFunctions(weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode); } else { throw new ValueNotYetSupported(identifier, typeof(IFunctionBaseIdentifier)); } }
public int CompareTo(IRegistryIdentifier other) { return this.Identifier.CompareTo(other.ToString()); }