1d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen// Copyright (c) 2004 Brian Wellington (bwelling@xbill.org) 2d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 3d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpackage org.xbill.DNS; 4d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 5d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenimport java.io.*; 6d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 7d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/** 8d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Implements common functionality for the many record types whose format 9d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * is a single name. 10d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * 11d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * @author Brian Wellington 12d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen */ 13d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 14d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenabstract class SingleNameBase extends Record { 15d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 16d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenprivate static final long serialVersionUID = -18595042501413L; 17d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 18d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenprotected Name singleName; 19d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 20d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenprotected 21d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenSingleNameBase() {} 22d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 23d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenprotected 24d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenSingleNameBase(Name name, int type, int dclass, long ttl) { 25d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen super(name, type, dclass, ttl); 26d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen} 27d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 28d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenprotected 29d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenSingleNameBase(Name name, int type, int dclass, long ttl, Name singleName, 30d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen String description) 31d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen{ 32d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen super(name, type, dclass, ttl); 33d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen this.singleName = checkName(description, singleName); 34d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen} 35d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 36d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenvoid 37d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenrrFromWire(DNSInput in) throws IOException { 38d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen singleName = new Name(in); 39d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen} 40d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 41d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenvoid 42d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenrdataFromString(Tokenizer st, Name origin) throws IOException { 43d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen singleName = st.getName(origin); 44d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen} 45d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 46d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenString 47d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenrrToString() { 48d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen return singleName.toString(); 49d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen} 50d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 51d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenprotected Name 52d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChengetSingleName() { 53d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen return singleName; 54d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen} 55d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 56d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenvoid 57d7955ce24d294fb2014c59d11fca184471056f44Shuyi ChenrrToWire(DNSOutput out, Compression c, boolean canonical) { 58d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen singleName.toWire(out, null, canonical); 59d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen} 60d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 61d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen} 62