All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.infinispan.query.dsl.embedded.impl.SearchProjectionInfo Maven / Gradle / Ivy

package org.infinispan.query.dsl.embedded.impl;

import org.hibernate.search.engine.common.EntityReference;
import org.hibernate.search.engine.search.projection.SearchProjection;
import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory;

final class SearchProjectionInfo {

   static SearchProjectionInfo entity(SearchProjectionFactory factory) {
      return new SearchProjectionInfo(factory.entity().toProjection(), true);
   }

   static SearchProjectionInfo entityReference(SearchProjectionFactory factory) {
      return new SearchProjectionInfo(factory.entityReference().toProjection(), false);
   }

   static SearchProjectionInfo field(SearchProjectionFactory factory,
                                     String absoluteFieldPath, Class type) {
      return new SearchProjectionInfo(factory.field(absoluteFieldPath, type).toProjection(), false);
   }

   static SearchProjectionInfo multiField(SearchProjectionFactory factory,
                                     String absoluteFieldPath, Class type) {
      return new SearchProjectionInfo(factory.field(absoluteFieldPath, type).multi().toProjection(), false);
   }

   static SearchProjectionInfo composite(SearchProjectionFactory factory,
                                         SearchProjection[] children) {
      return new SearchProjectionInfo(factory.composite(children).toProjection(), false);
   }

   private final SearchProjection searchProjection;
   private final boolean isEntityProjection;

   private SearchProjectionInfo(SearchProjection searchProjection, boolean isEntityProjection) {
      this.searchProjection = searchProjection;
      this.isEntityProjection = isEntityProjection;
   }

   public SearchProjection getProjection() {
      return searchProjection;
   }

   public boolean isEntityProjection() {
      return isEntityProjection;
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy