package de.bwlehrpool.bwlp_guac; import org.apache.guacamole.net.auth.simple.SimpleConnection; import org.apache.guacamole.protocol.GuacamoleConfiguration; public class WrappedConnection extends SimpleConnection { private static final String DEFAULT_ROOT_CONNECTION_GROUP = "ROOT"; private final AvailableClient ac; private boolean valid = true; private BwlpUserContext context; public WrappedConnection(String name, AvailableClient ac) { super(name, name, makeConfig(ac)); this.ac = ac.clone(); setParentIdentifier(DEFAULT_ROOT_CONNECTION_GROUP); } private static GuacamoleConfiguration makeConfig(AvailableClient ac) { return ac.toGuacConfig(); } public boolean checkConnection(int retries) { return this.valid && ac.checkConnection(retries); } public boolean isValid() { return this.valid; } public void invalidate() { this.valid = false; if (this.context != null) { this.context.clearConnections(); this.context = null; } } public void setContext(BwlpUserContext context) { this.context = context; } }