From f2160f4bd1c8ac67e5a86a6710d431e8932877f9 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Fri, 28 May 2010 11:47:51 +0000
Subject: [PATCH] Synchronize SDK on java.net with internal repository.

---
 sdk/src/com/sun/opends/sdk/tools/DataSource.java |  487 ++++++++++++++++++++++++++---------------------------
 1 files changed, 237 insertions(+), 250 deletions(-)

diff --git a/sdk/src/com/sun/opends/sdk/tools/DataSource.java b/sdk/src/com/sun/opends/sdk/tools/DataSource.java
index 5e6dd9a..4c4438f 100644
--- a/sdk/src/com/sun/opends/sdk/tools/DataSource.java
+++ b/sdk/src/com/sun/opends/sdk/tools/DataSource.java
@@ -45,43 +45,57 @@
 {
   private static interface IDataSource
   {
-    public Object getData();
-
-
-
     public IDataSource duplicate();
+
+
+
+    public Object getData();
   }
 
 
 
-  private static class RandomNumberDataSource implements IDataSource
+  private static class IncrementLineFileDataSource implements IDataSource
   {
-    private final Random random;
-    private final int offset;
-    private final int range;
+    private final List<String> lines;
+    private int next;
 
 
 
-    public RandomNumberDataSource(long seed, int low, int high)
+    public IncrementLineFileDataSource(final String file) throws IOException
     {
-      random = new Random(seed);
-      offset = low;
-      range = high - low;
+      lines = new ArrayList<String>();
+      final BufferedReader in = new BufferedReader(new FileReader(file));
+      String line;
+      while ((line = in.readLine()) != null)
+      {
+        lines.add(line);
+      }
     }
 
 
 
-    public Object getData()
+    private IncrementLineFileDataSource(final List<String> lines)
     {
-      return random.nextInt(range) + offset;
+      this.lines = lines;
     }
 
 
 
     public IDataSource duplicate()
     {
-      // There is no state info so threads can just share one instance.
-      return this;
+      return new IncrementLineFileDataSource(lines);
+    }
+
+
+
+    public Object getData()
+    {
+      if (next == lines.size())
+      {
+        next = 0;
+      }
+
+      return lines.get(next++);
     }
   }
 
@@ -95,7 +109,7 @@
 
 
 
-    public IncrementNumberDataSource(int low, int high)
+    public IncrementNumberDataSource(final int low, final int high)
     {
       this.low = this.next = low;
       this.high = high;
@@ -103,6 +117,13 @@
 
 
 
+    public IDataSource duplicate()
+    {
+      return new IncrementNumberDataSource(low, high);
+    }
+
+
+
     public Object getData()
     {
       if (next == high)
@@ -113,13 +134,6 @@
 
       return next++;
     }
-
-
-
-    public IDataSource duplicate()
-    {
-      return new IncrementNumberDataSource(low, high);
-    }
   }
 
 
@@ -131,12 +145,12 @@
 
 
 
-    public RandomLineFileDataSource(long seed, String file)
+    public RandomLineFileDataSource(final long seed, final String file)
         throws IOException
     {
       lines = new ArrayList<String>();
       random = new Random(seed);
-      BufferedReader in = new BufferedReader(new FileReader(file));
+      final BufferedReader in = new BufferedReader(new FileReader(file));
       String line;
       while ((line = in.readLine()) != null)
       {
@@ -146,70 +160,55 @@
 
 
 
-    public Object getData()
-    {
-      return lines.get(random.nextInt(lines.size()));
-    }
-
-
-
     public IDataSource duplicate()
     {
       return this;
     }
-  }
-
-
-
-  private static class IncrementLineFileDataSource implements
-      IDataSource
-  {
-    private final List<String> lines;
-    private int next;
-
-
-
-    public IncrementLineFileDataSource(String file) throws IOException
-    {
-      lines = new ArrayList<String>();
-      BufferedReader in = new BufferedReader(new FileReader(file));
-      String line;
-      while ((line = in.readLine()) != null)
-      {
-        lines.add(line);
-      }
-    }
-
-
-
-    private IncrementLineFileDataSource(List<String> lines)
-    {
-      this.lines = lines;
-    }
 
 
 
     public Object getData()
     {
-      if (next == lines.size())
-      {
-        next = 0;
-      }
+      return lines.get(random.nextInt(lines.size()));
+    }
+  }
 
-      return lines.get(next++);
+
+
+  private static class RandomNumberDataSource implements IDataSource
+  {
+    private final Random random;
+    private final int offset;
+    private final int range;
+
+
+
+    public RandomNumberDataSource(final long seed, final int low, final int high)
+    {
+      random = new Random(seed);
+      offset = low;
+      range = high - low;
     }
 
 
 
     public IDataSource duplicate()
     {
-      return new IncrementLineFileDataSource(lines);
+      // There is no state info so threads can just share one instance.
+      return this;
+    }
+
+
+
+    public Object getData()
+    {
+      return random.nextInt(range) + offset;
     }
   }
 
 
 
-  private static class RandomStringDataSource implements IDataSource
+  private static final class RandomStringDataSource implements IDataSource
   {
     private final Random random;
     private final int length;
@@ -217,19 +216,20 @@
 
 
 
-    private RandomStringDataSource(int seed, int length, String charSet)
+    private RandomStringDataSource(final int seed, final int length,
+        final String charSet)
     {
       this.length = length;
-      Set<Character> chars = new HashSet<Character>();
+      final Set<Character> chars = new HashSet<Character>();
       for (int i = 0; i < charSet.length(); i++)
       {
-        char c = charSet.charAt(i);
+        final char c = charSet.charAt(i);
         if (c == '[')
         {
           i += 1;
-          char start = charSet.charAt(i);
+          final char start = charSet.charAt(i);
           i += 2;
-          char end = charSet.charAt(i);
+          final char end = charSet.charAt(i);
           i += 1;
           for (int j = start; j <= end; j++)
           {
@@ -247,74 +247,208 @@
 
 
 
+    public IDataSource duplicate()
+    {
+      return this;
+    }
+
+
+
     public Object getData()
     {
-      char[] str = new char[length];
+      final char[] str = new char[length];
       for (int i = 0; i < length; i++)
       {
         str[i] = charSet[random.nextInt(charSet.length)];
       }
       return new String(str);
     }
-
-
-
-    public IDataSource duplicate()
-    {
-      return this;
-    }
   }
 
 
 
-  private static class StaticDataSource implements IDataSource
+  private static final class StaticDataSource implements IDataSource
   {
     private final Object data;
 
 
 
-    private StaticDataSource(Object data)
+    private StaticDataSource(final Object data)
     {
       this.data = data;
     }
 
 
 
-    public Object getData()
-    {
-      return data;
-    }
-
-
-
     public IDataSource duplicate()
     {
       // There is no state info so threads can just share one instance.
       return this;
     }
+
+
+
+    public Object getData()
+    {
+      return data;
+    }
   }
 
-  private IDataSource impl;
+
+
+  /**
+   * Returns Generated data from the specified data sources. Generated data will
+   * be placed in the specified data array. If the data array is null or smaller
+   * than the number of data sources, one will be allocated.
+   *
+   * @param dataSources
+   *          Data sources that will generate arguments referenced by the format
+   *          specifiers in the format string.
+   * @param data
+   *          The array where genereated data will be placed to format the
+   *          string.
+   * @return A formatted string
+   */
+  public static Object[] generateData(final DataSource[] dataSources,
+      Object[] data)
+  {
+    if (data == null || data.length < dataSources.length)
+    {
+      data = new Object[dataSources.length];
+    }
+    for (int i = 0; i < dataSources.length; i++)
+    {
+      data[i] = dataSources[i].getData();
+    }
+    return data;
+  }
 
 
 
-  private DataSource(IDataSource impl)
+  /**
+   * Parses a list of source definitions into an array of data source objects. A
+   * data source is defined as follows: - rand({min},{max}) generates a random
+   * integer between the min and max. - rand({filename}) retrieves a random line
+   * from a file. - inc({min},{max}) returns incremental integer between the min
+   * and max. - inc({filename}) retrieves lines in order from a file. - {number}
+   * always return the integer as given. - {string} always return the string as
+   * given.
+   *
+   * @param sources
+   *          The list of source definitions to parse.
+   * @return The array of parsed data sources.
+   * @throws IOException
+   *           If an exception occurs while reading a file.
+   */
+  public static DataSource[] parse(final List<String> sources)
+      throws IOException
+  {
+    Validator.ensureNotNull(sources);
+    final DataSource[] dataSources = new DataSource[sources.size()];
+    for (int i = 0; i < sources.size(); i++)
+    {
+      final String dataSourceDef = sources.get(i);
+      if (dataSourceDef.startsWith("rand(") && dataSourceDef.endsWith(")"))
+      {
+        final int lparenPos = dataSourceDef.indexOf("(");
+        final int commaPos = dataSourceDef.indexOf(",");
+        final int rparenPos = dataSourceDef.indexOf(")");
+        if (commaPos < 0)
+        {
+          // This is a file name
+          dataSources[i] = new DataSource(new RandomLineFileDataSource(0,
+              dataSourceDef.substring(lparenPos + 1, rparenPos)));
+        }
+        else
+        {
+          // This range of integers
+          final int low = Integer.parseInt(dataSourceDef.substring(
+              lparenPos + 1, commaPos));
+          final int high = Integer.parseInt(dataSourceDef.substring(
+              commaPos + 1, rparenPos));
+          dataSources[i] = new DataSource(new RandomNumberDataSource(Thread
+              .currentThread().getId(), low, high));
+        }
+      }
+      else if (dataSourceDef.startsWith("randstr(")
+          && dataSourceDef.endsWith(")"))
+      {
+        final int lparenPos = dataSourceDef.indexOf("(");
+        final int commaPos = dataSourceDef.indexOf(",");
+        final int rparenPos = dataSourceDef.indexOf(")");
+        int length;
+        String charSet;
+        if (commaPos < 0)
+        {
+          length = Integer.parseInt(dataSourceDef.substring(lparenPos + 1,
+              rparenPos));
+          charSet = "[A-Z][a-z][0-9]";
+        }
+        else
+        {
+          // length and charSet
+          length = Integer.parseInt(dataSourceDef.substring(lparenPos + 1,
+              commaPos));
+          charSet = dataSourceDef.substring(commaPos + 1, rparenPos);
+        }
+        dataSources[i] = new DataSource(new RandomStringDataSource(0, length,
+            charSet));
+
+      }
+      else if (dataSourceDef.startsWith("inc(") && dataSourceDef.endsWith(")"))
+      {
+        final int lparenPos = dataSourceDef.indexOf("(");
+        final int commaPos = dataSourceDef.indexOf(",");
+        final int rparenPos = dataSourceDef.indexOf(")");
+        if (commaPos < 0)
+        {
+          // This is a file name
+          dataSources[i] = new DataSource(new IncrementLineFileDataSource(
+              dataSourceDef.substring(lparenPos + 1, rparenPos)));
+        }
+        else
+        {
+          final int low = Integer.parseInt(dataSourceDef.substring(
+              lparenPos + 1, commaPos));
+          final int high = Integer.parseInt(dataSourceDef.substring(
+              commaPos + 1, rparenPos));
+          dataSources[i] = new DataSource(new IncrementNumberDataSource(low,
+              high));
+        }
+      }
+      else
+      {
+        try
+        {
+          dataSources[i] = new DataSource(new StaticDataSource(Integer
+              .parseInt(dataSourceDef)));
+        }
+        catch (final NumberFormatException nfe)
+        {
+          dataSources[i] = new DataSource(new StaticDataSource(dataSourceDef));
+        }
+      }
+    }
+
+    return dataSources;
+  }
+
+
+
+  private final IDataSource impl;
+
+
+
+  private DataSource(final IDataSource impl)
   {
     this.impl = impl;
   }
 
 
 
-  public Object getData()
-  {
-    return impl.getData();
-  }
-
-
-
   public DataSource duplicate()
   {
-    IDataSource dup = impl.duplicate();
+    final IDataSource dup = impl.duplicate();
     if (dup == impl)
     {
       return this;
@@ -327,155 +461,8 @@
 
 
 
-  /**
-   * Parses a list of source definitions into an array of data source
-   * objects. A data source is defined as follows: - rand({min},{max})
-   * generates a random integer between the min and max. -
-   * rand({filename}) retrieves a random line from a file. -
-   * inc({min},{max}) returns incremental integer between the min and
-   * max. - inc({filename}) retrieves lines in order from a file. -
-   * {number} always return the integer as given. - {string} always
-   * return the string as given.
-   * 
-   * @param sources
-   *          The list of source definitions to parse.
-   * @return The array of parsed data sources.
-   * @throws IOException
-   *           If an exception occurs while reading a file.
-   */
-  public static DataSource[] parse(List<String> sources)
-      throws IOException
+  public Object getData()
   {
-    Validator.ensureNotNull(sources);
-    DataSource[] dataSources = new DataSource[sources.size()];
-    for (int i = 0; i < sources.size(); i++)
-    {
-      String dataSourceDef = sources.get(i);
-      if (dataSourceDef.startsWith("rand(")
-          && dataSourceDef.endsWith(")"))
-      {
-        int lparenPos = dataSourceDef.indexOf("(");
-        int commaPos = dataSourceDef.indexOf(",");
-        int rparenPos = dataSourceDef.indexOf(")");
-        if (commaPos < 0)
-        {
-          // This is a file name
-          dataSources[i] =
-              new DataSource(new RandomLineFileDataSource(0,
-                  dataSourceDef.substring(lparenPos + 1, rparenPos)));
-        }
-        else
-        {
-          // This range of integers
-          int low =
-              Integer.parseInt(dataSourceDef.substring(lparenPos + 1,
-                  commaPos));
-          int high =
-              Integer.parseInt(dataSourceDef.substring(commaPos + 1,
-                  rparenPos));
-          dataSources[i] =
-              new DataSource(new RandomNumberDataSource(0, low, high));
-        }
-      }
-      else if (dataSourceDef.startsWith("randstr(")
-          && dataSourceDef.endsWith(")"))
-      {
-        int lparenPos = dataSourceDef.indexOf("(");
-        int commaPos = dataSourceDef.indexOf(",");
-        int rparenPos = dataSourceDef.indexOf(")");
-        int length;
-        String charSet;
-        if (commaPos < 0)
-        {
-          length =
-              Integer.parseInt(dataSourceDef.substring(lparenPos + 1,
-                  rparenPos));
-          charSet = "[A-Z][a-z][0-9]";
-        }
-        else
-        {
-          // length and charSet
-          length =
-              Integer.parseInt(dataSourceDef.substring(lparenPos + 1,
-                  commaPos));
-          charSet = dataSourceDef.substring(commaPos + 1, rparenPos);
-        }
-        dataSources[i] =
-            new DataSource(new RandomStringDataSource(0, length,
-                charSet));
-
-      }
-      else if (dataSourceDef.startsWith("inc(")
-          && dataSourceDef.endsWith(")"))
-      {
-        int lparenPos = dataSourceDef.indexOf("(");
-        int commaPos = dataSourceDef.indexOf(",");
-        int rparenPos = dataSourceDef.indexOf(")");
-        if (commaPos < 0)
-        {
-          // This is a file name
-          dataSources[i] =
-              new DataSource(new IncrementLineFileDataSource(
-                  dataSourceDef.substring(lparenPos + 1, rparenPos)));
-        }
-        else
-        {
-          int low =
-              Integer.parseInt(dataSourceDef.substring(lparenPos + 1,
-                  commaPos));
-          int high =
-              Integer.parseInt(dataSourceDef.substring(commaPos + 1,
-                  rparenPos));
-          dataSources[i] =
-              new DataSource(new IncrementNumberDataSource(low, high));
-        }
-      }
-      else
-      {
-        try
-        {
-          dataSources[i] =
-              new DataSource(new StaticDataSource(Integer
-                  .parseInt(dataSourceDef)));
-        }
-        catch (NumberFormatException nfe)
-        {
-          dataSources[i] =
-              new DataSource(new StaticDataSource(dataSourceDef));
-        }
-      }
-    }
-
-    return dataSources;
-  }
-
-
-
-  /**
-   * Returns Generated data from the specified data sources. Generated
-   * data will be placed in the specified data array. If the data array
-   * is null or smaller than the number of data sources, one will be
-   * allocated.
-   * 
-   * @param dataSources
-   *          Data sources that will generate arguments referenced by
-   *          the format specifiers in the format string.
-   * @param data
-   *          The array where genereated data will be placed to format
-   *          the string.
-   * @return A formatted string
-   */
-  public static Object[] generateData(DataSource[] dataSources,
-      Object[] data)
-  {
-    if (data == null || data.length < dataSources.length)
-    {
-      data = new Object[dataSources.length];
-    }
-    for (int i = 0; i < dataSources.length; i++)
-    {
-      data[i] = dataSources[i].getData();
-    }
-    return data;
+    return impl.getData();
   }
 }

--
Gitblit v1.10.0