Author: psteitz
Date: Sat Feb 25 12:54:36 2006
New Revision: 380993
URL: http://svn.apache.org/viewcvs?rev=380993&view=rev
Log:
Added ConstantIdentifierGenerator.
Added:
jakarta/commons/sandbox/id/trunk/src/java/org/apache/commons/id/ConstantIdentifierGenerator.java
(with props)
jakarta/commons/sandbox/id/trunk/src/test/org/apache/commons/id/ConstantIdentifierGeneratorTest.java
(with props)
Added:
jakarta/commons/sandbox/id/trunk/src/java/org/apache/commons/id/ConstantIdentifierGenerator.java
URL:
http://svn.apache.org/viewcvs/jakarta/commons/sandbox/id/trunk/src/java/org/apache/commons/id/ConstantIdentifierGenerator.java?rev=380993&view=auto
==============================================================================
---
jakarta/commons/sandbox/id/trunk/src/java/org/apache/commons/id/ConstantIdentifierGenerator.java
(added)
+++
jakarta/commons/sandbox/id/trunk/src/java/org/apache/commons/id/ConstantIdentifierGenerator.java
Sat Feb 25 12:54:36 2006
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2006 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.commons.id;
+
+/**
+ * <code>StringIdentifierGenerator</code> that always returns the same
+ * string. Use with [EMAIL PROTECTED] CompositeIdentifierGenerator} to embed
constant
+ * string identifiers, or to add prefixes or suffixes.
+ * <p>
+ * Null constant values are not allowed. The default
+ * (assumed by the argumentless constructor) is an empty string.</p>
+ *
+ * @author Commons-Id team
+ * @version $Id$
+ */
+public class ConstantIdentifierGenerator extends
+ AbstractStringIdentifierGenerator {
+
+ /**
+ * Constant string value always returned by this generator.
+ */
+ private final String identifier;
+
+ /**
+ * Factory method to create a new <code>ConstantIdentifierGenerator</code>
+ * with the given constant value. Does not allow null values.
+ *
+ * @param identifier constant value returned by the newly created
generator.
+ * Must not be null.
+ * @return a new ConstantIdentifierGenerator
+ * @throws IllegalArgumentException if identifier is null
+ */
+ public static StringIdentifierGenerator getInstance(String identifier) {
+ return new ConstantIdentifierGenerator(identifier);
+ }
+
+ /**
+ * Creates a new ConstantIdentifierGenerator using the
+ * default (empty string) constant value.
+ *
+ */
+ public ConstantIdentifierGenerator() {
+ super();
+ this.identifier = "";
+ }
+
+ /**
+ * Creates a new ConstantIdentifierGenerator using the
+ * given constant value.
+ * <p>
+ * Null constant values are not allowed.</p>
+ *
+ * @param identifier constant value returned by the generator. Must not
+ * be null.
+ * @throws IllegalArgumentExeption if identifier is null
+ */
+ public ConstantIdentifierGenerator(String identifier) {
+ super();
+ if (identifier == null) {
+ throw new IllegalArgumentException
+ ("Constant identifier value must not be null");
+ }
+ this.identifier = identifier;
+ }
+
+ public String nextStringIdentifier() {
+ return identifier;
+ }
+
+ /**
+ * Returns the length of the constant string returned by this generator.
+ * If the constant is null or an empty string, 0 is returned.
+ *
+ * @return the length of the constant string returned by this generator
+ */
+ public long maxLength() {
+ if (identifier == null) {
+ return 0;
+ } else {
+ return identifier.length();
+ }
+ }
+
+ /**
+ * Returns the length of the constant string returned by this generator.
+ * If the constant is null or an empty string, 0 is returned.
+ *
+ * @return the length of the constant string returned by this generator
+ */
+ public long minLength() {
+ return maxLength();
+ }
+}
Propchange:
jakarta/commons/sandbox/id/trunk/src/java/org/apache/commons/id/ConstantIdentifierGenerator.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
jakarta/commons/sandbox/id/trunk/src/test/org/apache/commons/id/ConstantIdentifierGeneratorTest.java
URL:
http://svn.apache.org/viewcvs/jakarta/commons/sandbox/id/trunk/src/test/org/apache/commons/id/ConstantIdentifierGeneratorTest.java?rev=380993&view=auto
==============================================================================
---
jakarta/commons/sandbox/id/trunk/src/test/org/apache/commons/id/ConstantIdentifierGeneratorTest.java
(added)
+++
jakarta/commons/sandbox/id/trunk/src/test/org/apache/commons/id/ConstantIdentifierGeneratorTest.java
Sat Feb 25 12:54:36 2006
@@ -0,0 +1,91 @@
+/*
+ * Copyright 2006 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.commons.id;
+
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.apache.commons.id.serial.AlphanumericGenerator;
+import org.apache.commons.id.serial.NumericGenerator;
+import org.apache.commons.id.test.AssertSerialization;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+/**
+ * Tests the org.apache.commons.id.ConstantIdentifierGenerator class.
+ *
+ * @author Commons-id team
+ * @version $Id$
+ */
+public class ConstantIdentifierGeneratorTest extends TestCase {
+
+ protected String testConstant = "testConstant";
+
+ public void testGetInstance() {
+ StringIdentifierGenerator identifier =
+ ConstantIdentifierGenerator.getInstance(testConstant);
+ assertEquals(testConstant,identifier.nextStringIdentifier());
+ }
+
+ public void testNextStringIdentifier() {
+ ConstantIdentifierGenerator identifier =
+ new ConstantIdentifierGenerator(testConstant);
+ assertEquals(testConstant,identifier.nextStringIdentifier());
+ }
+
+ public void testNullConstant() {
+ try {
+ ConstantIdentifierGenerator identifier =
+ new ConstantIdentifierGenerator(null);
+ fail("Expecting IllegalArgumentException");
+ } catch (IllegalArgumentException ex) {
+ // expected
+ }
+ try {
+ StringIdentifierGenerator identifier =
+ ConstantIdentifierGenerator.getInstance(null);
+ fail("Expecting IllegalArgumentException");
+ } catch (IllegalArgumentException ex) {
+ // expected
+ }
+ }
+
+ public void testEmptyConstant() {
+ ConstantIdentifierGenerator identifier =
+ new ConstantIdentifierGenerator("");
+ assertEquals("",identifier.nextStringIdentifier());
+ }
+
+ public void testDefault() {
+ ConstantIdentifierGenerator identifier =
+ new ConstantIdentifierGenerator();
+ assertEquals("",identifier.nextStringIdentifier());
+ }
+
+ public void testMaxMinLength() {
+ ConstantIdentifierGenerator identifier =
+ new ConstantIdentifierGenerator(testConstant);
+ long len = testConstant.length();
+ assertEquals(len, identifier.maxLength());
+ assertEquals(len, identifier.minLength());
+
+ identifier = new ConstantIdentifierGenerator("");
+ assertEquals(0, identifier.maxLength());
+ assertEquals(0, identifier.minLength());
+ }
+}
Propchange:
jakarta/commons/sandbox/id/trunk/src/test/org/apache/commons/id/ConstantIdentifierGeneratorTest.java
------------------------------------------------------------------------------
svn:eol-style = native
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]