Skip to content

Commit 82a982b

Browse files
smyrickdariuszkuc
authored andcommitted
[federation] Move vals and functions to internal scope (#569)
To cleanup our public class, function, and value exposure, I moved some of the federation objects to internal scope since they do not need to be exposed as public
1 parent 6132615 commit 82a982b

File tree

8 files changed

+15
-14
lines changed

8 files changed

+15
-14
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ pom.xml.versionsBackup
77
# gradle ignore
88
.gradle
99
build/
10+
out/
1011

1112
# Ignore Gradle GUI config
1213
gradle-app.setting

graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/federation/FederatedSchemaGeneratorHooks.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import com.expediagroup.graphql.federation.types.FIELD_SET_SCALAR_TYPE
2828
import com.expediagroup.graphql.federation.types.SERVICE_FIELD_DEFINITION
2929
import com.expediagroup.graphql.federation.types._Service
3030
import com.expediagroup.graphql.federation.types.generateEntityFieldDefinition
31+
import com.expediagroup.graphql.federation.validation.FederatedSchemaValidator
3132
import com.expediagroup.graphql.hooks.SchemaGeneratorHooks
3233
import graphql.TypeResolutionEnvironment
3334
import graphql.schema.DataFetcher

graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/federation/types/_Any.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import java.util.stream.Collectors
3434
* The _Any scalar is used to pass representations of entities from external services into the root _entities field for execution.
3535
* Validation of the _Any scalar is done by matching the __typename and @external fields defined in the schema.
3636
*/
37-
val ANY_SCALAR_TYPE: GraphQLScalarType = GraphQLScalarType.newScalar()
37+
internal val ANY_SCALAR_TYPE: GraphQLScalarType = GraphQLScalarType.newScalar()
3838
.name("_Any")
3939
.description("Federation scalar type used to represent any external entities passed to _entities query.")
4040
.coercing(AnyCoercing)

graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/federation/types/_Entity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import graphql.schema.GraphQLUnionType
2727
* Generates union of all types that use the @key directive, including both types native to the schema and extended types.
2828
*/
2929
@Suppress("SpreadOperator")
30-
fun generateEntityFieldDefinition(federatedTypes: Set<String>): GraphQLFieldDefinition {
30+
internal fun generateEntityFieldDefinition(federatedTypes: Set<String>): GraphQLFieldDefinition {
3131
val possibleTypes = federatedTypes
3232
.map { GraphQLTypeReference(it) }
3333
.toTypedArray()

graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/federation/types/_FieldSet.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import graphql.schema.GraphQLScalarType
2929
* This means it can represent a single field "upc", multiple fields "id countryCode", and even nested selection sets
3030
* "id organization { id }".
3131
*/
32-
val FIELD_SET_SCALAR_TYPE: GraphQLScalarType = GraphQLScalarType.newScalar(Scalars.GraphQLString)
32+
internal val FIELD_SET_SCALAR_TYPE: GraphQLScalarType = GraphQLScalarType.newScalar(Scalars.GraphQLString)
3333
.name("_FieldSet")
3434
.description("Federation type representing set of fields")
3535
.coercing(FieldSetCoercing)

graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/federation/types/_Service.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ private val SERVICE_OBJECT_TYPE = GraphQLObjectType.newObject()
3333
.build())
3434
.build()
3535

36-
val SERVICE_FIELD_DEFINITION: GraphQLFieldDefinition = GraphQLFieldDefinition.newFieldDefinition()
36+
internal val SERVICE_FIELD_DEFINITION: GraphQLFieldDefinition = GraphQLFieldDefinition.newFieldDefinition()
3737
.name("_service")
3838
.type(SERVICE_OBJECT_TYPE)
3939
.build()
4040

41-
@Suppress("ClassNaming")
42-
data class _Service(val sdl: String)
41+
@Suppress("ClassNaming", "ClassName")
42+
internal data class _Service(val sdl: String)

graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/federation/FederatedSchemaValidator.kt renamed to graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/federation/validation/FederatedSchemaValidator.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2019 Expedia, Inc
2+
* Copyright 2020 Expedia, Inc
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package com.expediagroup.graphql.federation
17+
package com.expediagroup.graphql.federation.validation
1818

1919
import com.expediagroup.graphql.federation.directives.EXTENDS_DIRECTIVE_NAME
2020
import com.expediagroup.graphql.federation.directives.EXTERNAL_DIRECTIVE_NAME
@@ -23,9 +23,6 @@ import com.expediagroup.graphql.federation.directives.PROVIDES_DIRECTIVE_NAME
2323
import com.expediagroup.graphql.federation.directives.REQUIRES_DIRECTIVE_NAME
2424
import com.expediagroup.graphql.federation.exception.InvalidFederatedSchema
2525
import com.expediagroup.graphql.federation.extensions.isFederatedType
26-
import com.expediagroup.graphql.federation.validation.validateDirective
27-
import com.expediagroup.graphql.federation.validation.validateProvidesDirective
28-
import com.expediagroup.graphql.federation.validation.validateRequiresDirective
2926
import graphql.schema.GraphQLDirective
3027
import graphql.schema.GraphQLFieldDefinition
3128
import graphql.schema.GraphQLInterfaceType
@@ -36,7 +33,7 @@ import graphql.schema.GraphQLTypeUtil
3633
/**
3734
* Validates generated federated objects.
3835
*/
39-
class FederatedSchemaValidator {
36+
internal class FederatedSchemaValidator {
4037

4138
/**
4239
* Validates target GraphQLType whether it is a valid federated object.
@@ -48,7 +45,7 @@ class FederatedSchemaValidator {
4845
* - @requires directive is only applicable on extended types and references @external fields
4946
* - @provides directive references valid @external fields
5047
*/
51-
fun validateGraphQLType(type: GraphQLType) {
48+
internal fun validateGraphQLType(type: GraphQLType) {
5249
val unwrappedType = GraphQLTypeUtil.unwrapAll(type)
5350
if (unwrappedType is GraphQLObjectType && unwrappedType.isFederatedType()) {
5451
validate(unwrappedType.name, unwrappedType.fieldDefinitions, unwrappedType.directivesByName)

graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/federation/FederatedSchemaValidatorTest.kt renamed to graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/federation/validation/FederatedSchemaValidatorTest.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,15 @@
1414
* limitations under the License.
1515
*/
1616

17-
package com.expediagroup.graphql.federation
17+
package com.expediagroup.graphql.federation.validation
1818

1919
import com.expediagroup.graphql.federation.directives.KEY_DIRECTIVE_NAME
2020
import com.expediagroup.graphql.federation.directives.PROVIDES_DIRECTIVE_NAME
2121
import com.expediagroup.graphql.federation.directives.REQUIRES_DIRECTIVE_NAME
2222
import com.expediagroup.graphql.federation.directives.extendsDirectiveType
2323
import com.expediagroup.graphql.federation.exception.InvalidFederatedSchema
24+
import com.expediagroup.graphql.federation.externalDirective
25+
import com.expediagroup.graphql.federation.getKeyDirective
2426
import graphql.Scalars.GraphQLString
2527
import graphql.schema.GraphQLDirective
2628
import graphql.schema.GraphQLFieldDefinition

0 commit comments

Comments
 (0)