Package com.webobjects.eocontrol

Examples of com.webobjects.eocontrol.EOFetchSpecification


        ipi.setObject(eo);
        ipi.setNextPage(previousPageFromRequest());
    }

    protected void prepareQueryPage(D2WContext context, QueryPageInterface qpi, String entityName) {
        EOFetchSpecification fs = fetchSpecificationFromRequest(entityName);
        if(qpi instanceof ERD2WQueryPage) {
            if(fs != null)
                ((ERD2WQueryPage)qpi).setFetchSpecification(fs);
        }
    }
View Full Code Here


        }
        EOEntity entity = ERXEOAccessUtilities.entityNamed(ec, entityName);
        EODataSource ds = relationshipArrayFromRequest(ec, entity.classDescriptionForInstances());
        if(ds == null) {
            ds = new EODatabaseDataSource(ec, entityName);
            EOFetchSpecification fs = fetchSpecificationFromRequest(entityName);
            if(fs == null) {
                fs = new EOFetchSpecification(entityName, null, null);
            }
            if(!context().request().formValueKeys().contains(fetchLimitKey)) {
                int fetchLimit = ERXValueUtilities.intValueWithDefault(context.valueForKey("fetchLimit"), 200);
                fs.setFetchLimit(fetchLimit);
            }
            boolean refresh = ERXValueUtilities.booleanValueWithDefault(context.valueForKey("refreshRefetchedObjects"), false);
            fs.setRefreshesRefetchedObjects(refresh);
            ((EODatabaseDataSource)ds).setFetchSpecification(fs);
        }
        lpi.setDataSource(ds);
        lpi.setNextPage(previousPageFromRequest());
    }
View Full Code Here

  public static NSArray<Employee> fetchAllEmployees(EOEditingContext editingContext, NSArray<EOSortOrdering> sortOrderings) {
    return _Employee.fetchEmployees(editingContext, null, sortOrderings);
  }

  public static NSArray<Employee> fetchEmployees(EOEditingContext editingContext, EOQualifier qualifier, NSArray<EOSortOrdering> sortOrderings) {
    EOFetchSpecification fetchSpec = new EOFetchSpecification(_Employee.ENTITY_NAME, qualifier, sortOrderings);
    fetchSpec.setIsDeep(true);
    NSArray<Employee> eoObjects = (NSArray<Employee>)editingContext.objectsWithFetchSpecification(fetchSpec);
    return eoObjects;
  }
