main
1using System;
2using mars.rover.common;
3using mars.rover.domain;
4
5namespace mars.rover.presentation.model
6{
7 public class HeadingFactory : Specification<string>
8 {
9 readonly string code;
10 readonly Func<Plateau, Heading> factory;
11
12 public HeadingFactory(string code, Func<Plateau, Heading> factory)
13 {
14 this.code = code;
15 this.factory = factory;
16 }
17
18 public virtual bool is_satisfied_by(string item)
19 {
20 return string.Equals(code, item, StringComparison.OrdinalIgnoreCase);
21 }
22
23 public virtual Heading create(Plateau plateau)
24 {
25 return factory(plateau);
26 }
27 }
28}