
eu.clarussecure.proxy.protocol.plugins.pgsql.PgsqlCapabilities Maven / Gradle / Ivy
The newest version!
package eu.clarussecure.proxy.protocol.plugins.pgsql;
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.protocol.ProtocolCapabilities;
public class PgsqlCapabilities implements ProtocolCapabilities {
private final Map> datasetCRUDOperations = Capabilities
.toMap(new Enum>[][] { { Operation.CREATE, Mode.AS_IT_IS, Mode.BUFFERING, Mode.STREAMING },
{ Operation.READ, Mode.AS_IT_IS, Mode.BUFFERING, Mode.STREAMING },
{ Operation.UPDATE, Mode.AS_IT_IS, Mode.BUFFERING, Mode.STREAMING },
{ Operation.DELETE, Mode.AS_IT_IS, Mode.BUFFERING, Mode.STREAMING } });
private final Map> recordCRUDOperations = Capabilities
.toMap(new Enum>[][] { { Operation.CREATE, Mode.AS_IT_IS, Mode.BUFFERING, Mode.STREAMING },
{ Operation.READ, Mode.AS_IT_IS, Mode.BUFFERING, Mode.STREAMING, Mode.ORCHESTRATION },
{ Operation.UPDATE, Mode.AS_IT_IS, Mode.BUFFERING, Mode.STREAMING },
{ Operation.DELETE, Mode.AS_IT_IS, Mode.BUFFERING, Mode.STREAMING } });
@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 boolean isUserIdentificationRequired() {
return true;
}
@Override
public boolean isUserAuthenticationSupported() {
return true;
}
@Override
public boolean isUserSessionSupported() {
return true;
}
@Override
public boolean isUserSessionSameAsTCPSession() {
return true;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy