Skip to content

Commit 692a044

Browse files
authored
make ScalarGraphType.Serialize virtual (graphql-dotnet#1601)
1 parent dade062 commit 692a044

25 files changed

+6
-65
lines changed

src/GraphQL.ApiTests/ApiApprovalTests.PublicApi.GraphQL.approved.txt

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1578,21 +1578,18 @@ namespace GraphQL.Types
15781578
public BigIntGraphType() { }
15791579
public override object ParseLiteral(GraphQL.Language.AST.IValue value) { }
15801580
public override object ParseValue(object value) { }
1581-
public override object Serialize(object value) { }
15821581
}
15831582
public class BooleanGraphType : GraphQL.Types.ScalarGraphType
15841583
{
15851584
public BooleanGraphType() { }
15861585
public override object ParseLiteral(GraphQL.Language.AST.IValue value) { }
15871586
public override object ParseValue(object value) { }
1588-
public override object Serialize(object value) { }
15891587
}
15901588
public class ByteGraphType : GraphQL.Types.ScalarGraphType
15911589
{
15921590
public ByteGraphType() { }
15931591
public override object ParseLiteral(GraphQL.Language.AST.IValue value) { }
15941592
public override object ParseValue(object value) { }
1595-
public override object Serialize(object value) { }
15961593
}
15971594
public abstract class ComplexGraphType<TSourceType> : GraphQL.Types.GraphType, GraphQL.Types.IComplexGraphType, GraphQL.Types.IGraphType, GraphQL.Types.INamedType, GraphQL.Types.IProvideMetadata
15981595
{
@@ -1641,21 +1638,18 @@ namespace GraphQL.Types
16411638
public DateTimeGraphType() { }
16421639
public override object ParseLiteral(GraphQL.Language.AST.IValue value) { }
16431640
public override object ParseValue(object value) { }
1644-
public override object Serialize(object value) { }
16451641
}
16461642
public class DateTimeOffsetGraphType : GraphQL.Types.ScalarGraphType
16471643
{
16481644
public DateTimeOffsetGraphType() { }
16491645
public override object ParseLiteral(GraphQL.Language.AST.IValue value) { }
16501646
public override object ParseValue(object value) { }
1651-
public override object Serialize(object value) { }
16521647
}
16531648
public class DecimalGraphType : GraphQL.Types.ScalarGraphType
16541649
{
16551650
public DecimalGraphType() { }
16561651
public override object ParseLiteral(GraphQL.Language.AST.IValue value) { }
16571652
public override object ParseValue(object value) { }
1658-
public override object Serialize(object value) { }
16591653
}
16601654
public class DirectiveGraphType : GraphQL.Types.INamedType
16611655
{
@@ -1763,7 +1757,6 @@ namespace GraphQL.Types
17631757
public FloatGraphType() { }
17641758
public override object ParseLiteral(GraphQL.Language.AST.IValue value) { }
17651759
public override object ParseValue(object value) { }
1766-
public override object Serialize(object value) { }
17671760
}
17681761
public class GraphQLDeprecatedDirective : GraphQL.Types.DirectiveGraphType
17691762
{
@@ -1818,7 +1811,6 @@ namespace GraphQL.Types
18181811
public GuidGraphType() { }
18191812
public override object ParseLiteral(GraphQL.Language.AST.IValue value) { }
18201813
public override object ParseValue(object value) { }
1821-
public override object Serialize(object value) { }
18221814
}
18231815
public interface IAbstractGraphType : GraphQL.Types.IGraphType, GraphQL.Types.INamedType, GraphQL.Types.IProvideMetadata
18241816
{
@@ -1931,7 +1923,6 @@ namespace GraphQL.Types
19311923
public IntGraphType() { }
19321924
public override object ParseLiteral(GraphQL.Language.AST.IValue value) { }
19331925
public override object ParseValue(object value) { }
1934-
public override object Serialize(object value) { }
19351926
}
19361927
public class InterfaceGraphType : GraphQL.Types.InterfaceGraphType<object>
19371928
{
@@ -1963,7 +1954,6 @@ namespace GraphQL.Types
19631954
public LongGraphType() { }
19641955
public override object ParseLiteral(GraphQL.Language.AST.IValue value) { }
19651956
public override object ParseValue(object value) { }
1966-
public override object Serialize(object value) { }
19671957
}
19681958
public class NonNullGraphType : GraphQL.Types.GraphType
19691959
{
@@ -2029,14 +2019,13 @@ namespace GraphQL.Types
20292019
public SByteGraphType() { }
20302020
public override object ParseLiteral(GraphQL.Language.AST.IValue value) { }
20312021
public override object ParseValue(object value) { }
2032-
public override object Serialize(object value) { }
20332022
}
20342023
public abstract class ScalarGraphType : GraphQL.Types.GraphType
20352024
{
20362025
protected ScalarGraphType() { }
20372026
public abstract object ParseLiteral(GraphQL.Language.AST.IValue value);
20382027
public abstract object ParseValue(object value);
2039-
public abstract object Serialize(object value);
2028+
public virtual object Serialize(object value) { }
20402029
}
20412030
public class Schema : GraphQL.Utilities.MetadataProvider, GraphQL.Types.ISchema, System.IDisposable, System.IServiceProvider
20422031
{
@@ -2077,7 +2066,6 @@ namespace GraphQL.Types
20772066
public ShortGraphType() { }
20782067
public override object ParseLiteral(GraphQL.Language.AST.IValue value) { }
20792068
public override object ParseValue(object value) { }
2080-
public override object Serialize(object value) { }
20812069
}
20822070
public class SkipDirective : GraphQL.Types.DirectiveGraphType
20832071
{
@@ -2088,7 +2076,6 @@ namespace GraphQL.Types
20882076
public StringGraphType() { }
20892077
public override object ParseLiteral(GraphQL.Language.AST.IValue value) { }
20902078
public override object ParseValue(object value) { }
2091-
public override object Serialize(object value) { }
20922079
}
20932080
public class TimeSpanMillisecondsGraphType : GraphQL.Types.ScalarGraphType
20942081
{
@@ -2121,21 +2108,18 @@ namespace GraphQL.Types
21212108
public UIntGraphType() { }
21222109
public override object ParseLiteral(GraphQL.Language.AST.IValue value) { }
21232110
public override object ParseValue(object value) { }
2124-
public override object Serialize(object value) { }
21252111
}
21262112
public class ULongGraphType : GraphQL.Types.ScalarGraphType
21272113
{
21282114
public ULongGraphType() { }
21292115
public override object ParseLiteral(GraphQL.Language.AST.IValue value) { }
21302116
public override object ParseValue(object value) { }
2131-
public override object Serialize(object value) { }
21322117
}
21332118
public class UShortGraphType : GraphQL.Types.ScalarGraphType
21342119
{
21352120
public UShortGraphType() { }
21362121
public override object ParseLiteral(GraphQL.Language.AST.IValue value) { }
21372122
public override object ParseValue(object value) { }
2138-
public override object Serialize(object value) { }
21392123
}
21402124
public class UnionGraphType : GraphQL.Types.GraphType, GraphQL.Types.IAbstractGraphType, GraphQL.Types.IGraphType, GraphQL.Types.INamedType, GraphQL.Types.IProvideMetadata
21412125
{
@@ -2153,7 +2137,6 @@ namespace GraphQL.Types
21532137
public UriGraphType() { }
21542138
public override object ParseLiteral(GraphQL.Language.AST.IValue value) { }
21552139
public override object ParseValue(object value) { }
2156-
public override object Serialize(object value) { }
21572140
}
21582141
}
21592142
namespace GraphQL.Types.Relay
@@ -2482,7 +2465,6 @@ namespace GraphQL.Utilities.Federation
24822465
public AnyScalarGraphType() { }
24832466
public override object ParseLiteral(GraphQL.Language.AST.IValue value) { }
24842467
public override object ParseValue(object value) { }
2485-
public override object Serialize(object value) { }
24862468
}
24872469
public class AnyValue : GraphQL.Language.AST.ValueNode<object>
24882470
{

src/GraphQL.Tests/Utilities/SchemaBuilderTests.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -433,8 +433,6 @@ public CustomScalarType()
433433
Name = "CustomScalar";
434434
}
435435

436-
public override object Serialize(object value) => throw new System.NotImplementedException();
437-
438436
public override object ParseValue(object value) => throw new System.NotImplementedException();
439437

440438
public override object ParseLiteral(IValue value) => throw new System.NotImplementedException();

src/GraphQL.Tests/Utilities/SchemaPrinterTests.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1181,8 +1181,6 @@ public OddType()
11811181
Name = "Odd";
11821182
}
11831183

1184-
public override object Serialize(object value) => null;
1185-
11861184
public override object ParseValue(object value) => null;
11871185

11881186
public override object ParseLiteral(IValue value) => null;

src/GraphQL/Types/GraphTypesLookup.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,6 @@ public void AddType(IGraphType type, TypeCollectionContext context)
314314
union.AddPossibleType(objType);
315315
}
316316
}
317-
318317
}
319318

320319
private void HandleField(IComplexGraphType parentType, FieldType field, TypeCollectionContext context, bool applyNameConverter)

src/GraphQL/Types/Scalars/BigIntGraphType.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,5 @@ public class BigIntGraphType : ScalarGraphType
1414
};
1515

1616
public override object ParseValue(object value) => ValueConverter.ConvertTo(value, typeof(BigInteger));
17-
18-
public override object Serialize(object value) => ParseValue(value);
1917
}
2018
}

