src/typesystem/TypeDefinition.ps1
# Copyright 2020, Adam Edwards # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. . (import-script TypeProperty) ScriptClass TypeDefinition { . {}.module.newboundscriptblock($::.TypeSchema.EnumScript) $TypeId = $null $BaseType = $null $Name = $null $Namespace = $null $Properties = $null $Class = $null $IsComposite = $false $DefaultValue = $null $DefaultCollectionValue = $null $NativeSchema = $null function __initialize($typeId, [GraphTypeClass] $class, $name, $namespace, $baseType, $properties, $defaultValue, $defaultCollectionValue, $isComposite, $nativeSchema) { $this.TypeId = $typeId $this.Class = $class $this.BaseType = $baseType $this.Name = $name $this.Namespace = $namespace $this.IsComposite = $IsComposite $this.DefaultValue = $defaultValue $this.DefaultCollectionValue = $defaultCollectionValue $this.Properties = $properties $this.NativeSchema = $nativeSchema } static { . {}.module.newboundscriptblock($::.TypeSchema.EnumScript) function Get($graph, [GraphTypeClass] $typeClass, $typeId) { $typeProvider = $::.TypeProvider |=> GetTypeProvider $typeClass $graph $typeProvider |=> GetTypeDefinition $typeClass $typeId } } } |