internal/openapi/generator/data/arrayGenerationDelegator.go   A
last analyzed

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Test Coverage

Coverage 50%

Importance

Changes 0
Metric Value
cc 4
eloc 18
dl 0
loc 31
ccs 3
cts 6
cp 0.5
crap 6
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A data.*arrayGenerationDelegator.SetSchemaGenerator 0 3 1
A data.newArrayGenerator 0 4 1
A data.*arrayGenerationDelegator.GenerateDataBySchema 0 6 2
1
package data
2
3
import (
4
	"context"
5
6
	"github.com/getkin/kin-openapi/openapi3"
7
)
8
9
type arrayGenerationDelegator struct {
10
	uniqueGenerator  schemaGenerator
11
	regularGenerator schemaGenerator
12
}
13
14
func newArrayGenerator(lengthGenerator arrayLengthGenerator) schemaGenerator {
15
	return &arrayGenerationDelegator{
16
		uniqueGenerator:  &uniqueArrayGenerator{lengthGenerator: lengthGenerator},
17
		regularGenerator: &regularArrayGenerator{lengthGenerator: lengthGenerator},
18
	}
19
}
20
21
func (delegator *arrayGenerationDelegator) SetSchemaGenerator(schemaGenerator schemaGenerator) {
22
	delegator.uniqueGenerator.(recursiveGenerator).SetSchemaGenerator(schemaGenerator)
23
	delegator.regularGenerator.(recursiveGenerator).SetSchemaGenerator(schemaGenerator)
24
}
25
26
func (delegator *arrayGenerationDelegator) GenerateDataBySchema(ctx context.Context, schema *openapi3.Schema) (Data, error) {
27 1
	if schema.UniqueItems {
28 1
		return delegator.uniqueGenerator.GenerateDataBySchema(ctx, schema)
29
	}
30
31 1
	return delegator.regularGenerator.GenerateDataBySchema(ctx, schema)
32
}
33