src/GraphQL/Types/Scalars/BooleanGraphType.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ namespace GraphQL.Types
44
{
55
public class BooleanGraphType : ScalarGraphType
66
{
7-
public override object Serialize(object value) => ParseValue(value);
8-
97
public override object ParseValue(object value) => ValueConverter.ConvertTo(value, typeof(bool));
108

119
public override object ParseLiteral(IValue value) => ((value as BooleanValue)?.Value).Boxed();

src/GraphQL/Types/Scalars/ByteGraphType.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,5 @@ public class ByteGraphType : ScalarGraphType
1212
};
1313

1414
public override object ParseValue(object value) => ValueConverter.ConvertTo(value, typeof(byte));
15-
16-
public override object Serialize(object value) => ParseValue(value);
1715
}
1816
}

src/GraphQL/Types/Scalars/DateTimeGraphType.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ public DateTimeGraphType()
1212
"to be formatted in accordance with the [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) standard.";
1313
}
1414

15-
public override object Serialize(object value) => ParseValue(value);
16-
1715
public override object ParseValue(object value) => ValueConverter.ConvertTo(value, typeof(DateTime));
1816

1917
public override object ParseLiteral(IValue value)

src/GraphQL/Types/Scalars/DateTimeOffsetGraphType.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ public DateTimeOffsetGraphType()
1212
"to be formatted in accordance with the [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) standard.";
1313
}
1414

15-
public override object Serialize(object value) => ParseValue(value);
16-
1715
public override object ParseValue(object value) => ValueConverter.ConvertTo(value, typeof(DateTimeOffset));
1816

1917
public override object ParseLiteral(IValue value) => value switch

src/GraphQL/Types/Scalars/DecimalGraphType.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ namespace GraphQL.Types
44
{
55
public class DecimalGraphType : ScalarGraphType
66
{
7-
public override object Serialize(object value) => ParseValue(value);
8-
97
public override object ParseValue(object value) => ValueConverter.ConvertTo(value, typeof(decimal));
108

119
public override object ParseLiteral(IValue value) => value switch

src/GraphQL/Types/Scalars/FloatGraphType.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ namespace GraphQL.Types
44
{
55
public class FloatGraphType : ScalarGraphType
66
{
7-
public override object Serialize(object value) => ParseValue(value);
8-
97
public override object ParseValue(object value) => ValueConverter.ConvertTo(value, typeof(double));
108

119
public override object ParseLiteral(IValue value) => value switch

src/GraphQL/Types/Scalars/GuidGraphType.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,5 @@ public class GuidGraphType : ScalarGraphType
1313
};
1414

1515
public override object ParseValue(object value) => ValueConverter.ConvertTo(value, typeof(Guid));
16-
17-
public override object Serialize(object value) => ParseValue(value);
1816
}
1917
}

src/GraphQL/Types/Scalars/IntGraphType.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,5 @@ public override object ParseLiteral(IValue value)
1919
}
2020

2121
public override object ParseValue(object value) => ValueConverter.ConvertTo(value, typeof(int));
22-
23-
public override object Serialize(object value) => ParseValue(value);
2422
}
2523
}

src/GraphQL/Types/Scalars/LongGraphType.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,5 @@ public class LongGraphType : ScalarGraphType
1212
};
1313

1414
public override object ParseValue(object value) => ValueConverter.ConvertTo(value, typeof(long));
15-
16-
public override object Serialize(object value) => ParseValue(value);
1715
}
1816
}

src/GraphQL/Types/Scalars/SByteGraphType.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,5 @@ public class SByteGraphType : ScalarGraphType
1212
};
1313

