You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by er...@apache.org on 2005/01/09 12:18:53 UTC
svn commit: r124726 - incubator/directory/dns/trunk/core/src/java/org/apache/dns/messages/value
Author: erodriguez
Date: Sun Jan 9 03:18:51 2005
New Revision: 124726
URL: http://svn.apache.org/viewcvs?view=rev&rev=124726
Log:
Typesafe enumerators used by DNS messages.
Added:
incubator/directory/dns/trunk/core/src/java/org/apache/dns/messages/value/MessageType.java
incubator/directory/dns/trunk/core/src/java/org/apache/dns/messages/value/OpCode.java (contents, props changed)
incubator/directory/dns/trunk/core/src/java/org/apache/dns/messages/value/ResponseCode.java (contents, props changed)
Added: incubator/directory/dns/trunk/core/src/java/org/apache/dns/messages/value/MessageType.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dns/trunk/core/src/java/org/apache/dns/messages/value/MessageType.java?view=auto&rev=124726
==============================================================================
--- (empty file)
+++ incubator/directory/dns/trunk/core/src/java/org/apache/dns/messages/value/MessageType.java Sun Jan 9 03:18:51 2005
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.dns.messages.value;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+
+public final class MessageType implements Comparable
+{
+ /**
+ * Enumeration elements are constructed once upon class loading.
+ * Order of appearance here determines the order of compareTo.
+ */
+ public static final MessageType QUERY = new MessageType( 0, "Query" );
+ public static final MessageType RESPONSE = new MessageType( 1, "Response" );
+
+ public String toString()
+ {
+ return name;
+ }
+
+ public int compareTo( Object that )
+ {
+ return ordinal - ( (MessageType) that ).ordinal;
+ }
+
+ public static MessageType getTypeByOrdinal( int type )
+ {
+ for ( int ii = 0; ii < values.length; ii++ )
+ if ( values[ ii ].ordinal == type )
+ return values[ ii ];
+ return QUERY;
+ }
+
+ public int getOrdinal()
+ {
+ return ordinal;
+ }
+
+ /// PRIVATE /////
+ private final String name;
+ private final int ordinal;
+
+ /**
+ * Private constructor prevents construction outside of this class.
+ */
+ private MessageType( int ordinal, String name )
+ {
+ this.ordinal = ordinal;
+ this.name = name;
+ }
+
+ /**
+ * These two lines are all that's necessary to export a List of VALUES.
+ */
+ private static final MessageType[] values = { QUERY, RESPONSE };
+ // VALUES needs to be located here, otherwise illegal forward reference
+ public static final List VALUES = Collections.unmodifiableList( Arrays.asList( values ) );
+}
+
Added: incubator/directory/dns/trunk/core/src/java/org/apache/dns/messages/value/OpCode.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dns/trunk/core/src/java/org/apache/dns/messages/value/OpCode.java?view=auto&rev=124726
==============================================================================
--- (empty file)
+++ incubator/directory/dns/trunk/core/src/java/org/apache/dns/messages/value/OpCode.java Sun Jan 9 03:18:51 2005
@@ -0,0 +1,80 @@
+/*
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.dns.messages.value;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+
+public final class OpCode implements Comparable
+{
+ /**
+ * Enumeration elements are constructed once upon class loading.
+ * Order of appearance here determines the order of compareTo.
+ */
+ public static final OpCode QUERY = new OpCode( 0, "Standard query" );
+ public static final OpCode IQUERY = new OpCode( 1, "Inverse query" );
+ public static final OpCode STATUS = new OpCode( 2, "Server status request" );
+ public static final OpCode NOTIFY = new OpCode( 4, "Zone transfer notification" );
+ public static final OpCode UPDATE = new OpCode( 5, "Dynamic update message" );
+
+ public String toString()
+ {
+ return name;
+ }
+
+ public int compareTo( Object that )
+ {
+ return ordinal - ( (OpCode) that ).ordinal;
+ }
+
+ public static OpCode getTypeByOrdinal( int type )
+ {
+ for ( int ii = 0; ii < values.length; ii++ )
+ if ( values[ ii ].ordinal == type )
+ return values[ ii ];
+ return QUERY;
+ }
+
+ public int getOrdinal()
+ {
+ return ordinal;
+ }
+
+ /// PRIVATE /////
+ private final String name;
+ private final int ordinal;
+
+ /**
+ * Private constructor prevents construction outside of this class.
+ */
+ private OpCode( int ordinal, String name )
+ {
+ this.ordinal = ordinal;
+ this.name = name;
+ }
+
+ /**
+ * These two lines are all that's necessary to export a List of VALUES.
+ */
+ private static final OpCode[] values = { QUERY, IQUERY, STATUS, NOTIFY, UPDATE };
+ // VALUES needs to be located here, otherwise illegal forward reference
+ public static final List VALUES = Collections.unmodifiableList( Arrays.asList( values ) );
+}
+
Added: incubator/directory/dns/trunk/core/src/java/org/apache/dns/messages/value/ResponseCode.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dns/trunk/core/src/java/org/apache/dns/messages/value/ResponseCode.java?view=auto&rev=124726
==============================================================================
--- (empty file)
+++ incubator/directory/dns/trunk/core/src/java/org/apache/dns/messages/value/ResponseCode.java Sun Jan 9 03:18:51 2005
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.dns.messages.value;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+
+public final class ResponseCode implements Comparable
+{
+ /**
+ * Enumeration elements are constructed once upon class loading.
+ * Order of appearance here determines the order of compareTo.
+ */
+ public static final ResponseCode NO_ERROR = new ResponseCode( 0, "No error condition." );
+ public static final ResponseCode FORMAT_ERROR = new ResponseCode( 1, "The name server was unable to interpret the query." );
+ public static final ResponseCode SERVER_FAILURE = new ResponseCode( 2, "The name server was unable to process this query due to a problem with the name server." );
+ public static final ResponseCode NAME_ERROR = new ResponseCode( 3, "The domain name referenced in the query does not exist." );
+ public static final ResponseCode NOT_IMPLEMENTED = new ResponseCode( 4, "The name server does not support the requested kind of query." );
+ public static final ResponseCode REFUSED = new ResponseCode( 5, "The name server refuses to perform the specified operation for policy reasons." );
+
+ public String toString()
+ {
+ return name;
+ }
+
+ public int compareTo( Object that )
+ {
+ return ordinal - ( (ResponseCode) that ).ordinal;
+ }
+
+ public static ResponseCode getTypeByOrdinal( int type )
+ {
+ for ( int ii = 0; ii < values.length; ii++ )
+ if ( values[ ii ].ordinal == type )
+ return values[ ii ];
+ return NO_ERROR;
+ }
+
+ public int getOrdinal()
+ {
+ return ordinal;
+ }
+
+ /// PRIVATE /////
+ private final String name;
+ private final int ordinal;
+
+ /**
+ * Private constructor prevents construction outside of this class.
+ */
+ private ResponseCode( int ordinal, String name )
+ {
+ this.ordinal = ordinal;
+ this.name = name;
+ }
+
+ /**
+ * These two lines are all that's necessary to export a List of VALUES.
+ */
+ private static final ResponseCode[] values = { NO_ERROR, FORMAT_ERROR, SERVER_FAILURE,
+ NAME_ERROR, NOT_IMPLEMENTED, REFUSED };
+ // VALUES needs to be located here, otherwise illegal forward reference
+ public static final List VALUES = Collections.unmodifiableList( Arrays.asList( values ) );
+}
+