View Full Code Here

  public Results<T> results(EOEditingContext editingContext, NSKeyValueCoding options) {
    Results<T> results;
    NSArray<EOSortOrdering> sortOrderings = sortOrderings(editingContext, options);
    EOQualifier qualifier = qualifier(editingContext, options);

    EOFetchSpecification fetchSpec = new EOFetchSpecification(_entityName, qualifier, sortOrderings);
    fetchSpec.setIsDeep(true);

    NSArray<T> objects;
    NSRange range = range(options);
    if (range == null) {
      objects = editingContext.objectsWithFetchSpecification(fetchSpec);
View Full Code Here

      if (!_hasBeenInitialized) {
        log.debug("Initializing display group");
        String fetchspecName = (String) d2wContext().valueForKey("restrictingFetchSpecification");
        if (fetchspecName != null) {
          if (ds instanceof EODatabaseDataSource) {
            EOFetchSpecification fs = ((EODatabaseDataSource) ds).entity().fetchSpecificationNamed(fetchspecName);
            if (fs != null) {
              fs = (EOFetchSpecification) fs.clone();
            }
            ((EODatabaseDataSource) ds).setFetchSpecification(fs);
          }
        }
        if (sortOrderings == null) {
          sortOrderings = sortOrderings();
          setSortOrderingsOnDisplayGroup(sortOrderings, dg);
        }
        dg.setNumberOfObjectsPerBatch(numberOfObjectsPerBatch());
        _fetchDisplayGroup(dg);
        dg.updateDisplayedObjects();
        _hasBeenInitialized = true;
        _hasToUpdate = false;
      }
      // AK: if we have a DB datasource, then we might want to refetch if
      // the sort ordering changed
      // because if we have a fetch limit then the displayed matches on
      // the first page come from the
      // results, not from the real order in the DB. Set
      // "alwaysRefetchList" to false in your
      // rules to prevent that.
      // In addition, we need to refetch if we use a batching display
      // group, as the sort ordering is
      // always applied from the DB.
      if ((sortOrderings != null) && (ds instanceof EODatabaseDataSource)) {
        EOFetchSpecification fs = ((EODatabaseDataSource) ds).fetchSpecification();
        if (!fs.sortOrderings().equals(sortOrderings) && (fs.fetchLimit() != 0 || useBatchingDisplayGroup())) {
          fs.setSortOrderings(sortOrderings);
          _hasToUpdate = _hasToUpdate ? true : alwaysRefetchList();
        }
      }
      // this will have the side effect of resetting the batch # to sth
      // correct, in case
View Full Code Here

        EOQualifier qualifier = ERXEOControlUtilities.qualifierMatchingAnyKey(searchKeys, EOQualifier.QualifierOperatorCaseInsensitiveLike, "*" + searchValue + "*");
        EOQualifier restrictingQualifier = (EOQualifier) valueForBinding("extraRestrictingQualifier");
        if(restrictingQualifier != null) {
            qualifier = new EOAndQualifier(new NSArray(new Object[]{qualifier, restrictingQualifier}));
        }
        EOFetchSpecification fs = new EOFetchSpecification(entityName, qualifier, null);
        ds.setFetchSpecification(fs);
        return ds;
    }
View Full Code Here

            long start = System.currentTimeMillis();
            int treshhold = 10;
            EOEditingContext ec = ERXEC.newEditingContext();
            ec.lock();
            try {
                EOFetchSpecification fs = new EOFetchSpecification(entity.name(), null, null);
                ERXFetchSpecificationBatchIterator iterator = new ERXFetchSpecificationBatchIterator(fs);
                iterator.setEditingContext(ec);
                while(iterator.hasNextBatch()) {
                    NSArray objects = iterator.nextBatch();
                    if(iterator.currentBatchIndex() % treshhold == 0) {
View Full Code Here

                                // is
                                // not a class prop, there's nothing we can do.
                                // value =
                                // ec.arrayFaultWithSourceGlobalID(sourceGlobalID,
                                // rel.name(), ec);
                                EOFetchSpecification fs = new EOFetchSpecification(rel.destinationEntity().name(), null, null);
                                NSMutableArray<EOQualifier> qualifiers = new NSMutableArray(rel.joins().count());
                                NSDictionary pk = source.primaryKeyForGlobalID(sourceGlobalID);
                                for (Iterator iterator = rel.joins().iterator(); iterator.hasNext();) {
                                    EOJoin join = (EOJoin) iterator.next();
                                    Object pkValue = pk.objectForKey(join.sourceAttribute().name());
                                    EOKeyValueQualifier qualifier = new EOKeyValueQualifier(join.destinationAttribute().name(), EOQualifier.QualifierOperatorEqual, pkValue);
                                    qualifiers.addObject(qualifier);
                                }
                                fs.setQualifier(qualifiers.count() == 1 ? qualifiers.lastObject() : new EOAndQualifier(qualifiers));
                                value = ec.objectsWithFetchSpecification(fs);
                            }
                        }
                        if (value != null) {
                            NSArray<EOEnterpriseObject> eos = (value instanceof EOEnterpriseObject ? new NSArray(value) : (NSArray) value);
View Full Code Here

            long start = System.currentTimeMillis();
            int treshhold = 10;
            EOEditingContext ec = ERXEC.newEditingContext();
            ec.lock();
            try {
                EOFetchSpecification fs = new EOFetchSpecification(entityName, null, null);
                ERXFetchSpecificationBatchIterator iterator = new ERXFetchSpecificationBatchIterator(fs);
                iterator.setEditingContext(ec);
                while (iterator.hasNextBatch()) {
                    NSArray objects = iterator.nextBatch();
                    if (iterator.currentBatchIndex() % treshhold == 0) {
View Full Code Here

    public NSArray<T> objectsMatchingQualifier(EOEditingContext ec, EOQualifier qualifier) {
        return objectsMatchingQualifier(ec, qualifier, null);
    }
   
    public NSArray<T> objectsMatchingQualifier(EOEditingContext ec, EOQualifier qualifier, NSArray<EOSortOrdering> sortOrdering) {
        return ec.objectsWithFetchSpecification(new EOFetchSpecification(entityName(), qualifier, sortOrdering));
    }
View Full Code Here

TOP

Related Classes of com.webobjects.eocontrol.EOFetchSpecification

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.