/** * Retrieve objects using a qualifier and sort orderings. * * @param context The editing context to use * @param qualifier The qualifier to use * @param sortOrderings The sort orderings to use * @return an NSArray of the entities retrieved */ public static NSArray<UserMessageSubscription> objectsMatchingQualifier( EOEditingContext context, EOQualifier qualifier, NSArray<EOSortOrdering> sortOrderings) { @SuppressWarnings("unchecked") EOFetchSpecification fspec = new WCFetchSpecification(ENTITY_NAME, qualifier, sortOrderings); fspec.setUsesDistinct(true); return objectsWithFetchSpecification(context, fspec); }
public void prepareSelectExpressionWithAttributes( NSArray nsarray, boolean flag, EOFetchSpecification eofetchspecification) { if (!eofetchspecification.promptsAfterFetchLimit()) { _fetchLimit = eofetchspecification.fetchLimit(); } super.prepareSelectExpressionWithAttributes(nsarray, flag, eofetchspecification); }
public void initListeDiplRN() { chargerDiplRN(); // On va se construire un dico des enreg. pour l'année en cours de IP_DIPL_SANS_RN... NSArray bindings = new NSArray(new Object[] {getFannKey()}); EOQualifier qualifier = EOQualifier.qualifierWithQualifierFormat("fannKey = %@", bindings); // la liste des diplomes qui n'autorisent pas les RN par le Web EOFetchSpecification fetchSpec = new EOFetchSpecification("IpDiplSansRn", qualifier, null); fetchSpec.setRefreshesRefetchedObjects(true); EOEditingContext ec = maSession.defaultEditingContext(); NSArray res = ec.objectsWithFetchSpecification(fetchSpec); listeEOipDiplSansRn = new NSMutableDictionary(); if (res != null && res.count() > 0) { Enumeration e = res.objectEnumerator(); while (e.hasMoreElements()) { IpDiplSansRn eoIpDiplSansRN = (IpDiplSansRn) e.nextElement(); Integer fspnKey = (Integer) eoIpDiplSansRN.fspnKey(); listeEOipDiplSansRn.setObjectForKey(eoIpDiplSansRN, fspnKey); } } }
// CLAUSE WHERE "UV.ANUNIV || UV.PRDUNIV = ... AND UV.UVC = ... // AND UV.ANUNIV || UV.PRDUNIV = EIA.ANUNIV || EIA.PRDUNIV" UV o� est // inscris l'�tudiant private static EOQualifier qualForUv(String uv, String periode) { // ARGSUV.addObject(uv); NSMutableArray quals = new NSMutableArray(); EOEditingContext myContext = ERXEC.newEditingContext(); EOQualifier qalUv = EOVueInsuv.UVC .eq(uv) .and( EOVueInsuv.EO_ETUDIANT_INSCR_ADM .dot(EOEtudiantInscrAdm.ETU_ID) .eq(EOVueInsuv.ETU_ID)); quals.addObject(qalUv); if (periode != null) { EOQualifier qualPer = EOQualifier.qualifierWithQualifierFormat("anUniv=%@ AND prdUniv=%@", ARGSUV); quals.addObject(qualPer); } EOFetchSpecification spec = null; if (quals.count() == 2) { EOQualifier qual = new EOAndQualifier(quals); spec = new EOFetchSpecification("EOVueInsuv", qual, null); } else { spec = new EOFetchSpecification("EOVueInsuv", qalUv, null); } spec.setUsesDistinct(true); NSArray uvs = myContext.objectsWithFetchSpecification(spec); NSMutableArray etuids = new NSMutableArray(); for (int i = 0; i < uvs.count(); i++) { EOVueInsuv luv = (EOVueInsuv) uvs.objectAtIndex(i); Long etu_id = luv.etuId(); etuids.addObject(etu_id); } EOQualifier fin = ETU_INSCR_ADMS.dot(EOEtudiantInscrAdm.ETU_ID).in(etuids.immutableClone()); return fin; }
/** * Retrieve objects according to the <code>subscriptionsForMessageTypeAndUser</code> fetch * specification. * * @param context The editing context to use * @param messageTypeBinding fetch spec parameter * @param userBinding fetch spec parameter * @return an NSArray of the entities retrieved */ public static NSArray<UserMessageSubscription> subscriptionsForMessageTypeAndUser( EOEditingContext context, String messageTypeBinding, org.webcat.core.User userBinding) { EOFetchSpecification spec = WCFetchSpecification.fetchSpecificationNamed( "subscriptionsForMessageTypeAndUser", "UserMessageSubscription"); NSMutableDictionary<String, Object> bindings = new NSMutableDictionary<String, Object>(); if (messageTypeBinding != null) { bindings.setObjectForKey(messageTypeBinding, "messageType"); } if (userBinding != null) { bindings.setObjectForKey(userBinding, "user"); } spec = spec.fetchSpecificationWithQualifierBindings(bindings); NSArray<UserMessageSubscription> objects = objectsWithFetchSpecification(context, spec); if (log.isDebugEnabled()) { log.debug( "subscriptionsForMessageTypeAndUser(ec" + ", " + messageTypeBinding + ", " + userBinding + "): " + objects); } return objects; }
public static NSArray fetchVPersonnelActuelEnses( EOEditingContext editingContext, EOQualifier qualifier, NSArray sortOrderings) { EOFetchSpecification fetchSpec = new EOFetchSpecification(_EOVPersonnelActuelEns.ENTITY_NAME, qualifier, sortOrderings); fetchSpec.setIsDeep(true); NSArray eoObjects = (NSArray) editingContext.objectsWithFetchSpecification(fetchSpec); return eoObjects; }
public static NSArray<edu.umich.marketplace.eof.Category> fetchTopCategories( EOEditingContext editingContext, NSDictionary<String, Object> bindings) { EOFetchSpecification fetchSpec = EOFetchSpecification.fetchSpecificationNamed("topCategories", "Category"); fetchSpec = fetchSpec.fetchSpecificationWithQualifierBindings(bindings); return (NSArray<edu.umich.marketplace.eof.Category>) editingContext.objectsWithFetchSpecification(fetchSpec); }
/* (non-Javadoc) * * Overriding super here so we can grab a fetch limit if specified in the EOFetchSpecification. * * @see com.webobjects.jdbcadaptor.JDBCExpression#prepareSelectExpressionWithAttributes(NSArray, boolean, EOFetchSpecification) */ @Override public void prepareSelectExpressionWithAttributes( NSArray<EOAttribute> attributes, boolean lock, EOFetchSpecification fetchSpec) { if (!fetchSpec.promptsAfterFetchLimit()) { _fetchLimit = fetchSpec.fetchLimit(); } super.prepareSelectExpressionWithAttributes(attributes, lock, fetchSpec); }
public static NSArray fetchIndividuUlrs( EOEditingContext editingContext, EOQualifier qualifier, NSArray sortOrderings) { EOFetchSpecification fetchSpec = new EOFetchSpecification(_IndividuUlr.ENTITY_NAME, qualifier, sortOrderings); fetchSpec.setIsDeep(true); NSArray eoObjects = (NSArray) editingContext.objectsWithFetchSpecification(fetchSpec); return eoObjects; }
public static NSArray<org.pachyderm.foundation.eof.PDBPresentation> fetchAllPresentations( EOEditingContext editingContext, NSDictionary<String, Object> bindings) { EOFetchSpecification fetchSpec = EOFetchSpecification.fetchSpecificationNamed( "allPresentations", _PDBPresentation.ENTITY_NAME); fetchSpec = fetchSpec.fetchSpecificationWithQualifierBindings(bindings); return (NSArray<org.pachyderm.foundation.eof.PDBPresentation>) editingContext.objectsWithFetchSpecification(fetchSpec); }
// V�rification afin de savoir si le user connect� est un �tudiant private static NSArray lesEtudiants(EOEditingContext myContext, EOIndividu etudiant) { EOQualifier qalCons = ETU_INSCR_ADMS.dot(EOEtudiantInscrAdm.ETU_ID).eq(etudiant.indivId()); EOFetchSpecification spec = new EOFetchSpecification( "EOIndividu", qalCons, new NSArray(new Object[] {SORT_NOM_ASC, SORT_PRENOM_ASC})); spec.setUsesDistinct(true); NSArray etu = myContext.objectsWithFetchSpecification(spec); return etu; }
public static void fetchDisplayGroup( EODisplayGroup table, EOQualifier leQualifier, NSArray leSort, boolean selectsFirst) { String entityName = table.dataSource().classDescriptionForObjects().entityName(); table.setSelectsFirstObjectAfterFetch(selectsFirst); EOFetchSpecification leFetch = new EOFetchSpecification(entityName, leQualifier, leSort); leFetch.setUsesDistinct(true); leFetch.setRefreshesRefetchedObjects(true); ((EODistributedDataSource) table.dataSource()).setFetchSpecification(leFetch); table.fetch(); }
public static NSArray<edu.umich.marketplace.eof.Category> fetchSubCategories( EOEditingContext editingContext, edu.umich.marketplace.eof.Category parentBinding) { EOFetchSpecification fetchSpec = EOFetchSpecification.fetchSpecificationNamed("subCategories", "Category"); NSMutableDictionary<String, Object> bindings = new NSMutableDictionary<String, Object>(); bindings.takeValueForKey(parentBinding, "parent"); fetchSpec = fetchSpec.fetchSpecificationWithQualifierBindings(bindings); return (NSArray<edu.umich.marketplace.eof.Category>) editingContext.objectsWithFetchSpecification(fetchSpec); }
public static NSArray<ERSyncClientDevice> fetchERSyncClientDevices( EOEditingContext editingContext, EOQualifier qualifier, NSArray<EOSortOrdering> sortOrderings) { EOFetchSpecification fetchSpec = new EOFetchSpecification(_ERSyncClientDevice.ENTITY_NAME, qualifier, sortOrderings); fetchSpec.setIsDeep(true); NSArray<ERSyncClientDevice> eoObjects = (NSArray<ERSyncClientDevice>) editingContext.objectsWithFetchSpecification(fetchSpec); return eoObjects; }
public static NSArray<Group> fetchGroups( EOEditingContext editingContext, EOQualifier qualifier, NSArray<EOSortOrdering> sortOrderings) { EOFetchSpecification fetchSpec = new EOFetchSpecification(_Group.ENTITY_NAME, qualifier, sortOrderings); fetchSpec.setIsDeep(true); NSArray<Group> eoObjects = (NSArray<Group>) editingContext.objectsWithFetchSpecification(fetchSpec); return eoObjects; }
public static NSArray<org.pachyderm.foundation.eof.PDBPresentation> fetchPresentationNamesAndIdentities(EOEditingContext editingContext, String authorBinding) { EOFetchSpecification fetchSpec = EOFetchSpecification.fetchSpecificationNamed( "presentationNamesAndIdentities", _PDBPresentation.ENTITY_NAME); NSMutableDictionary<String, Object> bindings = new NSMutableDictionary<String, Object>(); bindings.takeValueForKey(authorBinding, "author"); fetchSpec = fetchSpec.fetchSpecificationWithQualifierBindings(bindings); return (NSArray<org.pachyderm.foundation.eof.PDBPresentation>) editingContext.objectsWithFetchSpecification(fetchSpec); }
public void initCustomerIssues() { EOFetchSpecification fs; NSDictionary bindings = null; Session s = (Session) session(); NSMutableArray qual = new NSMutableArray(); NSMutableArray qual1 = new NSMutableArray(); EOQualifier qualifier; // 'Open items' // qual.addObject(EOQualifier.qualifierWithQualifierFormat("bugStatus !='CLOSED'", null)); // qual.addObject(EOQualifier.qualifierWithQualifierFormat("bugStatus !='RESOLVED'", null)); // qual.addObject(EOQualifier.qualifierWithQualifierFormat("bugStatus !='VERIFIED'", null)); // Taser qual1.addObject(EOQualifier.qualifierWithQualifierFormat("type = 'Prospect'", null)); qual1.addObject(EOQualifier.qualifierWithQualifierFormat("type = 'Customer'", null)); qual.addObject(new EOOrQualifier(qual1)); // Single Customer if (customerId() != null) { qual.addObject(EOQualifier.qualifierWithQualifierFormat("bugId=" + customerId(), null)); showProductSelector = true; } else { // Products if (selectedProducts.count() == 1) { if (selectedProducts.contains("Trusted Access")) { qual.addObject( EOQualifier.qualifierWithQualifierFormat( "product.productName = 'Device: Trusted Access'", null)); } else if (selectedProducts.contains("Secure Storage")) { qual.addObject( EOQualifier.qualifierWithQualifierFormat( "product.productName = 'Device: Secure Storage'", null)); } } } Object orderings[] = { EOSortOrdering.sortOrderingWithKey("version", EOSortOrdering.CompareAscending), EOSortOrdering.sortOrderingWithKey("targetMilestone", EOSortOrdering.CompareAscending), EOSortOrdering.sortOrderingWithKey( "priority", EOSortOrdering.CompareCaseInsensitiveAscending), EOSortOrdering.sortOrderingWithKey( "bugSeverity", EOSortOrdering.CompareCaseInsensitiveAscending), }; fs = new EOFetchSpecification("Item", new EOAndQualifier(qual), new NSArray(orderings)); fs.setRefreshesRefetchedObjects(true); ((EODatabaseDataSource) customerIssueDisplayGroup.dataSource()).setFetchSpecification(fs); customerIssueDisplayGroup.fetch(); }
public static NSArray fetchData( EOEditingContext context, String leNomTable, EOQualifier leQualifier, EOSortOrdering sortOrdering) { EOFetchSpecification myFetch = new EOFetchSpecification( leNomTable, leQualifier, sortOrdering == null ? null : new NSArray<EOSortOrdering>(sortOrdering)); myFetch.setUsesDistinct(true); return context.objectsWithFetchSpecification(myFetch); }
// V�rification afin de savoir si le user connect� est conseill� d'un // �tudiant public static NSArray lesConseillers(EOEditingContext myContext, String conseil) { NSArray cons = new NSArray(); if (conseil != null) { EOQualifier qalCons = ETU_INSCR_ADMS.dot(EOEtudiantInscrAdm.CONSEILLER_ID).eq(Long.valueOf(conseil)); EOFetchSpecification spec = new EOFetchSpecification( "EOIndividu", qalCons, new NSArray(new Object[] {SORT_NOM_ASC, SORT_PRENOM_ASC})); spec.setUsesDistinct(true); cons = myContext.objectsWithFetchSpecification(spec); } return cons; }
public static NSArray<edu.umich.marketplace.eof.Category> fetchTopCategories( EOEditingContext editingContext) { EOFetchSpecification fetchSpec = EOFetchSpecification.fetchSpecificationNamed("topCategories", "Category"); return (NSArray<edu.umich.marketplace.eof.Category>) editingContext.objectsWithFetchSpecification(fetchSpec); }
public static NSArray<org.pachyderm.foundation.eof.PDBPresentation> fetchAllPresentations( EOEditingContext editingContext) { EOFetchSpecification fetchSpec = EOFetchSpecification.fetchSpecificationNamed( "allPresentations", _PDBPresentation.ENTITY_NAME); return (NSArray<org.pachyderm.foundation.eof.PDBPresentation>) editingContext.objectsWithFetchSpecification(fetchSpec); }
/** * Retrieves the first object that matches a set of keys and values, when sorted with the * specified sort orderings. * * @param context The editing context to use * @param sortOrderings the sort orderings * @param keysAndValues a dictionary of keys and values to match * @return the first entity that was retrieved, or null if there was none */ public static UserMessageSubscription firstObjectMatchingValues( EOEditingContext context, NSArray<EOSortOrdering> sortOrderings, NSDictionary<String, Object> keysAndValues) { @SuppressWarnings("unchecked") EOFetchSpecification fspec = new WCFetchSpecification( ENTITY_NAME, EOQualifier.qualifierToMatchAllValues(keysAndValues), sortOrderings); fspec.setFetchLimit(1); NSArray<UserMessageSubscription> objects = objectsWithFetchSpecification(context, fspec); if (objects.count() == 0) { return null; } else { return objects.objectAtIndex(0); } }
public static NSArray fetchAll( EOEditingContext editingContext, EOQualifier qualifier, NSArray sortOrderings, boolean distinct, int fetchLimit, DTEOEditingContextHandler handler) { EOFetchSpecification fetchSpec = new EOFetchSpecification(ENTITY_NAME, qualifier, sortOrderings); fetchSpec.setIsDeep(true); fetchSpec.setUsesDistinct(distinct); fetchSpec.setFetchLimit(fetchLimit); if (handler != null) { fetchSpec.setPromptsAfterFetchLimit(true); editingContext.setMessageHandler(handler); } return (NSArray) editingContext.objectsWithFetchSpecification(fetchSpec); }
/** * Overriding super here so we can grab a fetch range or fetch limit if specified in the * EOFetchSpecification. If a fetchRange method returning an NSRange exists in the * EOFetchSpecification subclass being passed in, the the fetchLimit will be ignored. * * @see com.webobjects.jdbcadaptor.JDBCExpression#prepareSelectExpressionWithAttributes(NSArray, * boolean, EOFetchSpecification) */ @Override public void prepareSelectExpressionWithAttributes( NSArray<EOAttribute> attributes, boolean lock, EOFetchSpecification fetchSpec) { try { _fetchRange = _fetchRangeSelector.invoke(fetchSpec); // We will get an error when not using our custom ERXFetchSpecification subclass // We could have added ERExtensions to the classpath and checked for instanceof, but I // thought // this is a little cleaner since people may be using this PlugIn and not Wonder in some // legacy apps. } catch (IllegalArgumentException e) {; } catch (IllegalAccessException e) {; } catch (InvocationTargetException e) {; } catch (NoSuchMethodException e) {; } // Only check for fetchLimit of fetchRange is not provided. if (_fetchRange == null && !fetchSpec.promptsAfterFetchLimit()) { _fetchLimit = fetchSpec.fetchLimit(); } super.prepareSelectExpressionWithAttributes(attributes, lock, fetchSpec); }
/** * Ensures we don't have references to EOs before using this in the background thread. * * @param fs * @return a clone of the fetchSpecification with the EOQualifier converted to a schema-based * qualifier or the same {@link EOFetchSpecification} if there is no qualifier. */ private EOFetchSpecification schemaBasedFetchSpecification( EOFetchSpecification fetchSpecification) { EOQualifier q = fetchSpecification.qualifier(); if (q != null) { // Clone the fetchSpec fetchSpecification = (EOFetchSpecification) fetchSpecification.clone(); EOEditingContext ec = ERXEC.newEditingContext(); ec.lock(); try { EOEntity entity = ERXEOAccessUtilities.entityMatchingString(ec, fetchSpecification.entityName()); // Convert the qualifier to a schema-based qualifier q = entity.schemaBasedQualifier(q); fetchSpecification.setQualifier(q); } finally { ec.unlock(); } } // ~ if (q != null) return fetchSpecification; }
// Préviens de charger la liste des diplomes avec RN ... et celle sans RN, pour l'année en cours // à chaque refetch, on raffraichit avec les datas de la base... public void chargerDiplRN() { NSArray bindings = new NSArray(new Object[] {cptLogin, getFannKey()}); EOQualifier qualifier = EOQualifier.qualifierWithQualifierFormat("cptLogin = %@ and fannKey = %@", bindings); EOSortOrdering ordreDipl = EOSortOrdering.sortOrderingWithKey("diplome", EOSortOrdering.CompareAscending); NSArray sortOrderings = new NSArray(new Object[] {ordreDipl}); // la liste des diplomes qui n'autorisent pas les RN par le Web EOFetchSpecification fetchSpec = new EOFetchSpecification("VDiplomeSansRn", qualifier, sortOrderings); fetchSpec.setRefreshesRefetchedObjects(true); EOEditingContext ec = maSession.defaultEditingContext(); listeDiplSansRN = ec.objectsWithFetchSpecification(fetchSpec); // la liste des diplomes qui autorisent les RN par le Web fetchSpec = new EOFetchSpecification("VDiplomeAvecRn", qualifier, sortOrderings); fetchSpec.setRefreshesRefetchedObjects(true); listeDiplAvecRN = ec.objectsWithFetchSpecification(fetchSpec); }
private void updateEodHabilitations() { boolean edtCreateur = ((Boolean) app.userInfo("edtCreateur")).booleanValue(); NSArray<Object> droits = (NSArray<Object>) app.userInfo("droits"); if (!edtCreateur && (droits == null || droits.count() == 0)) { eodHabilitations.setObjectArray(null); myView.getMyEOTableHabilitations().updateData(); return; } String grade = myView.getTfGrade().getText(); String diplome = myView.getTfDiplome().getText(); NSMutableArray<EOQualifier> sumQualifiers = new NSMutableArray<EOQualifier>(); if (!diplome.equals("")) { sumQualifiers.addObject( EOQualifier.qualifierWithQualifierFormat( FormationHabilitation.FORMATION_SPECIALISATION_KEY + "." + FormationSpecialisation.SCOL_FORMATION_DIPLOME_KEY + "." + FormationDiplome.FDIP_ABREVIATION_KEY + " caseInsensitiveLike '*" + diplome + "*'" + " or " + FormationHabilitation.FORMATION_SPECIALISATION_KEY + "." + FormationSpecialisation.SCOL_FORMATION_DIPLOME_KEY + "." + FormationDiplome.FDIP_ABREVIATION_KEY + " caseInsensitiveLike '*" + diplome + "*'", null)); } if (!grade.equals("")) { sumQualifiers.addObject( EOQualifier.qualifierWithQualifierFormat( FormationHabilitation.FORMATION_SPECIALISATION_KEY + "." + FormationSpecialisation.SCOL_FORMATION_DIPLOME_KEY + "." + FormationDiplome.FGRA_CODE_KEY + " caseInsensitiveLike '*" + grade + "*'", null)); } sumQualifiers.addObject( EOQualifier.qualifierWithQualifierFormat( FormationHabilitation.FANN_KEY_KEY + " = %@", new NSArray<Object>( ((FormationAnnee) myView.getCbAnnee().getSelectedItem()).fannKey()))); // si edtCreateur : peut voir tous les diplomes if (!edtCreateur) { sumQualifiers.addObject( new EOKeyValueQualifier( FormationHabilitation.DROIT_DIPLOMES_KEY + "." + ScolDroitDiplome.DLOG_KEY_KEY, EOKeyValueQualifier.QualifierOperatorEqual, droits.objectAtIndex(0))); sumQualifiers.addObject( new EOKeyValueQualifier( FormationHabilitation.DROIT_DIPLOMES_KEY + "." + ScolDroitDiplome.DDIP_EDT_KEY, EOKeyValueQualifier.QualifierOperatorEqual, "A")); } EOQualifier totalQualifier = new EOAndQualifier(sumQualifiers); EOFetchSpecification myFetch = new EOFetchSpecification(FormationHabilitation.ENTITY_NAME, totalQualifier, null); myFetch.setUsesDistinct(true); myFetch.setRefreshesRefetchedObjects(true); eodHabilitations.setObjectArray(ec.objectsWithFetchSpecification(myFetch)); myView.getMyEOTableHabilitations().updateData(); }
// changer la valeur dans la base de l'occurence concernée de l'entite IP_BILANRN_OK // SSI la valeur a été changé par l'utilisateur !!! private void setEtatRnAff(boolean semImpair, Integer nouvValSessionAutorn) { EOGenericRecord leDiplSemCourant; if (semImpair) leDiplSemCourant = leDiplSemCourantImpair; else leDiplSemCourant = leDiplSemCourantPair; int ancValSessionAutorn = getEtatChoixAutorn(semImpair); if (ancValSessionAutorn != nouvValSessionAutorn.intValue()) { // alors on a changé qq chose String diplome = ((Session) session()).monApp.recuperer1String(leDiplSemCourant, "diplome"); String mparLibelle = ((Session) session()).monApp.recuperer1String(leDiplSemCourant, "mparLibelle"); int msemOrdre = ((Session) session()).monApp.recuperer1int(leDiplSemCourant, "msemOrdre"); NSLog.out.appendln( "On change l'état pour " + diplome + ", " + mparLibelle + " sem." + msemOrdre + " : passage à " + nouvValSessionAutorn); // MAJ des relationsChips... pour suivre l’ajout des objets // catSelected.addObjectToBothSidesOfRelationshipWithKey(itemEdit,"items"); // est-ce que l'on a déjà un EO pour l'entite IP_BILANRN_OK qui serait associée à ce // "leDiplSemCourantImpair" ? Integer mrsemKey = (Integer) leDiplSemCourant.valueForKey("mrsemKey"); Integer fannKey = new Integer(((Session) session()).getAnneeEnCours()); EOEditingContext ec = ((Session) session()).defaultEditingContext(); Integer etatAutoRN = (Integer) leDiplSemCourant.valueForKey("rnaffEtat"); if (etatAutoRN == null) { // non : créer le nouvel EO et l'insérer... IpBilanrnOk etatAutorn = new IpBilanrnOk(); etatAutorn.setFannKey(fannKey); etatAutorn.setMrsemKey(mrsemKey); etatAutorn.setRnaffEtat(nouvValSessionAutorn); ec.insertObject(etatAutorn); } else { // oui : modifier le EO... en commençant par le fetcher... NSArray bindings = new NSArray(new Object[] {fannKey, mrsemKey}); EOQualifier qualifier = EOQualifier.qualifierWithQualifierFormat("fannKey = %@ and mrsemKey = %@", bindings); EOFetchSpecification fetchSpec = new EOFetchSpecification("IpBilanrnOk", qualifier, null); fetchSpec.setRefreshesRefetchedObjects(true); NSArray res = ec.objectsWithFetchSpecification(fetchSpec); if (res != null && res.count() > 0) { IpBilanrnOk etatAutorn = (IpBilanrnOk) res.objectAtIndex(0); etatAutorn.setRnaffEtat(nouvValSessionAutorn); } } // sauver le tout... ec.saveChanges(); // TODO : marche pas ci-dessous... faire un reload ! // leDiplSemCourant.takeStoredValueForKey(new Integer(sessionAutorn), "rnaffEtat"); monAutornDiplCtrlr.reloaderVueAutoRN(mrsemKey); } }
// SELECT des �tudiants master public static NSArray EtudiantsMST( EOEditingContext myContext, NSDictionary bindinds, Recherche searchMsg) { String periode = (String) bindinds.valueForKey("periode"); String diplome = (String) bindinds.valueForKey("diplome"); String prdDiplome = (String) bindinds.valueForKey("prdDiplome"); String niveau = (String) bindinds.valueForKey("niveau"); String uv = (String) bindinds.valueForKey("uv"); String nom = (String) bindinds.valueForKey("nom"); String prenom = (String) bindinds.valueForKey("prenom"); String numero = (String) bindinds.valueForKey("numero"); String idConseiller = (String) bindinds.valueForKey("idConseiller"); NSMutableArray quals = new NSMutableArray(); quals.addObject(typeEmail()); quals.addObject(qualCivilite()); quals.addObject(qualEia()); // quals.addObject(refMail()); if ((StringCtrl.isEmpty(nom)) && (StringCtrl.isEmpty(prenom)) && ((StringCtrl.isEmpty(numero))) && (periode == null || (StringCtrl.isEmpty(periode))) && (diplome == null || (StringCtrl.isEmpty(diplome))) && (niveau == null || (StringCtrl.isEmpty(niveau))) && (uv == null || (StringCtrl.isEmpty(uv))) && ((StringCtrl.isEmpty(idConseiller)))) { searchMsg.setSearchMsg("Veuillez affiner la recherche, trop de donn�es remont�es"); return NSArray.EmptyArray; } if (lesConseillers(myContext, idConseiller).count() != 0) { quals.addObject(qualForConseiller(myContext, idConseiller)); } else { if (!(StringCtrl.isEmpty(nom))) { NSMutableArray qua = new NSMutableArray(); qua.addObject(qualForNomLike(nom)); qua.addObject(qualForNomNaisLike(nom)); EOQualifier nor = new EOOrQualifier(qua); quals.addObject(nor); } if (!(StringCtrl.isEmpty(prenom))) { String deb = prenom.substring(0, 1).toUpperCase(); String rest = prenom.substring(1, prenom.length()).toLowerCase(); prenom = deb + rest; quals.addObject(qualForPrenomLike(prenom)); } if (!(StringCtrl.isEmpty(numero))) { quals.addObject(qualNumero(numero)); } if (periode != null && !(StringCtrl.isEmpty(periode))) { quals.addObject(qualForPeriode(periode)); } if (diplome != null && !(StringCtrl.isEmpty(diplome))) { quals.addObject(qualDiplome(diplome)); } if (prdDiplome != null && !(StringCtrl.isEmpty(prdDiplome))) { quals.addObject(qualPrdDiplome(prdDiplome)); } if (niveau != null && !(StringCtrl.isEmpty(niveau))) { quals.addObject(qualMST(niveau, diplome, prdDiplome)); } if (uv != null && !(StringCtrl.isEmpty(uv))) { quals.addObject(qualForUv(uv, periode)); } } EOQualifier qual = new EOAndQualifier(quals); EOFetchSpecification spec = new EOFetchSpecification( "EOIndividu", qual, new NSArray(new Object[] {SORT_NOM_ASC, SORT_PRENOM_ASC})); spec.setPrefetchingRelationshipKeyPaths(preFetch()); spec.setUsesDistinct(true); NSArray disp = myContext.objectsWithFetchSpecification(spec); return disp; }
/** * Generates the sql string for the given sql expression. Bulk of the logic for generating the * sub-query is in this method. * * @param e a given sql expression * @return sql string for the current sub-query. */ public String sqlStringForSQLExpression(EOSQLExpression e) { StringBuffer sb = new StringBuffer(); if (attributeName != null) sb.append(e.sqlStringForAttributeNamed(attributeName)); else { EOAttribute pk = (EOAttribute) e.entity().primaryKeyAttributes().lastObject(); sb.append(e.sqlStringForAttribute(pk)); } sb.append(" IN ( "); EOEntity entity = entityName == null ? e.entity() : e.entity().model().modelGroup().entityNamed(entityName); EOFetchSpecification fs = new EOFetchSpecification(entity.name(), qualifier, null, false, true, null); if (qualifier != null) { qualifier = EOQualifierSQLGeneration.Support._schemaBasedQualifierWithRootEntity(qualifier, entity); } if (qualifier != fs.qualifier()) { fs.setQualifier(qualifier); } // ASSUME: This makes a few assumptions, if anyone can figure out a fool // proof way that would be nice to get the model // Note you can't use: // EOAdaptor.adaptorWithModel(e.entity().model()).expressionFactory(); // as this creates a // EODatabaseContext context = EODatabaseContext.registeredDatabaseContextForModel( entity.model(), EOObjectStoreCoordinator.defaultCoordinator()); EOSQLExpressionFactory factory = context.database().adaptor().expressionFactory(); NSArray subAttributes = destinationAttName != null ? new NSArray(entity.attributeNamed(destinationAttName)) : entity.primaryKeyAttributes(); EOSQLExpression subExpression = factory.expressionForEntity(entity); // Arroz: Having this table identifier replacement causes serious // problems if you have more than a table being processed in the subquery. Disabling // it will apparently not cause problems, because t0 inside the subquery is not // the same t0 outside it. // subExpression.aliasesByRelationshipPath().setObjectForKey("t1", ""); subExpression.setUseAliases(true); subExpression.prepareSelectExpressionWithAttributes(subAttributes, false, fs); // EOSQLExpression // expression=factory.selectStatementForAttributes(entity.primaryKeyAttributes(), // false, fs, entity); for (Enumeration bindEnumeration = subExpression.bindVariableDictionaries().objectEnumerator(); bindEnumeration.hasMoreElements(); ) { e.addBindVariableDictionary((NSDictionary) bindEnumeration.nextElement()); } // sb.append(ERXStringUtilities.replaceStringByStringInString("t0.", // "t1.", subExpression.statement())); sb.append(subExpression.statement()); sb.append(" ) "); return sb.toString(); }