package org.reldb.rel.v0.storage.relvars.external.relvar;
import org.reldb.rel.v0.storage.relvars.external.Info;
import org.reldb.rel.v0.storage.relvars.external.InfoComponent;
import org.reldb.rel.v0.storage.relvars.external.InfoComponentOption;
public class InfoRELVAR extends Info {
@Override
public String getIdentifier() {
return "RELVAR";
}
@Override
public String getDescription() {
return "Connection to a specified relation-valued variable in a Rel database.";
}
@Override
public String getConnectionStringDocumentation() {
return
"Examples:\n" +
"\tVAR myvar EXTERNAL RELVAR \"host,reluser,reluser,relvar\";\n" +
"\tVAR myvar EXTERNAL RELVAR \"host,reluser,reluser,relvar,1234\"; // port is 1234\n" +
"DUP_COUNT and AUTOKEY are ignored. DUP_REMOVE is the default.";
}
private static class InfoComponentREL extends InfoComponent {
private String documentation;
InfoComponentREL(int componentNumber, String documentation) {
super(componentNumber);
this.documentation = documentation;
}
@Override
public boolean isOptional() {
return false;
}
@Override
public boolean isAFile() {
return false;
}
@Override
public String[] getAppropriateFileExtension() {
return null;
}
@Override
public InfoComponentOption[] getOptions() {
return null;
}
@Override
public String getDocumentation() {
return documentation;
}
}
@Override
public InfoComponent[] getConnectionStringComponents() {
return new InfoComponent[] {
new InfoComponentREL(0, "Host IP or domain name"),
new InfoComponentREL(1, "Rel user name"),
new InfoComponentREL(2, "Rel password"),
new InfoComponentREL(3, "Rel relation-valued variable name"),
new InfoComponentREL(4, "Host port") {
public boolean isOptional() {return true;}
}
};
}
@Override
public boolean isGuaranteedUnique() {
return true;
}
}