Package org.structr.core

Examples of org.structr.core.Result


      PropertyMap props     = new PropertyMap();
      AbstractNode node = createTestNode(TestOne.class, props);

      try (final Tx tx = app.tx()) {
       
        Result result = app.nodeQuery(TestOne.class).and(TestOne.anInt, null).includeDeletedAndHidden().getResult();

        assertTrue(result.size() == 1);
        assertTrue(result.get(0).equals(node));
      }

    } catch (Throwable ex) {

      ex.printStackTrace();
View Full Code Here


      PropertyMap props     = new PropertyMap();
      AbstractNode node = createTestNode(TestOne.class, props);

      try (final Tx tx = app.tx()) {

        Result result = app.nodeQuery(TestOne.class).and(TestOne.aLong, null).includeDeletedAndHidden().getResult();

        assertTrue(result.size() == 1);
        assertTrue(result.get(0).equals(node));
      }

    } catch (FrameworkException ex) {

      ex.printStackTrace();
View Full Code Here

      PropertyMap props = new PropertyMap();
      AbstractNode node = createTestNode(TestOne.class, props);

      try (final Tx tx = app.tx()) {
       
        Result result = app.nodeQuery(TestOne.class).and(TestOne.aDouble, null).includeDeletedAndHidden().getResult();
        assertTrue(result.size() == 1);
        assertTrue(result.get(0).equals(node));
      }

    } catch (FrameworkException ex) {

      ex.printStackTrace();
View Full Code Here

      }

    }

    return new Result(resultList, resultList.size(), false, false);

  }
View Full Code Here

      List<GraphObject> results = new LinkedList<>();

      results.add(obj);

      return new Result(results, null, isCollectionResource(), isPrimitiveArray());

    }

    throw new NotFoundException();
  }
View Full Code Here

      }
      sortKey = StructrApp.getConfiguration().getPropertyKeyForDatabaseName(type, sortKeyName);
    }

    // do action
    Result result = resource.doGet(sortKey, sortDescending, pageSize, page, offsetId);
    result.setIsCollection(resource.isCollectionResource());
    result.setIsPrimitiveArray(resource.isPrimitiveArray());

    //Integer rawResultCount = (Integer) Services.getAttribute(NodeFactory.RAW_RESULT_COUNT + Thread.currentThread().getId());
    PagingHelper.addPagingParameter(result, pageSize, page);

    List<GraphObject> res = result.getResults();

    if (renderContext != null) {
      renderContext.setResult(result);
    }
View Full Code Here

              resultList.add(rel.getTargetNode());
            }
          }
        }

        return new Result(resultList, null, isCollectionResource(), isPrimitiveArray());

      } catch(Throwable t) {

        logger.log(Level.WARNING, "Exception while fetching relationships", t);
      }
