001 package org.kuali.common.deploy.dns.model;
002
003 import org.kuali.common.util.Assert;
004
005 public class DnsmeContext {
006
007 private final int ttl;
008 private final String recordName;
009 private final String domainName;
010 private final RecordType recordType;
011 private final DnsmeCredentials credentials;
012
013 public static class Builder {
014
015 // Required
016 private final DnsmeCredentials credentials;
017 private final String recordName;
018 private final String domainName;
019
020 // Optional, default values are normally all that is needed
021 private int ttl = 60;
022 private RecordType recordType = RecordType.CNAME;
023
024 public Builder(DnsmeCredentials credentials, String recordName, String domainName) {
025 this.credentials = credentials;
026 this.recordName = recordName;
027 this.domainName = domainName;
028 }
029
030 public Builder ttl(int ttl) {
031 this.ttl = ttl;
032 return this;
033 }
034
035 public Builder recordType(RecordType recordType) {
036 this.recordType = recordType;
037 return this;
038 }
039
040 public DnsmeContext build() {
041 Assert.noBlanks(recordName, domainName);
042 Assert.noNulls(credentials, recordType);
043 return new DnsmeContext(this);
044 }
045
046 }
047
048 private DnsmeContext(Builder builder) {
049 this.credentials = builder.credentials;
050 this.recordName = builder.recordName;
051 this.ttl = builder.ttl;
052 this.recordType = builder.recordType;
053 this.domainName = builder.domainName;
054 }
055
056 public int getTtl() {
057 return ttl;
058 }
059
060 public String getRecordName() {
061 return recordName;
062 }
063
064 public String getDomainName() {
065 return domainName;
066 }
067
068 public RecordType getRecordType() {
069 return recordType;
070 }
071
072 public DnsmeCredentials getCredentials() {
073 return credentials;
074 }
075
076 }