package com.mobilesorcery.sdk.capabilities.core.internal;
import java.util.ArrayList;
import com.mobilesorcery.sdk.capabilities.core.CompoundChangeRequest;
import com.mobilesorcery.sdk.capabilities.core.ICapabilitiesMatcher;
import com.mobilesorcery.sdk.capabilities.core.IChangeRequest;
import com.mobilesorcery.sdk.core.ICapabilities;
import com.mobilesorcery.sdk.core.MoSyncProject;
public class DefaultCapabilitiesMatcher implements ICapabilitiesMatcher {
private ArrayList<ICapabilitiesMatcher> matchers = new ArrayList<ICapabilitiesMatcher>();
public DefaultCapabilitiesMatcher() {
}
public IChangeRequest match(MoSyncProject project, ICapabilities requestedCapabilites) {
ArrayList<IChangeRequest> changeRequests = new ArrayList<IChangeRequest>();
for (ICapabilitiesMatcher matcher : matchers) {
IChangeRequest changeRequest = matcher.match(project, requestedCapabilites);
if (changeRequest != null) {
changeRequests.add(changeRequest);
}
}
return changeRequests.isEmpty() ? null : new CompoundChangeRequest(project, changeRequests);
}
public void add(ICapabilitiesMatcher matcher) {
matchers.add(matcher);
}
}