📄 setresponse.java
字号:
// Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org)package org.xbill.DNS;import java.util.*;/** * The Response from a query to Cache.lookupRecords() or Zone.findRecords() * @see Cache * @see Zone * * @author Brian Wellington */public class SetResponse {/** * The Cache contains no information about the requested name/type */static final int UNKNOWN = 0;/** * The Zone does not contain the requested name, or the Cache has * determined that the name does not exist. */static final int NXDOMAIN = 1;/** * The Zone contains the name, but no data of the requested type, * or the Cache has determined that the name exists and has no data * of the requested type. */static final int NXRRSET = 2;/** * A delegation enclosing the requested name was found. */static final int DELEGATION = 3;/** * The Cache/Zone found a CNAME when looking for the name. * @see CNAMERecord */static final int CNAME = 4;/** * The Cache/Zone found a DNAME when looking for the name. * @see DNAMERecord */static final int DNAME = 5;/** * The Cache/Zone has successfully answered the question for the * requested name/type/class. */static final int SUCCESSFUL = 6;private static final SetResponse unknown = new SetResponse(UNKNOWN);private static final SetResponse nxdomain = new SetResponse(NXDOMAIN);private static final SetResponse nxrrset = new SetResponse(NXRRSET);private int type;private Object data;privateSetResponse() {}SetResponse(int type, RRset rrset) { if (type < 0 || type > 6) throw new IllegalArgumentException("invalid type"); this.type = type; this.data = rrset;}SetResponse(int type) { if (type < 0 || type > 6) throw new IllegalArgumentException("invalid type"); this.type = type; this.data = null;}static SetResponseofType(int type) { switch (type) { case UNKNOWN: return unknown; case NXDOMAIN: return nxdomain; case NXRRSET: return nxrrset; case DELEGATION: case CNAME: case DNAME: case SUCCESSFUL: SetResponse sr = new SetResponse(); sr.type = type; sr.data = null; return sr; default: throw new IllegalArgumentException("invalid type"); }}voidaddRRset(RRset rrset) { if (data == null) data = new ArrayList(); List l = (List) data; l.add(rrset);}/** Is the answer to the query unknown? */public booleanisUnknown() { return (type == UNKNOWN);}/** Is the answer to the query that the name does not exist? */public booleanisNXDOMAIN() { return (type == NXDOMAIN);}/** Is the answer to the query that the name exists, but the type does not? */public booleanisNXRRSET() { return (type == NXRRSET);}/** Is the result of the lookup that the name is below a delegation? */public booleanisDelegation() { return (type == DELEGATION);}/** Is the result of the lookup a CNAME? */public booleanisCNAME() { return (type == CNAME);}/** Is the result of the lookup a DNAME? */public booleanisDNAME() { return (type == DNAME);}/** Was the query successful? */public booleanisSuccessful() { return (type == SUCCESSFUL);}/** If the query was successful, return the answers */public RRset []answers() { if (type != SUCCESSFUL) return null; List l = (List) data; return (RRset []) l.toArray(new RRset[l.size()]);}/** * If the query encountered a CNAME, return it. */public CNAMERecordgetCNAME() { return (CNAMERecord)((RRset)data).first();}/** * If the query encountered a DNAME, return it. */public DNAMERecordgetDNAME() { return (DNAMERecord)((RRset)data).first();}/** * If the query hit a delegation point, return the NS set. */public RRsetgetNS() { return (RRset)data;}/** Prints the value of the SetResponse */public StringtoString() { switch (type) { case UNKNOWN: return "unknown"; case NXDOMAIN: return "NXDOMAIN"; case NXRRSET: return "NXRRSET"; case DELEGATION: return "delegation: " + data; case CNAME: return "CNAME: " + data; case DNAME: return "DNAME: " + data; case SUCCESSFUL: return "successful"; default: return null; }}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -