func()

in pkg/aggregator/walker.go [64:111]


func (s *readonlyReferenceWalker) walkSchema(schema *spec.Schema) {
	if schema == nil {
		return
	}
	s.walkRefCallback(&schema.Ref)
	var v *spec.Schema
	if len(schema.Definitions)+len(schema.Properties)+len(schema.PatternProperties) > 0 {
		v = &spec.Schema{}
	}
	for k := range schema.Definitions {
		*v = schema.Definitions[k]
		s.walkSchema(v)
	}
	for k := range schema.Properties {
		*v = schema.Properties[k]
		s.walkSchema(v)
	}
	for k := range schema.PatternProperties {
		*v = schema.PatternProperties[k]
		s.walkSchema(v)
	}
	for i := range schema.AllOf {
		s.walkSchema(&schema.AllOf[i])
	}
	for i := range schema.AnyOf {
		s.walkSchema(&schema.AnyOf[i])
	}
	for i := range schema.OneOf {
		s.walkSchema(&schema.OneOf[i])
	}
	if schema.Not != nil {
		s.walkSchema(schema.Not)
	}
	if schema.AdditionalProperties != nil && schema.AdditionalProperties.Schema != nil {
		s.walkSchema(schema.AdditionalProperties.Schema)
	}
	if schema.AdditionalItems != nil && schema.AdditionalItems.Schema != nil {
		s.walkSchema(schema.AdditionalItems.Schema)
	}
	if schema.Items != nil {
		if schema.Items.Schema != nil {
			s.walkSchema(schema.Items.Schema)
		}
		for i := range schema.Items.Schemas {
			s.walkSchema(&schema.Items.Schemas[i])
		}
	}
}