package org.josso.gateway.identity.service.store.virtual.rule;
import java.util.Collection;
import java.util.Iterator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.josso.gateway.identity.service.store.virtual.BaseUserExistsMappingRule;
import org.josso.gateway.identity.service.store.virtual.UserExistsMappingRule;
import org.josso.gateway.identity.service.store.virtual.UserExistsOutcome;
/**
* Returns successful user exists outcome if userExists was successful
* on any source.
*
* @org.apache.xbean.XBean element="user-exists-on-any-source"
*/
public class UserExistsOnAnySource extends BaseUserExistsMappingRule implements UserExistsMappingRule {
private static final Log logger = LogFactory.getLog(UserExistsOnAnySource.class);
public UserExistsOutcome join(Collection<UserExistsOutcome> selectedOutcomes) {
UserExistsOutcome jointOutcome = null;
for (Iterator<UserExistsOutcome> selectedOutcomesIterator = selectedOutcomes.iterator(); selectedOutcomesIterator.hasNext();) {
UserExistsOutcome selectedOutcome = selectedOutcomesIterator.next();
if (selectedOutcome.isExists()) {
jointOutcome = selectedOutcome;
break;
}
}
if (jointOutcome == null && selectedOutcomes != null &&
selectedOutcomes.size() > 0) {
jointOutcome = selectedOutcomes.iterator().next();
}
return jointOutcome;
}
}