Method: nextVarName(String)

1: /*
2: * #%~
3: * VDM Code Generator
4: * %%
5: * Copyright (C) 2008 - 2014 Overture
6: * %%
7: * This program is free software: you can redistribute it and/or modify
8: * it under the terms of the GNU General Public License as
9: * published by the Free Software Foundation, either version 3 of the
10: * License, or (at your option) any later version.
11: *
12: * This program is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15: * GNU General Public License for more details.
16: *
17: * You should have received a copy of the GNU General Public
18: * License along with this program. If not, see
19: * <http://www.gnu.org/licenses/gpl-3.0.html>.
20: * #~%
21: */
22: package org.overture.codegen.ir;
23:
24: import java.util.HashMap;
25:
26: public class TempVarNameGen implements ITempVarGen
27: {
28:         private static final int START_VALUE = 1;
29:
30:         private HashMap<String, Integer> counters;
31:
32:         public TempVarNameGen()
33:         {
34:                 super();
35:                 this.counters = new HashMap<String, Integer>();
36:         }
37:
38:         @Override
39:         public void clear()
40:         {
41:                 counters.clear();
42:         }
43:
44:         @Override
45:         public String nextVarName(String prefix)
46:         {
47:•                int count = counters.containsKey(prefix) ? 1 + counters.get(prefix)
48:                                 : START_VALUE;
49:
50:                 counters.put(prefix, count);
51:
52:                 return prefix + count;
53:         }
54: }