Search in sources :

Example 1 with NO_VERSION

use of com.yahoo.elide.core.dictionary.EntityDictionary.NO_VERSION in project elide by yahoo.

the class AsyncAPICancelRunnable method cancelAsyncAPI.

/**
 * This method cancels queries based on threshold.
 * @param type AsyncAPI Type Implementation.
 */
protected <T extends AsyncAPI> void cancelAsyncAPI(Class<T> type) {
    try {
        TransactionRegistry transactionRegistry = elide.getTransactionRegistry();
        Map<UUID, DataStoreTransaction> runningTransactionMap = transactionRegistry.getRunningTransactions();
        // Running transaction UUIDs
        Set<UUID> runningTransactionUUIDs = runningTransactionMap.keySet();
        // Construct filter expression
        PathElement statusPathElement = new PathElement(type, QueryStatus.class, "status");
        FilterExpression fltStatusExpression = new InPredicate(statusPathElement, QueryStatus.CANCELLED, QueryStatus.PROCESSING, QueryStatus.QUEUED);
        Iterable<T> asyncAPIIterable = asyncAPIDao.loadAsyncAPIByFilter(fltStatusExpression, type);
        // Active AsyncAPI UUIDs
        Set<UUID> asyncTransactionUUIDs = StreamSupport.stream(asyncAPIIterable.spliterator(), false).filter(query -> query.getStatus() == QueryStatus.CANCELLED || TimeUnit.SECONDS.convert(Math.abs(new Date(System.currentTimeMillis()).getTime() - query.getCreatedOn().getTime()), TimeUnit.MILLISECONDS) > maxRunTimeSeconds).map(query -> UUID.fromString(query.getRequestId())).collect(Collectors.toSet());
        // AsyncAPI UUIDs that have active transactions
        Set<UUID> queryUUIDsToCancel = Sets.intersection(runningTransactionUUIDs, asyncTransactionUUIDs);
        // AsyncAPI IDs that need to be cancelled
        Set<String> queryIDsToCancel = queryUUIDsToCancel.stream().map(uuid -> StreamSupport.stream(asyncAPIIterable.spliterator(), false).filter(query -> query.getRequestId().equals(uuid.toString())).map(T::getId).findFirst().orElseThrow(IllegalStateException::new)).collect(Collectors.toSet());
        // Cancel Transactions
        queryUUIDsToCancel.stream().forEach((uuid) -> {
            DataStoreTransaction runningTransaction = transactionRegistry.getRunningTransaction(uuid);
            if (runningTransaction != null) {
                JsonApiDocument jsonApiDoc = new JsonApiDocument();
                MultivaluedMap<String, String> queryParams = new MultivaluedHashMap<>();
                RequestScope scope = new RequestScope("", "query", NO_VERSION, jsonApiDoc, runningTransaction, null, queryParams, Collections.emptyMap(), uuid, elide.getElideSettings());
                runningTransaction.cancel(scope);
            }
        });
        // Change queryStatus for cancelled queries
        if (!queryIDsToCancel.isEmpty()) {
            PathElement idPathElement = new PathElement(type, String.class, "id");
            FilterExpression fltIdExpression = new InPredicate(idPathElement, queryIDsToCancel);
            asyncAPIDao.updateStatusAsyncAPIByFilter(fltIdExpression, QueryStatus.CANCEL_COMPLETE, type);
        }
    } catch (Exception e) {
        log.error("Exception in scheduled cancellation: {}", e.toString());
    }
}
Also used : TransactionRegistry(com.yahoo.elide.core.TransactionRegistry) JsonApiDocument(com.yahoo.elide.jsonapi.models.JsonApiDocument) Date(java.util.Date) AsyncAPIDAO(com.yahoo.elide.async.service.dao.AsyncAPIDAO) Map(java.util.Map) NO_VERSION(com.yahoo.elide.core.dictionary.EntityDictionary.NO_VERSION) StreamSupport(java.util.stream.StreamSupport) AsyncAPI(com.yahoo.elide.async.models.AsyncAPI) FilterExpression(com.yahoo.elide.core.filter.expression.FilterExpression) QueryStatus(com.yahoo.elide.async.models.QueryStatus) RequestScope(com.yahoo.elide.core.RequestScope) Elide(com.yahoo.elide.Elide) DataStoreTransaction(com.yahoo.elide.core.datastore.DataStoreTransaction) InPredicate(com.yahoo.elide.core.filter.predicates.InPredicate) AsyncQuery(com.yahoo.elide.async.models.AsyncQuery) Set(java.util.Set) UUID(java.util.UUID) Collectors(java.util.stream.Collectors) MultivaluedHashMap(javax.ws.rs.core.MultivaluedHashMap) Sets(com.google.common.collect.Sets) TimeUnit(java.util.concurrent.TimeUnit) MultivaluedMap(javax.ws.rs.core.MultivaluedMap) Slf4j(lombok.extern.slf4j.Slf4j) Data(lombok.Data) AllArgsConstructor(lombok.AllArgsConstructor) PathElement(com.yahoo.elide.core.Path.PathElement) Collections(java.util.Collections) JsonApiDocument(com.yahoo.elide.jsonapi.models.JsonApiDocument) TransactionRegistry(com.yahoo.elide.core.TransactionRegistry) InPredicate(com.yahoo.elide.core.filter.predicates.InPredicate) RequestScope(com.yahoo.elide.core.RequestScope) Date(java.util.Date) MultivaluedHashMap(javax.ws.rs.core.MultivaluedHashMap) PathElement(com.yahoo.elide.core.Path.PathElement) DataStoreTransaction(com.yahoo.elide.core.datastore.DataStoreTransaction) UUID(java.util.UUID) FilterExpression(com.yahoo.elide.core.filter.expression.FilterExpression)

