Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
   *
   * This Source Code Form is subject to the terms of the Mozilla Public
   * License, v. 2.0. If a copy of the MPL was not distributed with this
   * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  
  package org.mozilla.javascript.ast;
  
AST node representing unary operators such as ++, ~, typeof and delete. The type field is set to the appropriate Token type for the operator. The node length spans from the operator to the end of the operand (for prefix operators) or from the start of the operand to the operator (for postfix).

The default xml namespace = <expr> statement in E4X (JavaScript 1.6) is represented as a UnaryExpression of node type org.mozilla.javascript.Token.DEFAULTNAMESPACE, wrapped with an ExpressionStatement.

 
 public class UnaryExpression extends AstNode {
 
     private AstNode operand;
     private boolean isPostfix;
 
     public UnaryExpression() {
     }
 
     public UnaryExpression(int pos) {
         super(pos);
     }

    
Constructs a new postfix UnaryExpression
 
     public UnaryExpression(int posint len) {
         super(poslen);
     }

    
Constructs a new prefix UnaryExpression.
 
     public UnaryExpression(int operatorint operatorPosition,
                            AstNode operand) {
         this(operatoroperatorPositionoperandfalse);
     }

    
Constructs a new UnaryExpression with the specified operator and operand. It sets the parent of the operand, and sets its own bounds to encompass the operator and operand.

Parameters:
operator the node type
operatorPosition the absolute position of the operator.
operand the operand expression
postFix true if the operator follows the operand. Int
Throws:
java.lang.IllegalArgumentException} if operand is null
 
     public UnaryExpression(int operatorint operatorPosition,
                            AstNode operandboolean postFix) {
         assertNotNull(operand);
         int beg = postFix ? operand.getPosition() : operatorPosition;
         // JavaScript only has ++ and -- postfix operators, so length is 2
         int end = postFix
                   ? operatorPosition + 2
                   : operand.getPosition() + operand.getLength();
         setBounds(begend);
         setOperator(operator);
         setOperand(operand);
          = postFix;
     }

    
Returns operator token – alias for org.mozilla.javascript.Node.getType()
 
     public int getOperator() {
         return ;
     }

    
Sets operator – same as org.mozilla.javascript.Node.setType(int), but throws an exception if the operator is invalid

Throws:
java.lang.IllegalArgumentException if operator is not a valid Token code
 
     public void setOperator(int operator) {
         if (!Token.isValidToken(operator))
             throw new IllegalArgumentException("Invalid token: " + operator);
         setType(operator);
     }
 
     public AstNode getOperand() {
         return ;
     }

    
Sets the operand, and sets its parent to be this node.

Throws:
java.lang.IllegalArgumentException} if operand is null
    public void setOperand(AstNode operand) {
        assertNotNull(operand);
        this. = operand;
        operand.setParent(this);
    }

    
Returns whether the operator is postfix
    public boolean isPostfix() {
        return ;
    }

    
Returns whether the operator is prefix
    public boolean isPrefix() {
        return !;
    }

    
Sets whether the operator is postfix
    public void setIsPostfix(boolean isPostfix) {
        this. = isPostfix;
    }
    @Override
    public String toSource(int depth) {
        StringBuilder sb = new StringBuilder();
        sb.append(makeIndent(depth));
        int type = getType();
        if (!) {
            sb.append(operatorToString(type));
            if (type == . || type == . || type == .) {
                sb.append(" ");
            }
        }
        sb.append(.toSource());
        if () {
            sb.append(operatorToString(type));
        }
        return sb.toString();
    }

    
Visits this node, then the operand.
    @Override
    public void visit(NodeVisitor v) {
        if (v.visit(this)) {
            .visit(v);
        }
    }
New to GrepCode? Check out our FAQ X