You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2005/02/03 08:18:53 UTC
svn commit: r151131 [1/9] - in
incubator/directory/asn1/branches/rewrite/ber: ./
src/java/org/apache/asn1/ber/ src/java/org/apache/asn1/ber/digester/
src/java/org/apache/asn1/ber/digester/rules/
src/java/org/apache/asn1/ber/primitives/ src/java/org/apache/asn1/tuples/
src/java/org/apache/asn1/util/ src/test/org/apache/asn1/ber/
src/test/org/apache/asn1/ber/primitives/
Author: akarasulu
Date: Wed Feb 2 23:18:42 2005
New Revision: 151131
URL: http://svn.apache.org/viewcvs?view=rev&rev=151131
Log:
changes ...
o removed the commons lang dependency for now in a general trend
to remove all commons dependencies as recommended by (Allan) -
this was done by forking whatever we use: eventually we'll trim
this down even further because we use so little of this stuff
o added the new tuple interfaces into a separate tuple package
for now
Added:
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/tuples/
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/tuples/AbstractTuple.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/tuples/Tag.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/tuples/Tuple.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/ArrayUtils.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/BooleanUtils.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/Enum.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/EnumUtils.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/EqualsBuilder.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/ExceptionUtils.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/HashCodeBuilder.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/Nestable.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/NestableDelegate.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/NestableError.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/NestableException.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/NestableRuntimeException.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/ObjectUtils.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/RandomStringUtils.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/ReflectionToStringBuilder.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/StopWatch.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/StringUtils.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/SystemUtils.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/ToStringBuilder.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/ToStringStyle.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/Validate.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/util/ValuedEnum.java
Modified:
incubator/directory/asn1/branches/rewrite/ber/project.xml
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/AbstractDecoderTestCase.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/BERDecoder.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/BERDecoderState.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/DefaultMutableTupleNode.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TagEnum.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TagOctetCollector.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/Tuple.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TypeClass.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/digester/TagTree.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/digester/rules/ByteAccumulator.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/digester/rules/ObjectCreateRule.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/primitives/UniversalTag.java
incubator/directory/asn1/branches/rewrite/ber/src/test/org/apache/asn1/ber/AbstractDecoderTestCaseTest.java
incubator/directory/asn1/branches/rewrite/ber/src/test/org/apache/asn1/ber/BERDecoderTest.java
incubator/directory/asn1/branches/rewrite/ber/src/test/org/apache/asn1/ber/BEREncoderTest.java
incubator/directory/asn1/branches/rewrite/ber/src/test/org/apache/asn1/ber/TagTest.java
incubator/directory/asn1/branches/rewrite/ber/src/test/org/apache/asn1/ber/TupleTest.java
incubator/directory/asn1/branches/rewrite/ber/src/test/org/apache/asn1/ber/TupleTreeDecoderTest.java
incubator/directory/asn1/branches/rewrite/ber/src/test/org/apache/asn1/ber/primitives/PrimitiveUtilsTest.java
Modified: incubator/directory/asn1/branches/rewrite/ber/project.xml
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/project.xml?view=diff&r1=151130&r2=151131
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/project.xml (original)
+++ incubator/directory/asn1/branches/rewrite/ber/project.xml Wed Feb 2 23:18:42 2005
@@ -17,13 +17,6 @@
<dependencies>
<dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.0</version>
- <url>http://jakarta.apache.org/commons/lang/api</url>
- </dependency>
-
- <dependency>
<groupId>commons-test</groupId>
<artifactId>commons-test</artifactId>
<version>0.1</version>
Modified: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/AbstractDecoderTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/AbstractDecoderTestCase.java?view=diff&r1=151130&r2=151131
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/AbstractDecoderTestCase.java (original)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/AbstractDecoderTestCase.java Wed Feb 2 23:18:42 2005
@@ -29,15 +29,11 @@
import org.apache.asn1.codec.stateful.DecoderMonitor ;
import org.apache.asn1.codec.stateful.DecoderCallback ;
import org.apache.asn1.codec.stateful.StatefulDecoder;
-import org.apache.asn1.codec.stateful.StatefulDecoder ;
-
-import org.apache.commons.lang.exception.ExceptionUtils ;
+import org.apache.asn1.util.ExceptionUtils;
import org.apache.ldap.common.message.Message ;
import org.apache.ldap.common.message.MessageEncoder;
import org.apache.ldap.common.message.spi.Provider;
-import org.apache.asn1.codec.binary.BinaryCodec;
-import org.apache.asn1.codec.DecoderException;
import junit.framework.TestCase ;
Modified: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/BERDecoder.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/BERDecoder.java?view=diff&r1=151130&r2=151131
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/BERDecoder.java (original)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/BERDecoder.java Wed Feb 2 23:18:42 2005
@@ -21,13 +21,12 @@
import java.nio.ByteBuffer ;
-import org.apache.commons.lang.ArrayUtils ;
-
import org.apache.asn1.codec.DecoderException ;
import org.apache.asn1.codec.stateful.StatefulDecoder ;
import org.apache.asn1.codec.stateful.DecoderCallback;
import org.apache.asn1.codec.stateful.DecoderMonitor;
import org.apache.asn1.codec.stateful.*;
+import org.apache.asn1.util.ArrayUtils;
/**
Modified: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/BERDecoderState.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/BERDecoderState.java?view=diff&r1=151130&r2=151131
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/BERDecoderState.java (original)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/BERDecoderState.java Wed Feb 2 23:18:42 2005
@@ -20,8 +20,8 @@
import java.util.Map ;
import java.util.List ;
-import org.apache.commons.lang.enum.EnumUtils ;
-import org.apache.commons.lang.enum.ValuedEnum ;
+import org.apache.asn1.util.ValuedEnum;
+import org.apache.asn1.util.EnumUtils;
/**
Modified: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/DefaultMutableTupleNode.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/DefaultMutableTupleNode.java?view=diff&r1=151130&r2=151131
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/DefaultMutableTupleNode.java (original)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/DefaultMutableTupleNode.java Wed Feb 2 23:18:42 2005
@@ -24,8 +24,8 @@
import java.util.ArrayList ;
import java.util.Collections ;
-import org.apache.commons.lang.StringUtils ;
import org.apache.asn1.codec.binary.Hex;
+import org.apache.asn1.util.StringUtils;
/**
@@ -408,6 +408,7 @@
public void printDepthFirst( StringBuffer buf, int level )
{
DefaultMutableTupleNode child = null ;
+
String levelTab = StringUtils.repeat( "\t", level ) ;
if ( level != 0 )
@@ -416,18 +417,27 @@
}
buf.append( levelTab ).append( tuple.getId() ) ;
+
buf.append( " [" ).append( "0x" ) ;
+
buf.append( getHex( tuple.getRawPrimitiveTag() ) ) ;
+
buf.append( ']' ) ;
+
buf.append( '[' ).append( tuple.length ).append( ']' ) ;
+
for ( int ii = 0; ii < children.size(); ii++ )
{
child = ( DefaultMutableTupleNode ) children.get( ii ) ;
+
child.printDepthFirst( buf, level + 1 ) ;
}
}
-
-
+
+
+
+
+
// ------------------------------------------------------------------------
// java.lang.Object overrides & overloads
// ------------------------------------------------------------------------
Modified: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TagEnum.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TagEnum.java?view=diff&r1=151130&r2=151131
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TagEnum.java (original)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TagEnum.java Wed Feb 2 23:18:42 2005
@@ -17,7 +17,7 @@
package org.apache.asn1.ber ;
-import org.apache.commons.lang.enum.ValuedEnum ;
+import org.apache.asn1.util.ValuedEnum;
/**
Modified: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TagOctetCollector.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TagOctetCollector.java?view=diff&r1=151130&r2=151131
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TagOctetCollector.java (original)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TagOctetCollector.java Wed Feb 2 23:18:42 2005
@@ -19,7 +19,7 @@
import java.nio.BufferOverflowException;
-import org.apache.commons.lang.ArrayUtils ;
+import org.apache.asn1.util.ArrayUtils;
/**
Modified: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/Tuple.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/Tuple.java?view=diff&r1=151130&r2=151131
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/Tuple.java (original)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/Tuple.java Wed Feb 2 23:18:42 2005
@@ -21,10 +21,7 @@
import java.nio.ByteBuffer ;
-import org.apache.commons.lang.ArrayUtils ;
-import org.apache.asn1.ber.Length;
-import org.apache.asn1.ber.Tag;
-import org.apache.asn1.ber.TagEnum;
+import org.apache.asn1.util.ArrayUtils;
/**
Modified: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TypeClass.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TypeClass.java?view=diff&r1=151130&r2=151131
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TypeClass.java (original)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TypeClass.java Wed Feb 2 23:18:42 2005
@@ -20,8 +20,8 @@
import java.util.Map ;
import java.util.List ;
-import org.apache.commons.lang.enum.EnumUtils ;
-import org.apache.commons.lang.enum.ValuedEnum ;
+import org.apache.asn1.util.ValuedEnum;
+import org.apache.asn1.util.EnumUtils;
/**
Modified: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/digester/TagTree.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/digester/TagTree.java?view=diff&r1=151130&r2=151131
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/digester/TagTree.java (original)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/digester/TagTree.java Wed Feb 2 23:18:42 2005
@@ -19,11 +19,9 @@
import java.util.*;
-import org.apache.commons.lang.Validate ;
import org.apache.commons.collections.primitives.IntStack ;
-import org.apache.asn1.ber.digester.Rule;
-import org.apache.asn1.ber.digester.RuleRegistration;
-import org.apache.asn1.ber.digester.TagNode;
+
+import org.apache.asn1.util.Validate;
/**
Modified: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/digester/rules/ByteAccumulator.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/digester/rules/ByteAccumulator.java?view=diff&r1=151130&r2=151131
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/digester/rules/ByteAccumulator.java (original)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/digester/rules/ByteAccumulator.java Wed Feb 2 23:18:42 2005
@@ -17,7 +17,7 @@
package org.apache.asn1.ber.digester.rules ;
-import org.apache.commons.lang.ArrayUtils ;
+import org.apache.asn1.util.ArrayUtils;
import java.nio.ByteBuffer ;
Modified: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/digester/rules/ObjectCreateRule.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/digester/rules/ObjectCreateRule.java?view=diff&r1=151130&r2=151131
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/digester/rules/ObjectCreateRule.java (original)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/digester/rules/ObjectCreateRule.java Wed Feb 2 23:18:42 2005
@@ -20,9 +20,7 @@
import org.apache.asn1.ber.TypeClass ;
import org.apache.asn1.ber.digester.BERDigester ;
import org.apache.asn1.ber.digester.AbstractRule ;
-import org.apache.commons.lang.exception.NestableRuntimeException ;
-import org.apache.asn1.ber.digester.AbstractRule;
-import org.apache.asn1.ber.TypeClass;
+import org.apache.asn1.util.NestableRuntimeException;
/**
Modified: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/primitives/UniversalTag.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/primitives/UniversalTag.java?view=diff&r1=151130&r2=151131
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/primitives/UniversalTag.java (original)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/primitives/UniversalTag.java Wed Feb 2 23:18:42 2005
@@ -20,9 +20,8 @@
import java.util.Map ;
import java.util.List ;
-import org.apache.commons.lang.enum.EnumUtils ;
-
import org.apache.asn1.ber.TagEnum ;
+import org.apache.asn1.util.EnumUtils;
/**
Added: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/tuples/AbstractTuple.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/tuples/AbstractTuple.java?view=auto&rev=151131
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/tuples/AbstractTuple.java (added)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/tuples/AbstractTuple.java Wed Feb 2 23:18:42 2005
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2004 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.asn1.tuples;
+
+
+/**
+ * An abstract base for a Tag, Length, Value tuple.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public abstract class AbstractTuple implements Tuple
+{
+ /** the Tag of this Tuple */
+ private final Tag tag;
+
+ /** the byte index where this tuple begins within its PDU buffer */
+ private final int startIndex;
+
+
+ /**
+ * Sets up the tag and 0-based start index for the Tuple in the PDU.
+ *
+ * @param tag the Tag (type) of this Tuple
+ * @param startIndex the 0-based start index for the Tuple in the PDU
+ */
+ public AbstractTuple( Tag tag, int startIndex )
+ {
+ this.tag = tag;
+
+ this.startIndex = startIndex;
+ }
+
+
+ public int getTagStartIndex()
+ {
+ return this.startIndex;
+ }
+
+
+ public Tag getTag()
+ {
+ return this.tag;
+ }
+}
Added: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/tuples/Tag.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/tuples/Tag.java?view=auto&rev=151131
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/tuples/Tag.java (added)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/tuples/Tag.java Wed Feb 2 23:18:42 2005
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2004 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.asn1.tuples ;
+
+
+import org.apache.asn1.ber.TypeClass;
+
+import org.apache.asn1.util.ValuedEnum;
+
+
+/**
+ * Abstract base class for type safe tag enumerations following the agreed upon
+ * convention for representing tags as integers. This way the type safe
+ * enumeration also represents a preconstructed tag. ASN.1 application module
+ * specific enumerations should extend this base for use with the digester.
+ *
+ * @see <a href="">link to a document explaining how we encoded prefab tags</a>
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev: 123524 $
+ */
+public abstract class Tag extends ValuedEnum
+{
+ /** the id for this tag */
+ private final int id;
+
+
+ /**
+ * Creates a type safe Tag.
+ *
+ * @param name the name associated with the tag
+ * @param value the value of the tag as a 4 byte primitive int
+ * @param id the id of the tag
+ */
+ protected Tag( final String name, final int value, final int id )
+ {
+ super( name, value ) ;
+
+ this.id = id ;
+ }
+
+
+ /**
+ * Gets the id of this tag.
+ *
+ * @return the id of the tag
+ */
+ public final int getTagId()
+ {
+ return this.id ;
+ }
+
+
+ /**
+ * Gets the primitive version of a tag.
+ *
+ * @return the primitive version of a tag with the P/C bit set to 0
+ */
+ public final int getPrimitiveTag()
+ {
+ return getValue() & 0xDFFFFFFF ;
+ }
+
+
+ /**
+ * Gets the constructed version of a tag.
+ *
+ * @return the constructed version of a tag with the P/C bit set to 1
+ */
+ public final int getConstructedTag()
+ {
+ return getValue() | 0x20000000 ;
+ }
+
+
+ /**
+ * Gets the type class of a tag.
+ *
+ * @return the type class for this tag enumeration.
+ */
+ public final TypeClass getTypeClass()
+ {
+ return TypeClass.getTypeClass( getValue() >> 24 ) ;
+ }
+}
Added: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/tuples/Tuple.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/tuples/Tuple.java?view=auto&rev=151131
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/tuples/Tuple.java (added)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/tuples/Tuple.java Wed Feb 2 23:18:42 2005
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2004 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.asn1.tuples;
+
+
+/**
+ * A minimal interface for a Tag, Length, Value tuple used for various
+ * encodings.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public interface Tuple
+{
+ /**
+ * Gets the zero based index into a PDU where the first byte of this Tuple's tag resides.
+ *
+ * @return zero based index of Tag's first byte in the PDU
+ */
+ int getTagStartIndex();
+
+ /**
+ * Gets this TLV Tuple's Tag (T) as a type safe enumeration.
+ *
+ * @return type safe enumeration for the Tag
+ */
+ Tag getTag();
+
+ /**
+ * Gets whether or not this Tuple is constructed.
+ *
+ * @return true if the Tag is constructed false if it is primitive.
+ */
+ boolean isConstructed();
+}