
eu.clarussecure.proxy.protection.modules.encryption.SECapabilities Maven / Gradle / Ivy
The newest version!
package eu.clarussecure.proxy.protection.modules.encryption;
import java.util.Map;
import java.util.Set;
import eu.clarussecure.proxy.spi.Capabilities;
import eu.clarussecure.proxy.spi.Mode;
import eu.clarussecure.proxy.spi.Operation;
import eu.clarussecure.proxy.spi.protection.ProtectionModuleCapabilities;
import eu.clarussecure.proxy.spi.security.policy.SecurityPolicy;
public class SECapabilities implements ProtectionModuleCapabilities {
private final Map> datasetCRUDOperations = Capabilities
.toMap(new Enum>[][] { { Operation.CREATE, Mode.BUFFERING }, { Operation.READ, Mode.STREAMING },
{ Operation.UPDATE }, { Operation.DELETE, Mode.STREAMING } });
private final Map> recordCRUDOperations = Capabilities.toMap(new Enum>[][] {
{ Operation.CREATE }, { Operation.READ, Mode.STREAMING }, { Operation.UPDATE }, { Operation.DELETE } });
@Override
public Set getSupportedCRUDOperations(boolean wholeDataset) {
return wholeDataset ? datasetCRUDOperations.keySet() : recordCRUDOperations.keySet();
}
@Override
public Set getSupportedProcessingModes(boolean wholeDataset, Operation operation) {
return wholeDataset ? datasetCRUDOperations.get(operation) : recordCRUDOperations.get(operation);
}
@Override
public Mode getPreferredProcessingMode(boolean wholedataset, Operation operation, SecurityPolicy securityPolicy) {
Set modes = getSupportedProcessingModes(wholedataset, operation);
if (modes.size() <= 1) {
return modes.isEmpty() ? null : modes.iterator().next();
}
return null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy