1 /*
2  * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
3  */
4 /*
5  * Licensed to the Apache Software Foundation (ASF) under one or more
6  * contributor license agreements.  See the NOTICE file distributed with
7  * this work for additional information regarding copyright ownership.
8  * The ASF licenses this file to You under the Apache License, Version 2.0
9  * (the "License"); you may not use this file except in compliance with
10  * the License.  You may obtain a copy of the License at
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20 
21 package com.sun.org.apache.xpath.internal;
22 
23 import com.sun.org.apache.xpath.internal.functions.FuncExtFunction;
24 import com.sun.org.apache.xpath.internal.objects.XObject;
25 import java.util.List;
26 
27 /**
28  * Interface that XPath objects can call to obtain access to an
29  * ExtensionsTable.
30  *
31  * @LastModified: Oct 2017
32  */
33 public interface ExtensionsProvider
34 {
35   /**
36    * Is the extension function available?
37    */
38 
functionAvailable(String ns, String funcName)39   public boolean functionAvailable(String ns, String funcName)
40           throws javax.xml.transform.TransformerException;
41 
42   /**
43    * Is the extension element available?
44    */
elementAvailable(String ns, String elemName)45   public boolean elementAvailable(String ns, String elemName)
46           throws javax.xml.transform.TransformerException;
47 
48   /**
49    * Execute the extension function.
50    */
extFunction(String ns, String funcName, List<XObject> argVec, Object methodKey)51   public Object extFunction(String ns, String funcName, List<XObject> argVec,
52           Object methodKey)
53             throws javax.xml.transform.TransformerException;
54 
55   /**
56    * Execute the extension function.
57    */
extFunction(FuncExtFunction extFunction, List<XObject> argVec)58   public Object extFunction(FuncExtFunction extFunction, List<XObject> argVec)
59             throws javax.xml.transform.TransformerException;
60 }
61