package com.mobilesorcery.sdk.capabilities.core.permissions;
import java.text.MessageFormat;
import java.util.List;
import com.mobilesorcery.sdk.capabilities.core.AbstractChangeRequest;
import com.mobilesorcery.sdk.core.MoSyncProject;
import com.mobilesorcery.sdk.core.Util;
import com.mobilesorcery.sdk.core.security.IApplicationPermissions;
public class ApplicationPermissionsChangeRequest extends AbstractChangeRequest {
private List<String> missingPermissions;
private IApplicationPermissions wc;
public ApplicationPermissionsChangeRequest(MoSyncProject project, List<String> missingPermissions) {
super(project);
this.missingPermissions = missingPermissions;
}
/**
* Returns a working copy for <code>IChangeRequestEditor</code>s
* to use. (NOTE: Not yet implemented)
* @return
*/
public IApplicationPermissions getWorkingCopy() {
if (wc == null) {
wc = getProject().getPermissions().createWorkingCopy();
wc.setRequestedPermissions(missingPermissions, true);
}
return wc;
}
public void apply() {
IApplicationPermissions wc = getWorkingCopy();
getProject().getPermissions().apply(wc);
}
public String toString() {
String permissionList = Util.join(missingPermissions.toArray(new String[0]), ", ", 0, Math.min(3, missingPermissions.size() - 1));
String ellipsis = missingPermissions.size() > 4 ? "..." : "";
return MessageFormat.format("Add {0} permissions: {1}", missingPermissions.size(), permissionList + ellipsis);
}
}