Example 2 with NO_VERSION

use of com.yahoo.elide.core.dictionary.EntityDictionary.NO_VERSION in project elide by yahoo.

the class SQLUnitTest method init.

public static void init(SQLDialect sqlDialect, Set<Optimizer> optimizers, MetaDataStore metaDataStore) {
    Properties properties = new Properties();
    properties.put("driverClassName", "org.h2.Driver");
    String jdbcUrl = "jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1" + ";NON_KEYWORDS=VALUE,USER" + ";DATABASE_TO_UPPER=FALSE" + getCompatabilityMode(sqlDialect.getDialectType());
    properties.put("jdbcUrl", jdbcUrl);
    HikariConfig config = new HikariConfig(properties);
    DataSource dataSource = new HikariDataSource(config);
    try (Connection h2Conn = dataSource.getConnection()) {
        h2Conn.createStatement().execute("RUNSCRIPT FROM 'classpath:prepare_tables.sql'");
    } catch (SQLException e) {
        ((HikariDataSource) dataSource).close();
        throw new IllegalStateException(e);
    }
    SQLUnitTest.metaDataStore = metaDataStore;
    dictionary = EntityDictionary.builder().build();
    dictionary.bindEntity(PlayerStatsWithView.class);
    dictionary.bindEntity(PlayerStatsView.class);
    dictionary.bindEntity(PlayerStats.class);
    dictionary.bindEntity(Country.class);
    dictionary.bindEntity(SubCountry.class);
    dictionary.bindEntity(Player.class);
    dictionary.bindEntity(CountryView.class);
    dictionary.bindEntity(CountryViewNested.class);
    dictionary.bindEntity(Continent.class);
    dictionary.bindEntity(GameRevenue.class);
    filterParser = RSQLFilterDialect.builder().dictionary(dictionary).build();
    // Manually register the serdes because we are not running a complete Elide service.
    CoerceUtil.register(Day.class, new Day.DaySerde());
    CoerceUtil.register(Hour.class, new Hour.HourSerde());
    CoerceUtil.register(ISOWeek.class, new ISOWeek.ISOWeekSerde());
    CoerceUtil.register(Minute.class, new Minute.MinuteSerde());
    CoerceUtil.register(Month.class, new Month.MonthSerde());
    CoerceUtil.register(Quarter.class, new Quarter.QuarterSerde());
    CoerceUtil.register(Second.class, new Second.SecondSerde());
    CoerceUtil.register(Week.class, new Week.WeekSerde());
    CoerceUtil.register(Year.class, new Year.YearSerde());
    metaDataStore.populateEntityDictionary(dictionary);
    // Need to provide details for connections used by all available models.
    Map<String, ConnectionDetails> connectionDetailsMap = new HashMap<>();
    connectionDetailsMap.put("mycon", new ConnectionDetails(dataSource, sqlDialect));
    connectionDetailsMap.put("SalesDBConnection", new ConnectionDetails(DUMMY_DATASOURCE, sqlDialect));
    Function<String, ConnectionDetails> connectionLookup = (name) -> connectionDetailsMap.getOrDefault(name, new ConnectionDetails(dataSource, sqlDialect));
    engine = new SQLQueryEngine(metaDataStore, connectionLookup, optimizers, new DefaultQueryPlanMerger(metaDataStore), new DefaultQueryValidator(metaDataStore.getMetadataDictionary()));
    playerStatsTable = (SQLTable) metaDataStore.getTable("playerStats", NO_VERSION);
    videoGameTable = (SQLTable) metaDataStore.getTable("videoGame", NO_VERSION);
    playerStatsViewTable = (SQLTable) metaDataStore.getTable("playerStatsView", NO_VERSION);
    playerStatsViewTableArgs = new HashMap<>();
    playerStatsViewTableArgs.put("rating", Argument.builder().name("overallRating").value("Great").build());
    playerStatsViewTableArgs.put("minScore", Argument.builder().name("minScore").value("0").build());
}
Also used : Quarter(com.yahoo.elide.datastores.aggregation.timegrains.Quarter) Year(com.yahoo.elide.datastores.aggregation.timegrains.Year) BeforeEach(org.junit.jupiter.api.BeforeEach) FilterPredicate(com.yahoo.elide.core.filter.predicates.FilterPredicate) Arrays(java.util.Arrays) Path(com.yahoo.elide.core.Path) Connection(java.sql.Connection) Provider(javax.inject.Provider) Include(com.yahoo.elide.annotation.Include) ParseException(com.yahoo.elide.core.filter.dialect.ParseException) SortingImpl(com.yahoo.elide.core.sort.SortingImpl) ClassType(com.yahoo.elide.core.type.ClassType) Argument(com.yahoo.elide.core.request.Argument) RSQLFilterDialect(com.yahoo.elide.core.filter.dialect.RSQLFilterDialect) Continent(example.dimensions.Continent) ISOWeek(com.yahoo.elide.datastores.aggregation.timegrains.ISOWeek) OrFilterExpression(com.yahoo.elide.core.filter.expression.OrFilterExpression) Map(java.util.Map) MetricProjection(com.yahoo.elide.datastores.aggregation.query.MetricProjection) DefaultQueryPlanMerger(com.yahoo.elide.datastores.aggregation.query.DefaultQueryPlanMerger) SQLDialectFactory(com.yahoo.elide.datastores.aggregation.queryengines.sql.dialects.SQLDialectFactory) STRING_TYPE(com.yahoo.elide.core.type.ClassType.STRING_TYPE) DefaultClassScanner(com.yahoo.elide.core.utils.DefaultClassScanner) Set(java.util.Set) CoerceUtil(com.yahoo.elide.core.utils.coerce.CoerceUtil) Collectors(java.util.stream.Collectors) EntityDictionary(com.yahoo.elide.core.dictionary.EntityDictionary) PlayerStats(example.PlayerStats) ConnectionDetails(com.yahoo.elide.datastores.aggregation.queryengines.sql.ConnectionDetails) Query(com.yahoo.elide.datastores.aggregation.query.Query) List(java.util.List) Hour(com.yahoo.elide.datastores.aggregation.timegrains.Hour) ImmutablePagination(com.yahoo.elide.datastores.aggregation.query.ImmutablePagination) TypeHelper.getClassType(com.yahoo.elide.core.utils.TypeHelper.getClassType) HikariDataSource(com.zaxxer.hikari.HikariDataSource) AndFilterExpression(com.yahoo.elide.core.filter.expression.AndFilterExpression) Optimizer(com.yahoo.elide.datastores.aggregation.query.Optimizer) Pattern(java.util.regex.Pattern) MetaDataStore(com.yahoo.elide.datastores.aggregation.metadata.MetaDataStore) Assertions.assertDoesNotThrow(org.junit.jupiter.api.Assertions.assertDoesNotThrow) Attribute(com.yahoo.elide.core.request.Attribute) Assertions.assertNotNull(org.junit.jupiter.api.Assertions.assertNotNull) SQLQueryEngine(com.yahoo.elide.datastores.aggregation.queryengines.sql.SQLQueryEngine) CountryViewNested(example.dimensions.CountryViewNested) Day(com.yahoo.elide.datastores.aggregation.timegrains.Day) Quarter(com.yahoo.elide.datastores.aggregation.timegrains.Quarter) SubCountry(example.dimensions.SubCountry) Second(com.yahoo.elide.datastores.aggregation.timegrains.Second) Week(com.yahoo.elide.datastores.aggregation.timegrains.Week) HashMap(java.util.HashMap) TimeGrain(com.yahoo.elide.datastores.aggregation.metadata.enums.TimeGrain) CountryView(example.dimensions.CountryView) Function(java.util.function.Function) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) SQLException(java.sql.SQLException) SQLDialect(com.yahoo.elide.datastores.aggregation.queryengines.sql.dialects.SQLDialect) Month(com.yahoo.elide.datastores.aggregation.timegrains.Month) DataSource(javax.sql.DataSource) NO_VERSION(com.yahoo.elide.core.dictionary.EntityDictionary.NO_VERSION) StreamSupport(java.util.stream.StreamSupport) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) FilterExpression(com.yahoo.elide.core.filter.expression.FilterExpression) LinkedHashSet(java.util.LinkedHashSet) PlayerStatsView(example.PlayerStatsView) QueryEngine(com.yahoo.elide.datastores.aggregation.QueryEngine) DimensionProjection(com.yahoo.elide.datastores.aggregation.query.DimensionProjection) Properties(java.util.Properties) Sorting(com.yahoo.elide.core.request.Sorting) GameRevenue(example.GameRevenue) Minute(com.yahoo.elide.datastores.aggregation.timegrains.Minute) DefaultQueryValidator(com.yahoo.elide.datastores.aggregation.DefaultQueryValidator) Player(example.Player) HikariConfig(com.zaxxer.hikari.HikariConfig) AfterEach(org.junit.jupiter.api.AfterEach) Country(example.dimensions.Country) TreeMap(java.util.TreeMap) SQLTable(com.yahoo.elide.datastores.aggregation.queryengines.sql.metadata.SQLTable) Type(com.yahoo.elide.core.type.Type) Operator(com.yahoo.elide.core.filter.Operator) PlayerStatsWithView(example.PlayerStatsWithView) SQLQueryEngine(com.yahoo.elide.datastores.aggregation.queryengines.sql.SQLQueryEngine) HikariDataSource(com.zaxxer.hikari.HikariDataSource) SQLException(java.sql.SQLException) HashMap(java.util.HashMap) ConnectionDetails(com.yahoo.elide.datastores.aggregation.queryengines.sql.ConnectionDetails) DefaultQueryPlanMerger(com.yahoo.elide.datastores.aggregation.query.DefaultQueryPlanMerger) Properties(java.util.Properties) DefaultQueryValidator(com.yahoo.elide.datastores.aggregation.DefaultQueryValidator) Month(com.yahoo.elide.datastores.aggregation.timegrains.Month) Minute(com.yahoo.elide.datastores.aggregation.timegrains.Minute) Hour(com.yahoo.elide.datastores.aggregation.timegrains.Hour) Connection(java.sql.Connection) HikariConfig(com.zaxxer.hikari.HikariConfig) HikariDataSource(com.zaxxer.hikari.HikariDataSource) DataSource(javax.sql.DataSource) ISOWeek(com.yahoo.elide.datastores.aggregation.timegrains.ISOWeek) Second(com.yahoo.elide.datastores.aggregation.timegrains.Second) Year(com.yahoo.elide.datastores.aggregation.timegrains.Year) Day(com.yahoo.elide.datastores.aggregation.timegrains.Day) ISOWeek(com.yahoo.elide.datastores.aggregation.timegrains.ISOWeek) Week(com.yahoo.elide.datastores.aggregation.timegrains.Week)

