package org.handwerkszeug.dns.record; import java.util.List; import org.handwerkszeug.dns.Name; import org.handwerkszeug.dns.NameCompressor; import org.handwerkszeug.dns.RRType; import org.handwerkszeug.dns.ResourceRecord; import io.netty.buffer.ByteBuf; /** * * * @author taichi */ public class OPTNameRecord extends AbstractRecord { protected Name oneName; public OPTNameRecord(RRType type) { super(type); } public OPTNameRecord(RRType type, Name oneName) { super(type); this.oneName = oneName; } public OPTNameRecord(OPTNameRecord from) { super(from); this.oneName = from.oneName(); } public Name oneName() { return this.oneName; } @Override protected void parseRDATA(ByteBuf buffer) { this.oneName = new Name(buffer); } @Override protected void writeRDATA(ByteBuf buffer, NameCompressor compressor) { this.oneName.write(buffer, compressor); } @Override protected ResourceRecord newInstance() { return new OPTNameRecord(this); } @Override public int compareTo(OPTNameRecord o) { if ((this != o) && (super.compareTo(o) == 0)) { return this.oneName() .compareTo(o.oneName()); } return 0; } @Override public String toString() { StringBuilder stb = new StringBuilder(); stb.append(super.toString()); stb.append(' '); stb.append(this.oneName()); return stb.toString(); } @Override public void setRDATA(List list) { if (0 < list.size()) { this.oneName = new Name(list.get(0)); } else { throw new IllegalArgumentException(); } } }