1 26 package com.yworks.yguard.obf; 27 28 import java.io.*; 29 import java.lang.reflect.*; 30 import java.util.*; 31 import com.yworks.yguard.obf.classfile.*; 32 33 38 public class Pk extends PkCl 39 { 40 42 43 private Hashtable pks = new Hashtable(); 46 47 49 public static Pk createRoot(ClassTree classTree) {return new Pk(classTree);} 50 51 52 54 public Pk(ClassTree classTree) 55 { 56 this(null, ""); 57 this.classTree = classTree; 58 } 59 60 61 public Pk(TreeItem parent, String name) 62 { 63 super(parent, name); 64 if (parent == null && !name.equals("")) 65 { 66 throw new IllegalArgumentException ("Internal error: only the default package has no parent"); 67 } 68 else if (parent != null && name.equals("")) 69 { 70 throw new IllegalArgumentException ("Internal error: the default package cannot have a parent"); 71 } 72 } 73 74 75 public Pk getPackage(String name) {return (Pk)pks.get(name);} 76 77 78 public Enumeration getPackageEnum() {return pks.elements();} 79 80 81 public int getPackageCount() {return pks.size();} 82 83 84 public Pk addPackage(String name) 85 { 86 Pk pk = getPackage(name); 87 if (pk == null) 88 { 89 pk = new Pk(this, name); 90 pks.put(name, pk); 91 } 92 return pk; 93 } 94 95 96 public Cl addClass(String name, String superName, String [] interfaceNames, int modifiers) 97 { 98 return addClass(false, name, superName, interfaceNames, modifiers); 99 } 100 101 102 public Cl addPlaceholderClass(String name) 103 { 104 return addPlaceholderClass(false, name); 105 } 106 107 108 public void generateNames() 109 { 110 super.generateNames(); 111 generateNames(pks); 112 } 113 } 114 115 | Popular Tags |