1414
public override object ParseValue(object value) => ValueConverter.ConvertTo(value, typeof(sbyte));
15-
16-
public override object Serialize(object value) => ParseValue(value);
1715
}
1816
}

src/GraphQL/Types/Scalars/ScalarGraphType.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace GraphQL.Types
44
{
55
public abstract class ScalarGraphType : GraphType
66
{
7-
public abstract object Serialize(object value);
7+
public virtual object Serialize(object value) => ParseValue(value);
88

99
public abstract object ParseValue(object value);
1010

src/GraphQL/Types/Scalars/ShortGraphType.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,5 @@ public class ShortGraphType : ScalarGraphType
1212
};
1313

1414
public override object ParseValue(object value) => ValueConverter.ConvertTo(value, typeof(short));
15-
16-
public override object Serialize(object value) => ParseValue(value);
1715
}
1816
}

src/GraphQL/Types/Scalars/StringGraphType.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ namespace GraphQL.Types
44
{
55
public class StringGraphType : ScalarGraphType
66
{
7-
public override object Serialize(object value) => value?.ToString();
8-
97
public override object ParseValue(object value) => value?.ToString();
108

119
public override object ParseLiteral(IValue value) => (value as StringValue)?.Value;

src/GraphQL/Types/Scalars/TimeSpanMillisecondsGraphType.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ public TimeSpanMillisecondsGraphType()
1717
TimeSpan timeSpan => (long)timeSpan.TotalMilliseconds,
1818
int i => i,
1919
long l => l,
20-
_ => (object)null
20+
_ => null
2121
};
2222

2323
public override object ParseValue(object value) => value switch
2424
{
2525
int i => TimeSpan.FromMilliseconds(i),
2626
long l => TimeSpan.FromMilliseconds(l),
2727
TimeSpan t => t,
28-
_ => (object)null
28+
_ => null
2929
};
3030

3131
public override object ParseLiteral(IValue value) => value switch

src/GraphQL/Types/Scalars/TimeSpanSecondsGraphType.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ public TimeSpanSecondsGraphType()
1717
TimeSpan timeSpan => (long)timeSpan.TotalSeconds,
1818
int i => i,
1919
long l => l,
20-
_ => (object)null
20+
_ => null
2121
};
2222

2323
public override object ParseValue(object value) => value switch
2424
{
2525
int i => TimeSpan.FromSeconds(i),
2626
long l => TimeSpan.FromSeconds(l),
2727
TimeSpan t => t,
28-
_ => (object)null
28+
_ => null
2929
};
3030

3131
public override object ParseLiteral(IValue value) => value switch

src/GraphQL/Types/Scalars/UIntGraphType.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,5 @@ public class UIntGraphType : ScalarGraphType
1313
};
1414

1515
public override object ParseValue(object value) => ValueConverter.ConvertTo(value, typeof(uint));
16-
17-
public override object Serialize(object value) => ParseValue(value);
1816
}
1917
}

src/GraphQL/Types/Scalars/ULongGraphType.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,5 @@ public class ULongGraphType : ScalarGraphType
1313
};
1414

1515
public override object ParseValue(object value) => ValueConverter.ConvertTo(value, typeof(ulong));
16-
17-
public override object Serialize(object value) => ParseValue(value);
1816
}
1917
}

src/GraphQL/Types/Scalars/UShortGraphType.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,5 @@ public class UShortGraphType : ScalarGraphType
1212
};
1313

1414
public override object ParseValue(object value) => ValueConverter.ConvertTo(value, typeof(ushort));
15-
16-
public override object Serialize(object value) => ParseValue(value);
1715
}
1816
}

src/GraphQL/Types/Scalars/UriGraphType.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ namespace GraphQL.Types
55
{
66
public class UriGraphType : ScalarGraphType
77
{
8-
public override object Serialize(object value) => ParseValue(value);
9-
108
public override object ParseValue(object value) => ValueConverter.ConvertTo(value, typeof(Uri));
119

1210
public override object ParseLiteral(IValue value) => value switch

src/GraphQL/Utilities/Federation/AnyScalarGraphType.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,5 @@ public AnyScalarGraphType()
1313
public override object ParseLiteral(IValue value) => value.Value;
1414

1515
public override object ParseValue(object value) => value;
16-
17-
public override object Serialize(object value) => value;
1816
}
1917
}

0 commit comments

Comments
 (0)