// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: packimports(3) fieldsfirst lnc // Source File Name: RuleManager.java package com.icl.saxon; import com.icl.saxon.expr.StandaloneContext; import com.icl.saxon.expr.XPathException; import com.icl.saxon.om.NamePool; import com.icl.saxon.om.NodeInfo; import com.icl.saxon.pattern.Pattern; import com.icl.saxon.pattern.UnionPattern; import java.util.Enumeration; import java.util.Hashtable; import javax.xml.transform.TransformerException; // Referenced classes of package com.icl.saxon: // Mode, NodeHandler, Context public class RuleManager { private Mode defaultMode; private Hashtable modes; private NamePool namePool; private StandaloneContext standaloneContext; public RuleManager(NamePool namepool) { /* 32*/ namePool = namepool; /* 33*/ resetHandlers(); } public void setStandaloneContext(StandaloneContext standalonecontext) { /* 43*/ standaloneContext = standalonecontext; } public StandaloneContext getStandaloneContext() { /* 55*/ if(standaloneContext == null) /* 56*/ standaloneContext = new StandaloneContext(namePool); /* 58*/ return standaloneContext; } public void resetHandlers() { /* 66*/ defaultMode = new Mode(); /* 67*/ modes = new Hashtable(); } public Mode getMode(int i) { /* 78*/ if(i == -1) /* 79*/ return defaultMode; /* 81*/ Integer integer = new Integer(i & 0xfffff); /* 82*/ Mode mode = (Mode)modes.get(integer); /* 83*/ if(mode == null) { /* 84*/ mode = new Mode(); /* 85*/ mode.setNameCode(i); /* 86*/ modes.put(integer, mode); } /* 88*/ return mode; } public void setHandler(String s, NodeHandler nodehandler) throws XPathException { /* 101*/ Pattern pattern = Pattern.make(s, getStandaloneContext()); /* 102*/ setHandler(pattern, nodehandler, defaultMode, 0); } public void setHandler(Pattern pattern, NodeHandler nodehandler, Mode mode, int i) { /* 117*/ if(pattern instanceof UnionPattern) { /* 118*/ UnionPattern unionpattern = (UnionPattern)pattern; /* 119*/ Pattern pattern1 = unionpattern.getLHS(); /* 120*/ Pattern pattern2 = unionpattern.getRHS(); /* 121*/ setHandler(pattern1, nodehandler, mode, i); /* 122*/ setHandler(pattern2, nodehandler, mode, i); /* 123*/ return; } else { /* 126*/ double d = pattern.getDefaultPriority(); /* 127*/ setHandler(pattern, nodehandler, mode, i, d); /* 128*/ return; } } public void setHandler(Pattern pattern, NodeHandler nodehandler, Mode mode, int i, double d) { /* 147*/ if(pattern instanceof UnionPattern) { /* 148*/ UnionPattern unionpattern = (UnionPattern)pattern; /* 149*/ Pattern pattern1 = unionpattern.getLHS(); /* 150*/ Pattern pattern2 = unionpattern.getRHS(); /* 151*/ setHandler(pattern1, nodehandler, mode, i, d); /* 152*/ setHandler(pattern2, nodehandler, mode, i, d); /* 153*/ return; } else { /* 156*/ mode.addRule(pattern, nodehandler, i, d); /* 157*/ return; } } public NodeHandler getHandler(NodeInfo nodeinfo, Context context) throws TransformerException { /* 168*/ return getHandler(nodeinfo, defaultMode, context); } public NodeHandler getHandler(NodeInfo nodeinfo, Mode mode, Context context) throws TransformerException { /* 182*/ if(mode == null) /* 183*/ mode = defaultMode; /* 186*/ NodeHandler nodehandler = (NodeHandler)mode.getRule(nodeinfo, context); /* 188*/ if(nodehandler != null) /* 188*/ return nodehandler; /* 190*/ else /* 190*/ return null; } public NodeHandler getHandler(NodeInfo nodeinfo, Mode mode, int i, int j, Context context) throws XPathException { /* 200*/ if(mode == null) /* 200*/ mode = defaultMode; /* 201*/ return (NodeHandler)mode.getRule(nodeinfo, i, j, context); } public Enumeration getAllModes() { /* 210*/ return modes.keys(); } }