Interface VRObjectRepository

All Superinterfaces:
org.springframework.data.repository.CrudRepository<Entity,String>, org.springframework.data.neo4j.repository.Neo4jRepository<Entity,String>, org.springframework.data.repository.PagingAndSortingRepository<Entity,String>, org.springframework.data.repository.query.QueryByExampleExecutor<Entity>, org.springframework.data.repository.Repository<Entity,String>, VRSpaceDB

@DependsOn("database") public interface VRObjectRepository extends org.springframework.data.neo4j.repository.Neo4jRepository<Entity,String>, VRSpaceDB
  • Field Details

    • log

      static final org.slf4j.Logger log
  • Method Details

    • findById

      default Optional<Entity> findById(String id)
      Specified by:
      findById in interface org.springframework.data.repository.CrudRepository<Entity,String>
    • deleteById

      default void deleteById(String id)
      Specified by:
      deleteById in interface org.springframework.data.repository.CrudRepository<Entity,String>
    • getPermanents

      @Query("MATCH (o:VRObject{permanent:true}) WHERE o.worldId=$worldId RETURN o") Set<VRObject> getPermanents(String worldId)
    • getClient

      default Client getClient(String id)
    • getAllInWorld

      @Query("MATCH (o:VRObject) WHERE o.worldId = $worldId RETURN o") Set<VRObject> getAllInWorld(String worldId)
    • deleteWorld

      default void deleteWorld(World world)
    • getWorldByName

      @Query("MATCH (o:World) WHERE o.name = $name RETURN o") World getWorldByName(String name)
    • getRange

      default Set<VRObject> getRange(String worldId, Point from, Point to)
    • getRange

      @Query("MATCH (o:VRObject)-[r:HAS_POSITION]->(p:Point) WHERE o.worldId = $worldId AND p.x >= $x1 AND p.y >= $y1 AND p.z >= $z1 AND p.x <= $x2 AND p.y <= $y2 AND p.z <= $z2 RETURN o,r,p") Set<VRObject> getRange(String worldId, double x1, double y1, double z1, double x2, double y2, double z2)
    • getPoints

      default Set<Point> getPoints(Point from, Point to)
    • getPoints

      @Query("MATCH (p:Point) WHERE p.x >= $x1 AND p.y >= $y1 AND p.z >= $z1 AND p.x <= $x2 AND p.y <= $y2 AND p.z <= $z2 RETURN p") Set<Point> getPoints(double x1, double y1, double z1, double x2, double y2, double z2)
    • getMember

      @Query("MATCH (o:Entity) WHERE o.id = $id RETURN o") <T extends Embedded> T getMember(Class<T> cls, Long id)
    • delete

      default void delete(VRObject o)
    • deleteMembers

      Throws:
      NoSuchMethodException
      SecurityException
      IllegalAccessException
      IllegalArgumentException
      InvocationTargetException
    • nullSafeDelete

      default void nullSafeDelete(Entity e)
    • findGltfModelByUid

      Optional<GltfModel> findGltfModelByUid(String uid)
    • findContentCategoryByName

      Optional<ContentCategory> findContentCategoryByName(String name)
    • listWorlds

      @Query("MATCH (o:World) RETURN o") List<World> listWorlds()
    • countUsers

      @Query("MATCH (o:Client) WHERE o.worldId = $worldId RETURN count(*)") int countUsers(String worldId)
    • countUsers

      @Query("MATCH (o:Client) WHERE o.worldId = $worldId AND o.active = $active RETURN count(*)") int countUsers(String worldId, boolean active)
    • countUsers

      default List<WorldStatus> countUsers()
    • getOwnedObjects

      @Query("MATCH (obj:Entity)<-[owned:IS_OWNED]-(o:Ownership)-[owns:IS_OWNER]->(c:Client) WHERE c.id = $clientId RETURN o,owns,c,owned,obj") List<Ownership> getOwnedObjects(String clientId)
      WARNING this doesn't return full, useful owned VRObject - position and other members are missing - use listOwnedObjects instead
      Parameters:
      clientId -
      Returns:
      list of all ownerships
    • listOwnedObjects

      default List<Ownership> listOwnedObjects(String ownerId)
    • getOwnersOf

      @Query("MATCH (obj:Entity)<-[owned:IS_OWNED]-(o:Ownership)-[owns:IS_OWNER]->(c:Client) WHERE obj.id = $objectId RETURN o,owns,c,owned,obj") List<Ownership> getOwnersOf(String objectId)
      WARNING this doesn't return full, useful owned Entity - position and other members are missing - use getOwners instead
      Returns:
      list of all owners
    • getOwners

      default List<Ownership> getOwners(String objectId)
    • findOwnership

      @Query("MATCH (obj:Entity)<-[owned:IS_OWNED]-(o:Ownership)-[owns:IS_OWNER]->(c:Client) WHERE c.id = $ownerId AND obj.id = $ownedId RETURN o,owns,c,owned,obj") Optional<Ownership> findOwnership(String ownerId, String ownedId)
      WARNING this doesn't return full, useful owned Entity - e.g. VRObject position and other members are missing - use getOwnership instead
    • getOwnership

      default Ownership getOwnership(String ownerId, String ownedId)
    • getTerrainPoints

      @Query("MATCH (tp:TerrainPoint)-[r:IS_POINT_OF]->(t:Terrain) WHERE t.id=$terrainId RETURN tp") Set<TerrainPoint> getTerrainPoints(String terrainId)
    • getTerrainPoint

      @Query("MATCH (tp:TerrainPoint)-[r:IS_POINT_OF]->(t:Terrain) WHERE t.id=$terrainId and tp.index=$index RETURN tp") TerrainPoint getTerrainPoint(String terrainId, Long index)
    • listUserData

      @Query("MATCH (ud:UserData)-[r:USER_DATA]->(o:VRObject) WHERE o.id=$objectId RETURN ud, r, o") List<UserData> listUserData(String objectId)
    • findUserData

      @Query("MATCH (ud:UserData)-[r:USER_DATA]->(o:VRObject) WHERE o.id=$objectId AND ud.key=$key RETURN ud, r, o") Optional<UserData> findUserData(String objectId, String key)
    • listSubscriptions

      @Query("MATCH (wps:WebPushSubscription)-[sc:SUBSCRIBED_CLIENT]->(c:Client) WHERE c.id=$clientId RETURN wps, sc, c") List<WebPushSubscription> listSubscriptions(String clientId)