package com.subgraph.orchid.directory;
import java.util.HashSet;
import java.util.Set;
import com.subgraph.orchid.RouterStatus;
import com.subgraph.orchid.data.HexDigest;
import com.subgraph.orchid.data.IPv4Address;
import com.subgraph.orchid.data.Timestamp;
import com.subgraph.orchid.data.exitpolicy.ExitPorts;
public class DirectoryAuthorityStatus implements RouterStatus {
private String nickname;
private HexDigest identity;
private IPv4Address address;
private int routerPort;
private int directoryPort;
private Set<String> flags = new HashSet<String>();
private HexDigest v3Ident;
void setV1Authority() { }
void setHiddenServiceAuthority() { addFlag("HSDir"); }
void unsetHiddenServiceAuthority() { flags.remove("HSDir"); }
void setBridgeAuthority() { }
void unsetV2Authority() { flags.remove("V2Dir"); }
void setNickname(String name) { nickname = name; }
void setIdentity(HexDigest identity) { this.identity = identity; }
void setAddress(IPv4Address address) { this.address = address; }
void setRouterPort(int port) { this.routerPort = port; }
void setDirectoryPort(int port) { this.directoryPort = port; }
void addFlag(String flag) { this.flags.add(flag); }
void setV3Ident(HexDigest v3Ident) { this.v3Ident = v3Ident; }
DirectoryAuthorityStatus() {
addFlag("Authority");
addFlag("V2Dir");
}
public IPv4Address getAddress() {
return address;
}
public HexDigest getDescriptorDigest() {
return null;
}
public int getDirectoryPort() {
return directoryPort;
}
public int getEstimatedBandwidth() {
return 0;
}
public ExitPorts getExitPorts() {
return null;
}
public HexDigest getIdentity() {
return identity;
}
public boolean hasBandwidth() {
return false;
}
public int getMeasuredBandwidth() {
return 0;
}
public String getNickname() {
return nickname;
}
public Timestamp getPublicationTime() {
return null;
}
public int getRouterPort() {
return routerPort;
}
public String getVersion() {
return null;
}
public boolean hasFlag(String flag) {
return flags.contains(flag);
}
public boolean isDirectory() {
return true;
}
HexDigest getV3Ident() {
return v3Ident;
}
public HexDigest getMicrodescriptorDigest() {
return null;
}
}