Beispiel #1
0
                public override ComparisonKey Cache(ValueCache valueCache)
                {
                    var comparisonKey = this;

                    if (valueCache.TryGetCachedValue(ref comparisonKey))
                    {
                        return(comparisonKey);
                    }
                    ImmutableList <string> modificationNames = ModificationNames;

                    if (ModificationNames != null)
                    {
                        if (!valueCache.TryGetCachedValue(ref modificationNames))
                        {
                            modificationNames = ImmutableList.ValueOf(modificationNames.Select(valueCache.CacheValue));
                            modificationNames = valueCache.CacheValue(modificationNames);
                        }
                    }
                    comparisonKey = new Peptide(LibraryKey.ValueFromCache(valueCache))
                    {
                        ModificationIndexes = valueCache.CacheValue(ModificationIndexes),
                        ModificationNames   = modificationNames
                    };
                    return(valueCache.CacheValue(comparisonKey));
                }