1 /*
2 * $Id: BitwiseNegExpression.java,v 1.0 2005/02/21 10:46:54 phk Exp
3 *
4 * Copyright 2005 (C) Pilho Kim. All Rights Reserved.
5 *
6 * Redistribution and use of this software and associated documentation
7 * ("Software"), with or without modification, are permitted provided that the
8 * following conditions are met: 1. Redistributions of source code must retain
9 * copyright statements and notices. Redistributions must also contain a copy
10 * of this document. 2. Redistributions in binary form must reproduce the above
11 * copyright notice, this list of conditions and the following disclaimer in
12 * the documentation and/or other materials provided with the distribution. 3.
13 * The name "groovy" must not be used to endorse or promote products derived
14 * from this Software without prior written permission of The Codehaus. For
15 * written permission, please contact info@codehaus.org. 4. Products derived
16 * from this Software may not be called "groovy" nor may "groovy" appear in
17 * their names without prior written permission of The Codehaus. "groovy" is a
18 * registered trademark of The Codehaus. 5. Due credit should be given to The
19 * Codehaus - http://groovy.codehaus.org/
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE CODEHAUS AND CONTRIBUTORS ``AS IS'' AND ANY
22 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
23 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24 * DISCLAIMED. IN NO EVENT SHALL THE CODEHAUS OR ITS CONTRIBUTORS BE LIABLE FOR
25 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
31 * DAMAGE.
32 *
33 */
34 package org.codehaus.groovy.ast.expr;
35
36 import org.codehaus.groovy.ast.GroovyCodeVisitor;
37 import org.codehaus.groovy.classgen.AsmClassGenerator;
38
39 /***
40 * @author phk
41 */
42 public class BitwiseNegExpression extends Expression {
43
44 private Expression expression;
45
46 public BitwiseNegExpression(Expression expression) {
47 this.expression = expression;
48 }
49
50 public Expression getExpression() {
51 return expression;
52 }
53
54 public void visit(GroovyCodeVisitor visitor) {
55 visitor.visitBitwiseNegExpression(this);
56 }
57
58 public Expression transformExpression(ExpressionTransformer transformer) {
59 return new BitwiseNegExpression(transformer.transform(expression));
60 }
61
62 protected void resolveType(AsmClassGenerator resolver) {
63 expression.resolve(resolver);
64 setTypeClass(expression.getTypeClass());
65 }
66
67 public String getText() {
68 return expression.getText();
69 }
70
71 public String getType() {
72 return expression.getType();
73 }
74
75 public boolean isDynamic() {
76 return false; //To change body of implemented methods use File | Settings | File Templates.
77 }
78
79 public Class getTypeClass() {
80 return expression.getTypeClass();
81 }
82 }