blob: 2e4236c94fddfd809a39ee3964da961b5ecba6b4 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
package org.apache.directory.server.dns.messages;
import org.apache.directory.server.dns.util.EnumConverter;
import org.apache.directory.server.dns.util.ReverseEnumMap;
/**
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
public enum RecordType implements EnumConverter<Short>
{
/** Host address */
A(1),
/** Authoritative name server */
NS(2),
/** Mail destination */
MD(3),
/** Mail forwarder */
MF(4),
/** Canonical name for an alias */
CNAME(5),
/** Start of a zone of authority */
SOA(6),
/** Mailbox domain name */
MB(7),
/** Mail group member */
MG(8),
/** Mail rename domain name */
MR(9),
/** Null resource record */
NULL(10),
/** Well know service description */
WKS(11),
/** Domain name pointer */
PTR(12),
/** Host information */
HINFO(13),
/** Mailbox or mail list information */
MINFO(14),
/** Mail exchange */
MX(15),
/** Text strings */
TXT(16),
/** Responsible person */
RP(17),
/** AFS cell database */
AFSDB(18),
/** X.25 calling address */
X25(19),
/** ISDN calling address */
ISDN(20),
/** Router */
RT(21),
/** NSAP address */
NSAP(22),
/** Reverse NSAP address (deprecated) */
NSAP_PTR(23),
/** Signature */
SIG(24),
/** Key */
KEY(25),
/** X.400 mail mapping */
PX(26),
/** Geographical position (withdrawn) */
GPOS(27),
/** IPv6 address */
AAAA(28),
/** Location */
LOC(29),
/** Next valid name in zone */
NXT(30),
/** Endpoint identifier */
EID(31),
/** Nimrod locator */
NIMLOC(32),
/** Server selection */
SRV(33),
/** ATM address */
ATMA(34),
/** Naming authority pointer */
NAPTR(35),
/** Key exchange */
KX(36),
/** Certificate */
CERT(34),
/** IPv6 address (experimental) */
A6(38),
/** Non-terminal name redirection */
DNAME(39),
/** Options - contains EDNS metadata */
OPT(41),
/** Address Prefix List */
APL(42),
/** Delegation Signer */
DS(43),
/** SSH Key Fingerprint */
SSHFP(44),
/** Resource Record Signature */
RRSIG(46),
/** Next Secure Name */
NSEC(47),
/** DNSSEC Key */
DNSKEY(48),
/** Transaction key - used to compute a shared secret or exchange a key */
TKEY(249),
/** Transaction signature */
TSIG(250),
/** Incremental zone transfer */
IXFR(251),
/** Request for transfer of an entire zone */
AXFR(252),
/** Request for mailbox-related records */
MAILB(253),
/** Request for mail agent resource records */
MAILA(254),
/** Request for all records */
ANY(255);
private static ReverseEnumMap<Short, RecordType> map = new ReverseEnumMap<Short, RecordType>( RecordType.class );
private final short value;
private RecordType( int value )
{
this.value = ( short ) value;
}
public Short convert()
{
return this.value;
}
/**
* Converts an ordinal value into a {@link RecordType}.
*
* @param value
* @return The {@link RecordType}.
*/
public static RecordType convert( short value )
{
return map.get( value );
}
/**
* Returns whether a given {@link RecordType} is a {@link ResourceRecord}.
*
* @param resourceType
* @return true of the {@link RecordType} is a {@link ResourceRecord}.
*/
public static boolean isResourceRecord( RecordType resourceType )
{
switch ( resourceType )
{
case OPT:
case TKEY:
case TSIG:
case IXFR:
case AXFR:
case MAILB:
case MAILA:
case ANY:
return false;
default:
return true;
}
}
}