1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
/*
* Copyright © 2002 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* California 95054, U.S.A. All rights reserved. Sun Microsystems, Inc. has
* intellectual property rights relating to technology embodied in the product
* that is described in this document. In particular, and without limitation,
* these intellectual property rights may include one or more of the U.S.
* patents listed at http://www.sun.com/patents and one or more additional
* patents or pending patent applications in the U.S. and in other countries.
* U.S. Government Rights - Commercial software. Government users are subject
* to the Sun Microsystems, Inc. standard license agreement and applicable
* provisions of the FAR and its supplements. Use is subject to license terms.
* Sun, Sun Microsystems, the Sun logo and Java are trademarks or registered
* trademarks of Sun Microsystems, Inc. in the U.S. and other countries. This
* product is covered and controlled by U.S. Export Control laws and may be
* subject to the export or import laws in other countries. Nuclear, missile,
* chemical biological weapons or nuclear maritime end uses or end users,
* whether direct or indirect, are strictly prohibited. Export or reexport
* to countries subject to U.S. embargo or to entities identified on U.S.
* export exclusion lists, including, but not limited to, the denied persons
* and specially designated nationals lists is strictly prohibited.
*/
import java.io.*;
import java.util.*;
public class Globals {
// The mappings from old id's to new id's.
static Hashtable mappings = new Hashtable();
// A table of targets of all known mappings.
static Hashtable mapTargets = new Hashtable();
// These id's may not be changed.
static Hashtable noChangeIds = new Hashtable();
// These id's should be used for mappings.
static Hashtable useIds = new Hashtable();
// The location of the input and output directories.
static File inpDir, outDir;
// Set to true by Java parser if class has a main program.
static boolean mainExists;
// Returns the map of old to obfuscated id. If map does not
// exist, it is created.
static String map(String str) {
Object obj = mappings.get(str);
if (obj != null) {
return (String)obj;
}
if (useIds.isEmpty()) {
String newId = "O0" + counter++;
mappings.put(str, newId);
return newId;
} else {
obj = useIds.keys().nextElement();
useIds.remove(obj);
String newId = (String)obj;
mappings.put(str, newId);
return newId;
}
}
// A counter used to generate new identifiers
static int counter = 0;
}
|