Example 3 with NO_VERSION

use of com.yahoo.elide.core.dictionary.EntityDictionary.NO_VERSION in project elide by yahoo.

the class SwaggerBuilderTest method testSortParameter.

@Test
public void testSortParameter() {
    @Entity
    @Include
    class NothingToSort {

        @Id
        long name;
    }
    EntityDictionary entityDictionary = EntityDictionary.builder().build();
    entityDictionary.bindEntity(NothingToSort.class);
    Info info = new Info().title("Test Service").version(NO_VERSION);
    SwaggerBuilder builder = new SwaggerBuilder(entityDictionary, info);
    Swagger testSwagger = builder.build();
    List<Parameter> params = testSwagger.getPaths().get("/nothingToSort").getGet().getParameters();
    QueryParameter sortParam = (QueryParameter) params.stream().filter((param) -> param.getName().equals("sort")).findFirst().get();
    assertEquals("query", sortParam.getIn());
    List<String> sortValues = Arrays.asList("id", "-id");
    assertEquals(sortValues, ((StringProperty) sortParam.getItems()).getEnum());
}
Also used : Assertions.assertNotNull(org.junit.jupiter.api.Assertions.assertNotNull) Resource(com.yahoo.elide.swagger.model.Resource) Arrays(java.util.Arrays) Data(com.yahoo.elide.swagger.property.Data) Swagger(io.swagger.models.Swagger) Tag(io.swagger.models.Tag) Assertions.assertNull(org.junit.jupiter.api.Assertions.assertNull) Include(com.yahoo.elide.annotation.Include) StringProperty(io.swagger.models.properties.StringProperty) HashMap(java.util.HashMap) Publisher(example.models.Publisher) ArrayProperty(io.swagger.models.properties.ArrayProperty) Model(io.swagger.models.Model) TestInstance(org.junit.jupiter.api.TestInstance) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) Author(example.models.Author) BeforeAll(org.junit.jupiter.api.BeforeAll) Path(io.swagger.models.Path) Map(java.util.Map) NO_VERSION(com.yahoo.elide.core.dictionary.EntityDictionary.NO_VERSION) Book(example.models.Book) RefProperty(io.swagger.models.properties.RefProperty) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) Operation(io.swagger.models.Operation) Datum(com.yahoo.elide.swagger.property.Datum) Property(io.swagger.models.properties.Property) Id(javax.persistence.Id) Entity(javax.persistence.Entity) BodyParameter(io.swagger.models.parameters.BodyParameter) Set(java.util.Set) Parameter(io.swagger.models.parameters.Parameter) Collectors(java.util.stream.Collectors) EntityDictionary(com.yahoo.elide.core.dictionary.EntityDictionary) Info(io.swagger.models.Info) QueryParameter(io.swagger.models.parameters.QueryParameter) Test(org.junit.jupiter.api.Test) Response(io.swagger.models.Response) ObjectProperty(io.swagger.models.properties.ObjectProperty) List(java.util.List) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) Relationship(com.yahoo.elide.swagger.property.Relationship) Optional(java.util.Optional) Entity(javax.persistence.Entity) QueryParameter(io.swagger.models.parameters.QueryParameter) Swagger(io.swagger.models.Swagger) Include(com.yahoo.elide.annotation.Include) BodyParameter(io.swagger.models.parameters.BodyParameter) Parameter(io.swagger.models.parameters.Parameter) QueryParameter(io.swagger.models.parameters.QueryParameter) Info(io.swagger.models.Info) EntityDictionary(com.yahoo.elide.core.dictionary.EntityDictionary) Test(org.junit.jupiter.api.Test)

