Skip to content

Commit

Permalink
Add an identity qualifier and a builder for a list of identity qualif…
Browse files Browse the repository at this point in the history
…iers.
  • Loading branch information
spelletier committed May 15, 2016
1 parent adf5a81 commit 06689a4
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions Frameworks/Core/ERExtensions/Sources/er/extensions/eof/ERXQ.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.util.Enumeration;
import java.util.NoSuchElementException;

import com.webobjects.eoaccess.EOEntity;
import com.webobjects.eocontrol.EOAndQualifier;
import com.webobjects.eocontrol.EOKeyValueQualifier;
import com.webobjects.eocontrol.EONotQualifier;
Expand Down Expand Up @@ -363,6 +364,42 @@ public static <T> ERXKeyComparisonQualifier equals(ERXKey<T> key, ERXKey<T> valu
return new ERXKeyComparisonQualifier(key.key(), ERXQ.EQ, value.key());
}


/**
* Return a OR qualifier of identity qualifier using each value from the param array
*
* @param valueArray
* the array of values
* @return an EOQualifier
*
* @author Samuel Pelletier
* @since May 56, 2016
*/
public static EOQualifier isIn(NSArray<? extends ERXGenericRecord> valueArray) {
NSMutableArray<EOQualifier> qualifiers = new NSMutableArray<>();
for (ERXGenericRecord value : valueArray) {
qualifiers.add(is(value));
}
return new ERXOrQualifier(qualifiers);
}

/**
* Return an identity qualifier to use with ERXExistsQualifier for example
*
* @param value
* the value
* @return an EOQualifier
*
* @author Samuel Pelletier
* @since May 56, 2016
*/
public static EOQualifier is(ERXGenericRecord value) {
EOEntity entity = value.entity();
NSDictionary<String, Object> primaryKeyDictionary = value.rawPrimaryKeyDictionary(false /* inTransaction */);
EOQualifier thatAreThis = entity.qualifierForPrimaryKey(primaryKeyDictionary);
return thatAreThis;
}

/**
* Equivalent to new ERXKeyValueQualifier(key,
* EOQualifier.QualifierOperatorEqual, value);
Expand Down

0 comments on commit 06689a4

Please sign in to comment.