1 // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org)
2
3 package org.xbill.DNS;
4
5 import java.io.*;
6
7 /**
8 * Responsible Person Record - lists the mail address of a responsible person
9 * and a domain where TXT records are available.
10 *
11 * @author Tom Scola <tscola@research.att.com>
12 * @author Brian Wellington
13 */
14
15 public class RPRecord extends Record {
16
17 private static final long serialVersionUID = 8124584364211337460L;
18
19 private Name mailbox;
20 private Name textDomain;
21
RPRecord()22 RPRecord() {}
23
24 Record
getObject()25 getObject() {
26 return new RPRecord();
27 }
28
29 /**
30 * Creates an RP Record from the given data
31 * @param mailbox The responsible person
32 * @param textDomain The address where TXT records can be found
33 */
34 public
RPRecord(Name name, int dclass, long ttl, Name mailbox, Name textDomain)35 RPRecord(Name name, int dclass, long ttl, Name mailbox, Name textDomain) {
36 super(name, Type.RP, dclass, ttl);
37
38 this.mailbox = checkName("mailbox", mailbox);
39 this.textDomain = checkName("textDomain", textDomain);
40 }
41
42 void
rrFromWire(DNSInput in)43 rrFromWire(DNSInput in) throws IOException {
44 mailbox = new Name(in);
45 textDomain = new Name(in);
46 }
47
48 void
rdataFromString(Tokenizer st, Name origin)49 rdataFromString(Tokenizer st, Name origin) throws IOException {
50 mailbox = st.getName(origin);
51 textDomain = st.getName(origin);
52 }
53
54 /** Converts the RP Record to a String */
55 String
rrToString()56 rrToString() {
57 StringBuffer sb = new StringBuffer();
58 sb.append(mailbox);
59 sb.append(" ");
60 sb.append(textDomain);
61 return sb.toString();
62 }
63
64 /** Gets the mailbox address of the RP Record */
65 public Name
getMailbox()66 getMailbox() {
67 return mailbox;
68 }
69
70 /** Gets the text domain info of the RP Record */
71 public Name
getTextDomain()72 getTextDomain() {
73 return textDomain;
74 }
75
76 void
rrToWire(DNSOutput out, Compression c, boolean canonical)77 rrToWire(DNSOutput out, Compression c, boolean canonical) {
78 mailbox.toWire(out, null, canonical);
79 textDomain.toWire(out, null, canonical);
80 }
81
82 }
83