// public static factory method public static IBlauSpaceLattice create(IBlauSpace space, int[] steps) { BlauSpaceLattice s = new BlauSpaceLattice(space, steps); BlauSpaceLatticeRegistry.Instance().add(s); BlauSpaceLattice s_validated = BlauSpaceLatticeRegistry.Instance().validate(s); return(s_validated); }
// getter which swaps in pre-existing identical blauspace lattice, if one exists public BlauSpaceLattice validate(BlauSpaceLattice s) { if (!_lattices.ContainsKey(s.HashedName)) { return(s); } else { return(_lattices[s.HashedName]); } }
// add a blauspace lattice to the registry public void add(BlauSpaceLattice s) { if (!_lattices.ContainsKey(s.HashedName)) { if (LoggerDiags.Enabled) { SingletonLogger.Instance().InfoLog(typeof(BlauSpaceLatticeRegistry), "BlauSpaceLatticeRegistry is adding " + s.HashedName); } _lattices.Add(s.HashedName, s); if (LoggerDiags.Enabled) { SingletonLogger.Instance().InfoLog(typeof(BlauSpaceLatticeRegistry), "BlauSpaceLatticeRegistry size is now " + _lattices.Count); } } }
// proxy reference public Object GetRealObject(StreamingContext context) { BlauSpaceLattice s_validated = BlauSpaceLatticeRegistry.Instance().validate(this); return(s_validated); }