View Full Code Here

  @Override
  protected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws UnsupportedEncodingException {

    SecurityContext securityContext = null;
    Authenticator authenticator = null;
    Result result = null;
    Resource resource = null;

    try {

      // isolate request authentication in a transaction
      try (final Tx tx = StructrApp.getInstance().tx()) {
        authenticator = config.getAuthenticator();
        securityContext = authenticator.initializeAndExamineRequest(request, response);
        tx.success();
      }
      final App app = StructrApp.getInstance(securityContext);

//                      logRequest("GET", request);
      request.setCharacterEncoding("UTF-8");
      response.setCharacterEncoding("UTF-8");
      response.setContentType("text/csv; charset=utf-8");

      // set default value for property view
      propertyView.set(securityContext, defaultPropertyView);

      // evaluate constraints and measure query time
      double queryTimeStart = System.nanoTime();

      // isolate resource authentication
      try (final Tx tx = app.tx()) {

        resource = ResourceHelper.optimizeNestedResourceChain(ResourceHelper.parsePath(securityContext, request, resourceMap, propertyView, defaultIdProperty), defaultIdProperty);
        authenticator.checkResourceAccess(request, resource.getResourceSignature(), propertyView.get(securityContext));

        tx.success();
      }

      try (final Tx tx = app.tx()) {

        String resourceSignature = resource.getResourceSignature();

        // let authenticator examine request again
        authenticator.checkResourceAccess(request, resourceSignature, propertyView.get(securityContext));

        // add sorting & paging
        String pageSizeParameter = request.getParameter(JsonRestServlet.REQUEST_PARAMETER_PAGE_SIZE);
        String pageParameter = request.getParameter(JsonRestServlet.REQUEST_PARAMETER_PAGE_NUMBER);
        String offsetId = request.getParameter(JsonRestServlet.REQUEST_PARAMETER_OFFSET_ID);
        String sortOrder = request.getParameter(JsonRestServlet.REQUEST_PARAMETER_SORT_ORDER);
        String sortKeyName = request.getParameter(JsonRestServlet.REQUEST_PARAMETER_SORT_KEY);
        boolean sortDescending = (sortOrder != null && "desc".equals(sortOrder.toLowerCase()));
        int pageSize = HttpService.parseInt(pageSizeParameter, NodeFactory.DEFAULT_PAGE_SIZE);
        int page = HttpService.parseInt(pageParameter, NodeFactory.DEFAULT_PAGE);
        PropertyKey sortKey = null;

        // set sort key
        if (sortKeyName != null) {

          Class<? extends GraphObject> type = resource.getEntityClass();

          sortKey = StructrApp.getConfiguration().getPropertyKeyForDatabaseName(type, sortKeyName);

        }

        // Should line breaks be removed?
        removeLineBreaks = StringUtils.equals(request.getParameter(REMOVE_LINE_BREAK_PARAM), "1");

        // Should a leading BOM be written?
        writeBom = StringUtils.equals(request.getParameter(WRITE_BOM), "1");

        // do action
        result = resource.doGet(sortKey, sortDescending, pageSize, page, offsetId);

        result.setIsCollection(resource.isCollectionResource());
        result.setIsPrimitiveArray(resource.isPrimitiveArray());

        // Integer rawResultCount = (Integer) Services.getAttribute(NodeFactory.RAW_RESULT_COUNT + Thread.currentThread().getId());
        PagingHelper.addPagingParameter(result, pageSize, page);

      // Services.removeAttribute(NodeFactory.RAW_RESULT_COUNT + Thread.currentThread().getId());
        // timing..
        double queryTimeEnd = System.nanoTime();

        // commit response
        if (result != null) {

          // store property view that will be used to render the results
          result.setPropertyView(propertyView.get(securityContext));

          // allow resource to modify result set
          resource.postProcessResultSet(result);

          DecimalFormat decimalFormat = new DecimalFormat("0.000000000", DecimalFormatSymbols.getInstance(Locale.ENGLISH));

          result.setQueryTime(decimalFormat.format((queryTimeEnd - queryTimeStart) / 1000000000.0));

          Writer writer = response.getWriter();

          if (writeBom) {
            writeUtf8Bom(writer);
View Full Code Here

            // sort after merge
            applyDefaultSorting(finalResult, sortKey, sortDescending);

            // return result
            return new Result(PagingHelper.subList(finalResult, pageSize, page, offsetId), finalResult.size(), isCollectionResource(), isPrimitiveArray());

          } else {

            // what here?
          }
        }

      } else {
//
//      // second try: property key
//      if (propertyKey != null) {

        Query query = typeResource.query;
        if (query == null) {

          query = StructrApp.getInstance(securityContext).nodeQuery();
        }

        // use search context from type resource
        typeResource.collectSearchAttributes(query);

        final Predicate<GraphObject> predicate = query.toPredicate();
        final Object value = sourceEntity.getProperty(propertyKey, predicate);

        if (value != null) {

          if (value instanceof Iterable) {

            final Set<GraphObject> propertyResults = new LinkedHashSet<>();

            // fill set with data
            for (final GraphObject obj : ((Iterable<GraphObject>) value)) {
              propertyResults.add(obj);
            }

            /*
             if (typeResource.getEntityClass() != null) {

             final Set<GraphObject> typeResourceResults = new LinkedHashSet<>(typeResource.doGet(null, sortDescending, NodeFactory.DEFAULT_PAGE_SIZE, NodeFactory.DEFAULT_PAGE, null).getResults());

             // merge list with results from type resource (which includes request parameter based filtering)
             propertyResults.retainAll(typeResourceResults);
             }
             */
            final List<GraphObject> finalResult = new LinkedList<>(propertyResults);
            applyDefaultSorting(finalResult, sortKey, sortDescending);

            // return result
            return new Result(PagingHelper.subList(finalResult, pageSize, page, offsetId), finalResult.size(), isCollectionResource(), isPrimitiveArray());
          }
        }

      }
    }
View Full Code Here

        overviewMap.put(actionsProperty, actions);
        overviewMap.put(entryCountProperty, entryCount);
        overviewMap.put(firstEntryProperty, new Date(beginTimestamp));
        overviewMap.put(lastEntryProperty, new Date(endTimestamp));

        return new Result(overviewMap, false);

      } else if (StringUtils.isNotBlank(aggregate)) {

        // sort result
        Collections.sort(entries, new GraphObjectComparator(timestampProperty, false));

        final long intervalStart = range != null ? range.start : beginTimestamp;
        final long intervalEnd   = range != null ? range.end : endTimestamp;

        // aggregate results
        return aggregate(entries, aggregate, intervalStart, intervalEnd);

      } else {

        // sort result
        Collections.sort(entries, new GraphObjectComparator(timestampProperty, false));

        return new Result(entries, entries.size(), true, false);
      }
    }

    // no request object, this is fatal
    throw new FrameworkException(500, "No request object present, aborting.");
View Full Code Here

TOP

Related Classes of org.structr.core.Result

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.