org.apache.pdfbox.pdmodel.common.function.type4.Operators Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pdfbox Show documentation
Show all versions of pdfbox Show documentation
The Apache PDFBox library is an open source Java tool for working with PDF documents.
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.pdfbox.pdmodel.common.function.type4;
import java.util.Map;
/**
* This class provides all the supported operators.
* @version $Revision$
*/
public class Operators
{
//Arithmetic operators
private static final Operator ABS = new ArithmeticOperators.Abs();
private static final Operator ADD = new ArithmeticOperators.Add();
private static final Operator ATAN = new ArithmeticOperators.Atan();
private static final Operator CEILING = new ArithmeticOperators.Ceiling();
private static final Operator COS = new ArithmeticOperators.Cos();
private static final Operator CVI = new ArithmeticOperators.Cvi();
private static final Operator CVR = new ArithmeticOperators.Cvr();
private static final Operator DIV = new ArithmeticOperators.Div();
private static final Operator EXP = new ArithmeticOperators.Exp();
private static final Operator FLOOR = new ArithmeticOperators.Floor();
private static final Operator IDIV = new ArithmeticOperators.IDiv();
private static final Operator LN = new ArithmeticOperators.Ln();
private static final Operator LOG = new ArithmeticOperators.Log();
private static final Operator MOD = new ArithmeticOperators.Mod();
private static final Operator MUL = new ArithmeticOperators.Mul();
private static final Operator NEG = new ArithmeticOperators.Neg();
private static final Operator ROUND = new ArithmeticOperators.Round();
private static final Operator SIN = new ArithmeticOperators.Sin();
private static final Operator SQRT = new ArithmeticOperators.Sqrt();
private static final Operator SUB = new ArithmeticOperators.Sub();
private static final Operator TRUNCATE = new ArithmeticOperators.Truncate();
//Relational, boolean and bitwise operators
private static final Operator AND = new BitwiseOperators.And();
private static final Operator BITSHIFT = new BitwiseOperators.Bitshift();
private static final Operator EQ = new RelationalOperators.Eq();
private static final Operator FALSE = new BitwiseOperators.False();
private static final Operator GE = new RelationalOperators.Ge();
private static final Operator GT = new RelationalOperators.Gt();
private static final Operator LE = new RelationalOperators.Le();
private static final Operator LT = new RelationalOperators.Lt();
private static final Operator NE = new RelationalOperators.Ne();
private static final Operator NOT = new BitwiseOperators.Not();
private static final Operator OR = new BitwiseOperators.Or();
private static final Operator TRUE = new BitwiseOperators.True();
private static final Operator XOR = new BitwiseOperators.Xor();
//Conditional operators
private static final Operator IF = new ConditionalOperators.If();
private static final Operator IFELSE = new ConditionalOperators.IfElse();
//Stack operators
private static final Operator COPY = new StackOperators.Copy();
private static final Operator DUP = new StackOperators.Dup();
private static final Operator EXCH = new StackOperators.Exch();
private static final Operator INDEX = new StackOperators.Index();
private static final Operator POP = new StackOperators.Pop();
private static final Operator ROLL = new StackOperators.Roll();
private Map operators = new java.util.HashMap();
/**
* Creates a new Operators object with the default set of operators.
*/
public Operators()
{
operators.put("add", ADD);
operators.put("abs", ABS);
operators.put("atan", ATAN);
operators.put("ceiling", CEILING);
operators.put("cos", COS);
operators.put("cvi", CVI);
operators.put("cvr", CVR);
operators.put("div", DIV);
operators.put("exp", EXP);
operators.put("floor", FLOOR);
operators.put("idiv", IDIV);
operators.put("ln", LN);
operators.put("log", LOG);
operators.put("mod", MOD);
operators.put("mul", MUL);
operators.put("neg", NEG);
operators.put("round", ROUND);
operators.put("sin", SIN);
operators.put("sqrt", SQRT);
operators.put("sub", SUB);
operators.put("truncate", TRUNCATE);
operators.put("and", AND);
operators.put("bitshift", BITSHIFT);
operators.put("eq", EQ);
operators.put("false", FALSE);
operators.put("ge", GE);
operators.put("gt", GT);
operators.put("le", LE);
operators.put("lt", LT);
operators.put("ne", NE);
operators.put("not", NOT);
operators.put("or", OR);
operators.put("true", TRUE);
operators.put("xor", XOR);
operators.put("if", IF);
operators.put("ifelse", IFELSE);
operators.put("copy", COPY);
operators.put("dup", DUP);
operators.put("exch", EXCH);
operators.put("index", INDEX);
operators.put("pop", POP);
operators.put("roll", ROLL);
}
/**
* Returns the operator for the given operator name.
* @param operatorName the operator name
* @return the operator (or null if there's no such operator
*/
public Operator getOperator(String operatorName)
{
return this.operators.get(operatorName);
}
}