• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /*
2   * Licensed to the Apache Software Foundation (ASF) under one
3   * or more contributor license agreements. See the NOTICE file
4   * distributed with this work for additional information
5   * regarding copyright ownership. The ASF licenses this file
6   * to you under the Apache License, Version 2.0 (the  "License");
7   * you may not use this file except in compliance with the License.
8   * You may obtain a copy of the License at
9   *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  /*
19   * $Id: Mult.java 468655 2006-10-28 07:12:06Z minchau $
20   */
21  package org.apache.xpath.operations;
22  
23  import org.apache.xpath.XPathContext;
24  import org.apache.xpath.objects.XNumber;
25  import org.apache.xpath.objects.XObject;
26  
27  /**
28   * The '*' operation expression executer.
29   */
30  public class Mult extends Operation
31  {
32      static final long serialVersionUID = -4956770147013414675L;
33  
34    /**
35     * Apply the operation to two operands, and return the result.
36     *
37     *
38     * @param left non-null reference to the evaluated left operand.
39     * @param right non-null reference to the evaluated right operand.
40     *
41     * @return non-null reference to the XObject that represents the result of the operation.
42     *
43     * @throws javax.xml.transform.TransformerException
44     */
operate(XObject left, XObject right)45    public XObject operate(XObject left, XObject right)
46            throws javax.xml.transform.TransformerException
47    {
48      return new XNumber(left.num() * right.num());
49    }
50  
51    /**
52     * Evaluate this operation directly to a double.
53     *
54     * @param xctxt The runtime execution context.
55     *
56     * @return The result of the operation as a double.
57     *
58     * @throws javax.xml.transform.TransformerException
59     */
num(XPathContext xctxt)60    public double num(XPathContext xctxt)
61            throws javax.xml.transform.TransformerException
62    {
63      return (m_left.num(xctxt) * m_right.num(xctxt));
64    }
65  
66  }
67