public static IList<Chainable> ChainForDot(Chainable chainable) { if (!(chainable is ChainableName)) { return new List<Chainable>(Collections.SingletonList(chainable)); } var values = chainable.GetRootNameOrEmptyString().Split('.'); var chain = new List<Chainable>(values.Length + 1); foreach (var value in values) { chain.Add(new ChainableName(value)); } return chain; }
public static bool IsPlainPropertyChain(Chainable chainable) { return chainable is ChainableName && chainable.GetRootNameOrEmptyString().Contains("."); }
protected bool EqualsChainable(Chainable that) { return that.IsDistinct == IsDistinct && that.IsOptional == IsOptional; }