File tree Expand file tree Collapse file tree 2 files changed +21
-7
lines changed
Expand file tree Collapse file tree 2 files changed +21
-7
lines changed Original file line number Diff line number Diff line change 22
33namespace Asp . Versioning ;
44
5- internal sealed class SunsetLinkBuilder : ILinkBuilder
5+ internal abstract class LinkBuilder : ILinkBuilder
66{
7- private readonly SunsetPolicyBuilder policy ;
7+ protected abstract string RelationType { get ; }
88 private string ? language ;
99 private List < string > ? languages ;
1010 private string ? title ;
1111 private string ? type ;
1212
13- public SunsetLinkBuilder ( SunsetPolicyBuilder policy , Uri linkTarget )
13+ public LinkBuilder ( Uri linkTarget )
1414 {
15- this . policy = policy ;
1615 LinkTarget = linkTarget ;
1716 }
1817
@@ -36,8 +35,6 @@ public ILinkBuilder Language( string value )
3635 return this ;
3736 }
3837
39- public ILinkBuilder Link ( Uri linkTarget ) => policy . Link ( linkTarget ) ;
40-
4138 public ILinkBuilder Title ( string value )
4239 {
4340 title = value ;
@@ -50,9 +47,11 @@ public ILinkBuilder Type( string value )
5047 return this ;
5148 }
5249
50+ public abstract ILinkBuilder Link ( Uri linkTarget ) ;
51+
5352 public LinkHeaderValue Build ( )
5453 {
55- var link = new LinkHeaderValue ( LinkTarget , "sunset" ) ;
54+ var link = new LinkHeaderValue ( LinkTarget , RelationType ) ;
5655
5756 if ( title != null )
5857 {
Original file line number Diff line number Diff line change @@ -82,4 +82,19 @@ public override SunsetPolicy Build()
8282
8383 return policy ;
8484 }
85+
86+ private sealed class SunsetLinkBuilder : LinkBuilder , ILinkBuilder
87+ {
88+ protected override string RelationType => "sunset" ;
89+
90+ private readonly SunsetPolicyBuilder policyBuilder ;
91+
92+ public SunsetLinkBuilder ( SunsetPolicyBuilder policy , Uri linkTarget )
93+ : base ( linkTarget )
94+ {
95+ policyBuilder = policy ;
96+ }
97+
98+ public override ILinkBuilder Link ( Uri linkTarget ) => policyBuilder . Link ( linkTarget ) ;
99+ }
85100}
You can’t perform that action at this time.
0 commit comments