Example 4 with NO_VERSION

use of com.yahoo.elide.core.dictionary.EntityDictionary.NO_VERSION in project elide by yahoo.

the class SwaggerBuilder method build.

/**
 * Builds a swagger object.
 * @return the constructed 'Swagger' object
 */
public Swagger build() {
    /* Used to convert Elide POJOs into Swagger Model objects */
    ModelConverters converters = ModelConverters.getInstance();
    ModelConverter converter = new JsonApiModelResolver(dictionary);
    converters.addConverter(converter);
    String apiVersion = swagger.getInfo().getVersion();
    if (apiVersion == null) {
        apiVersion = NO_VERSION;
    }
    if (allClasses.isEmpty()) {
        allClasses = dictionary.getBoundClassesByVersion(apiVersion);
    } else {
        allClasses = Sets.intersection(dictionary.getBoundClassesByVersion(apiVersion), allClasses);
        if (allClasses.isEmpty()) {
            throw new IllegalArgumentException("None of the provided classes are exported by Elide");
        }
    }
    /*
         * Create a Model for each Elide entity.
         * Elide entity could be of ClassType or DynamicType.
         * For ClassType, extract the class and pass it to ModelConverters#readAll method.
         * ModelConverters#readAll doesn't support Elide Dynamic Type, so calling the
         * JsonApiModelResolver#resolve method directly when its not a ClassType.
         */
    Map<String, Model> models = new HashMap<>();
    for (Type<?> clazz : allClasses) {
        if (clazz instanceof ClassType) {
            models.putAll(converters.readAll(((ClassType) clazz).getCls()));
        } else {
            ModelConverterContextImpl context = new ModelConverterContextImpl(Arrays.asList(converter));
            context.resolve(clazz);
            models.putAll(context.getDefinedModels());
        }
    }
    swagger.setDefinitions(models);
    rootClasses = allClasses.stream().filter(dictionary::isRoot).collect(Collectors.toSet());
    /* Find all the paths starting from the root entities. */
    Set<PathMetaData> pathData = rootClasses.stream().map(this::find).flatMap(Collection::stream).collect(Collectors.toSet());
    /* Prune the discovered paths to remove redundant elements */
    Set<PathMetaData> toRemove = new HashSet<>();
    pathData.stream().collect(Collectors.groupingBy(PathMetaData::getRootType)).values().forEach(pathSet -> {
        for (PathMetaData path : pathSet) {
            for (PathMetaData compare : pathSet) {
                /*
                             * We don't prune paths that are redundant with root collections to allow both BOTH
                             * root collection urls as well as relationship urls.
                             */
                if (compare.lineage.isEmpty() || path == compare) {
                    continue;
                }
                if (compare.shorterThan(path)) {
                    toRemove.add(path);
                    break;
                }
            }
        }
    });
    pathData = Sets.difference(pathData, toRemove);
    /* Each path constructs 3 URLs (collection, instance, and relationship) */
    for (PathMetaData pathDatum : pathData) {
        swagger.path(pathDatum.getCollectionUrl(), pathDatum.getCollectionPath());
        swagger.path(pathDatum.getUrl(), pathDatum.getInstancePath());
        /* We only construct relationship URLs if the entity is not a root collection */
        if (!pathDatum.lineage.isEmpty()) {
            swagger.path(pathDatum.getRelationshipUrl(), pathDatum.getRelationshipPath());
        }
    }
    /* We create Swagger 'tags' for each entity so Swagger UI organizes the paths by entities */
    List<Tag> tags = allClasses.stream().map((clazz) -> dictionary.getJsonAliasFor(clazz)).map((alias) -> new Tag().name(alias)).collect(Collectors.toList());
    swagger.tags(tags);
    return swagger;
}
Also used : Arrays(java.util.Arrays) ModelConverters(io.swagger.converter.ModelConverters) Getter(lombok.Getter) Swagger(io.swagger.models.Swagger) Tag(io.swagger.models.Tag) StringProperty(io.swagger.models.properties.StringProperty) Json(io.swagger.util.Json) HashMap(java.util.HashMap) ClassType(com.yahoo.elide.core.type.ClassType) Stack(java.util.Stack) Model(io.swagger.models.Model) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) Path(io.swagger.models.Path) Map(java.util.Map) NO_VERSION(com.yahoo.elide.core.dictionary.EntityDictionary.NO_VERSION) Datum(com.yahoo.elide.swagger.model.Datum) ModelConverter(io.swagger.converter.ModelConverter) BodyParameter(io.swagger.models.parameters.BodyParameter) PathParameter(io.swagger.models.parameters.PathParameter) Collection(java.util.Collection) Set(java.util.Set) Parameter(io.swagger.models.parameters.Parameter) ModelConverterContextImpl(io.swagger.converter.ModelConverterContextImpl) Collectors(java.util.stream.Collectors) EntityDictionary(com.yahoo.elide.core.dictionary.EntityDictionary) Sets(com.google.common.collect.Sets) Info(io.swagger.models.Info) QueryParameter(io.swagger.models.parameters.QueryParameter) Objects(java.util.Objects) Response(io.swagger.models.Response) List(java.util.List) Type(com.yahoo.elide.core.type.Type) Operator(com.yahoo.elide.core.filter.Operator) Relationship(com.yahoo.elide.swagger.property.Relationship) Queue(java.util.Queue) ArrayDeque(java.util.ArrayDeque) RelationshipType(com.yahoo.elide.core.dictionary.RelationshipType) Data(com.yahoo.elide.swagger.model.Data) HashMap(java.util.HashMap) ClassType(com.yahoo.elide.core.type.ClassType) ModelConverter(io.swagger.converter.ModelConverter) Model(io.swagger.models.Model) ModelConverters(io.swagger.converter.ModelConverters) Tag(io.swagger.models.Tag) ModelConverterContextImpl(io.swagger.converter.ModelConverterContextImpl) HashSet(java.util.HashSet)

Aggregations

NO_VERSION (com.yahoo.elide.core.dictionary.EntityDictionary.NO_VERSION)4 Map (java.util.Map)4 Set (java.util.Set)4 Collectors (java.util.stream.Collectors)4 EntityDictionary (com.yahoo.elide.core.dictionary.EntityDictionary)3 Sets (com.google.common.collect.Sets)2 Include (com.yahoo.elide.annotation.Include)2 Operator (com.yahoo.elide.core.filter.Operator)2 FilterExpression (com.yahoo.elide.core.filter.expression.FilterExpression)2 ClassType (com.yahoo.elide.core.type.ClassType)2 Type (com.yahoo.elide.core.type.Type)2 Relationship (com.yahoo.elide.swagger.property.Relationship)2 Info (io.swagger.models.Info)2 Model (io.swagger.models.Model)2 Path (io.swagger.models.Path)2 Response (io.swagger.models.Response)2 Swagger (io.swagger.models.Swagger)2 Tag (io.swagger.models.Tag)2 BodyParameter (io.swagger.models.parameters.BodyParameter)2 Parameter (io.swagger.models.parameters.Parameter)2