1 /*
2 * The contents of this file are subject to the BT "ZEUS" Open Source
3 * Licence (L77741), Version 1.0 (the "Licence"); you may not use this file
4 * except in compliance with the Licence. You may obtain a copy of the Licence
5 * from $ZEUS_INSTALL/licence.html or alternatively from
6 * http://www.labs.bt.com/projects/agents/zeus/licence.htm
7 *
8 * Except as stated in Clause 7 of the Licence, software distributed under the
9 * Licence is distributed WITHOUT WARRANTY OF ANY KIND, either express or
10 * implied. See the Licence for the specific language governing rights and
11 * limitations under the Licence.
12 *
13 * The Original Code is within the package zeus.*.
14 * The Initial Developer of the Original Code is British Telecommunications
15 * public limited company, whose registered office is at 81 Newgate Street,
16 * London, EC1A 7AJ, England. Portions created by British Telecommunications
17 * public limited company are Copyright 1996-9. All Rights Reserved.
18 *
19 * THIS NOTICE MUST BE INCLUDED ON ANY COPY OF THIS FILE
20 */
21
22
23
24 package zeus.util;
25
26 import java.util.*;
27
28
29 public class GenSym {
30 protected static final String SEP = "_";
31
32 protected String name = "genSym";
33 protected String suffix = "";
34 protected int count = 0;
35
36 public GenSym () {
37 this.name = "Default";
38 }
39
40 public GenSym(String name) {
41 Assert.notNull(name);
42 this.name = name;
43 }
44
45 public GenSym(String name, boolean isRuntime) {
46 this(name);
47 if ( isRuntime )
48 suffix = "_";
49 }
50 public synchronized void set(String name) {
51 Assert.notNull(name);
52 this.name = name;
53 }
54
55 public synchronized void set(int count) {
56 if ( count > this.count )
57 this.count = count;
58 }
59 public synchronized int getCount() {
60 return count;
61 }
62
63 public synchronized String plainId(String prefix) {
64 return prefix + suffix + (++count);
65 }
66 public synchronized String newId() {
67 return name + (++count);
68 }
69 public synchronized String newId(String text) {
70 return name + SEP + text + (++count);
71 }
72 }