home *** CD-ROM | disk | FTP | other *** search
- package com.sun.xml.tree;
-
- import java.util.Dictionary;
- import java.util.Hashtable;
- import java.util.Locale;
-
- public class SimpleElementFactory implements ElementFactory {
- private Dictionary defaultMapping;
- private ClassLoader defaultLoader;
- private String defaultNs;
- private Dictionary nsMappings;
- private Dictionary nsLoaders;
- private Locale locale = Locale.getDefault();
- // $FF: synthetic field
- static Class class$com$sun$xml$tree$ElementNode;
-
- public void addMapping(String var1, Dictionary var2, ClassLoader var3) {
- if (var1 != null && var2 != null) {
- if (this.nsMappings == null) {
- this.nsMappings = new Hashtable();
- this.nsLoaders = new Hashtable();
- }
-
- this.nsMappings.put(var1, var2);
- if (var3 != null) {
- this.nsLoaders.put(var1, var3);
- }
-
- } else {
- throw new IllegalArgumentException();
- }
- }
-
- public void addMapping(Dictionary var1, ClassLoader var2) {
- if (var1 == null) {
- throw new IllegalArgumentException();
- } else {
- this.defaultMapping = var1;
- this.defaultLoader = var2;
- }
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- public ElementEx createElementEx(String var1) {
- return this.doMap(var1, this.defaultMapping, this.defaultLoader);
- }
-
- public ElementEx createElementEx(String var1, String var2) {
- Dictionary var3 = null;
- if (var1 == null) {
- var1 = this.defaultNs;
- }
-
- if (this.nsMappings != null) {
- var3 = (Dictionary)this.nsMappings.get(var1);
- }
-
- return var3 == null ? this.doMap(var2, this.defaultMapping, this.defaultLoader) : this.doMap(var2, var3, (ClassLoader)this.nsLoaders.get(var1));
- }
-
- private ElementNode doMap(String var1, Dictionary var2, ClassLoader var3) {
- Class var4 = this.map2Class(var1, var2, var3);
- if (var4 == null) {
- var4 = this.map2Class("*Element", var2, var3);
- }
-
- ElementNode var5;
- if (var4 == null) {
- var5 = new ElementNode();
- } else {
- try {
- var5 = (ElementNode)var4.newInstance();
- } catch (Exception var7) {
- throw new IllegalArgumentException(this.getMessage("SEF-003", new Object[]{var1, var4.getName(), ((Throwable)var7).getMessage()}));
- }
- }
-
- return var5;
- }
-
- String getMessage(String var1) {
- return this.getMessage(var1, (Object[])null);
- }
-
- String getMessage(String var1, Object[] var2) {
- return XmlDocument.catalog.getMessage(this.locale, var1, var2);
- }
-
- private Class map2Class(String var1, Dictionary var2, ClassLoader var3) {
- Object var4 = var2.get(var1);
- if (var4 instanceof Class) {
- return (Class)var4;
- } else if (var4 == null) {
- return null;
- } else if (var4 instanceof String) {
- String var5 = (String)var4;
-
- try {
- Class var6;
- if (var3 == null) {
- var6 = Class.forName(var5);
- } else {
- var6 = var3.loadClass(var5);
- }
-
- if (!(class$com$sun$xml$tree$ElementNode != null ? class$com$sun$xml$tree$ElementNode : (class$com$sun$xml$tree$ElementNode = class$("com.sun.xml.tree.ElementNode"))).isAssignableFrom(var6)) {
- throw new IllegalArgumentException(this.getMessage("SEF-000", new Object[]{var1, var5}));
- } else {
- var2.put(var1, var6);
- return var6;
- }
- } catch (ClassNotFoundException var8) {
- throw new IllegalArgumentException(this.getMessage("SEF-001", new Object[]{var1, var5, ((Throwable)var8).getMessage()}));
- }
- } else {
- throw new IllegalArgumentException(this.getMessage("SEF-002", new Object[]{var1}));
- }
- }
-
- public void setDefaultNamespace(String var1) {
- this.defaultNs = var1;
- }
- }
-