Class SchemaParseOrder

    • Field Detail

      • definitionOrder

        private final java.util.Map<java.lang.String,​java.util.List<SDLDefinition<?>>> definitionOrder
    • Constructor Detail

      • SchemaParseOrder

        public SchemaParseOrder()
    • Method Detail

      • getInOrder

        public java.util.Map<java.lang.String,​java.util.List<SDLDefinition<?>>> getInOrder()
        This map is the order in which SDLDefinitions were parsed per unique SourceLocation.getSourceName(). If there is no source then the empty string "" is used.
        Returns:
        a map of source names to definitions in parsed order
      • getElementComparator

        public <T extends GraphQLSchemaElement> java.util.Comparator<? super T> getElementComparator()
        This comparator will sort according to the original parsed order
        Type Parameters:
        T - is a GraphQLSchemaElement
        Returns:
        a comparator that sorts schema elements in parsed order
      • isAssignable

        private <T extends GraphQLSchemaElement> boolean isAssignable​(T e1,
                                                                      java.lang.Class<?>... classes)
      • sortValue

        private java.lang.Integer sortValue​(GraphQLNamedSchemaElement e1,
                                            java.util.Map<java.lang.String,​java.lang.Integer> namedSortValues)
      • buildNameIndex

        private java.util.Map<java.lang.String,​java.lang.Integer> buildNameIndex​(java.util.Map<java.lang.String,​java.util.List<SDLNamedDefinition<?>>> inNameOrder)
      • removeDefinition

        public <T extends SDLDefinition<?>> SchemaParseOrder removeDefinition​(T sdlDefinition)
        This removes a SDLDefinition from the order
        Type Parameters:
        T - for two
        Parameters:
        sdlDefinition - the SDL definition to remove
        Returns:
        this SchemaParseOrder for fluent building
      • computeIfAbsent

        private java.util.List<SDLDefinition<?>> computeIfAbsent​(java.lang.String location)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object