
com.expediagroup.streamplatform.streamregistry.graphql.resolvers.Resolvers Maven / Gradle / Ivy
/**
* Copyright (C) ${license.git.copyrightYears} Expedia, Inc.
*
* 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.
*/
package com.expediagroup.streamplatform.streamregistry.graphql.resolvers;
import java.util.List;
import java.util.Optional;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType;
import com.expediagroup.streamplatform.streamregistry.model.*;
import com.expediagroup.streamplatform.streamregistry.model.Process;
import com.expediagroup.streamplatform.streamregistry.model.keys.ZoneKey;
import graphql.kickstart.tools.GraphQLResolver;
interface Resolvers {
interface DomainResolver extends EntityResolver, GraphQLResolver, GraphQLApiType {
List schemas(Domain domain);
}
interface SchemaResolver extends EntityResolver, GraphQLResolver, GraphQLApiType {
Domain domain(Schema schema);
}
interface StreamResolver extends EntityResolver, GraphQLResolver, GraphQLApiType {
Domain domain(Stream stream);
Schema schema(Stream stream);
}
interface ZoneResolver extends EntityResolver, GraphQLResolver, GraphQLApiType {}
interface InfrastructureResolver extends EntityResolver, GraphQLResolver, GraphQLApiType {
Zone zone(Infrastructure infrastructure);
}
interface StreamBindingResolver extends EntityResolver, GraphQLResolver, GraphQLApiType {
Stream stream(StreamBinding streamBinding);
Infrastructure infrastructure(StreamBinding streamBinding);
}
interface ProducerResolver extends EntityResolver, GraphQLResolver, GraphQLApiType {
Stream stream(Producer producer);
Zone zone(Producer producer);
ProducerBinding binding(Producer producer);
}
interface ConsumerResolver extends EntityResolver, GraphQLResolver, GraphQLApiType {
Stream stream(Consumer consumer);
Zone zone(Consumer consumer);
ConsumerBinding binding(Consumer consumer);
}
interface ProcessResolver extends EntityResolver, GraphQLResolver, GraphQLApiType {
Domain domain(Process process);
}
interface ConsumerBindingResolver extends EntityResolver, GraphQLResolver, GraphQLApiType {
Consumer consumer(ConsumerBinding consumerBinding);
StreamBinding binding(ConsumerBinding consumerBinding);
}
interface ProducerBindingResolver extends EntityResolver, GraphQLResolver, GraphQLApiType {
Producer producer(ProducerBinding producerBinding);
StreamBinding binding(ProducerBinding producerBinding);
}
interface ProcessBindingResolver extends EntityResolver, GraphQLResolver, GraphQLApiType {
Process process(ProcessBinding processBinding);
Domain domain(ProcessBinding processBinding);
ZoneKey zone(ProcessBinding processBinding);
}
interface StatusResolver extends GraphQLResolver, GraphQLApiType {
ObjectNode getAgentStatus(com.expediagroup.streamplatform.streamregistry.model.Status status);
}
interface EntityResolver {
default Status status(E entity) {
return Optional.ofNullable(entity.getStatus()).orElseGet(Status::new);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy