Coverage Report - org.apache.commons.ognl.ASTIn
 
Classes in this File Line Coverage Branch Coverage Complexity
ASTIn
61%
13/21
50%
1/2
1.875
 
 1  
 package org.apache.commons.ognl;
 2  
 
 3  
 /*
 4  
  * Licensed to the Apache Software Foundation (ASF) under one
 5  
  * or more contributor license agreements.  See the NOTICE file
 6  
  * distributed with this work for additional information
 7  
  * regarding copyright ownership.  The ASF licenses this file
 8  
  * to you under the Apache License, Version 2.0 (the
 9  
  * "License"); you may not use this file except in compliance
 10  
  * with 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,
 15  
  * software distributed under the License is distributed on an
 16  
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 17  
  * KIND, either express or implied.  See the License for the
 18  
  * specific language governing permissions and limitations
 19  
  * under the License.
 20  
  */
 21  
 
 22  
 import org.apache.commons.ognl.enhance.UnsupportedCompilationException;
 23  
 
 24  
 /**
 25  
  * $Id: ASTIn.java 1194869 2011-10-29 11:10:16Z mcucchiara $
 26  
  * @author Luke Blanshard (blanshlu@netscape.net)
 27  
  * @author Drew Davidson (drew@ognl.org)
 28  
  */
 29  
 class ASTIn
 30  
     extends SimpleNode
 31  
     implements NodeType
 32  
 {
 33  
     public ASTIn( int id )
 34  
     {
 35  7
         super( id );
 36  7
     }
 37  
 
 38  
     public ASTIn( OgnlParser p, int id )
 39  
     {
 40  0
         super( p, id );
 41  0
     }
 42  
 
 43  
     protected Object getValueBody( OgnlContext context, Object source )
 44  
         throws OgnlException
 45  
     {
 46  2
         Object v1 = children[0].getValue( context, source );
 47  2
         Object v2 = children[1].getValue( context, source );
 48  
 
 49  2
         return OgnlOps.in( v1, v2 ) ? Boolean.TRUE : Boolean.FALSE;
 50  
     }
 51  
 
 52  
     public Class getGetterClass()
 53  
     {
 54  0
         return Boolean.TYPE;
 55  
     }
 56  
 
 57  
     public Class getSetterClass()
 58  
     {
 59  0
         return null;
 60  
     }
 61  
 
 62  
     public String toGetSourceString( OgnlContext context, Object target )
 63  
     {
 64  
         try
 65  
         {
 66  3
             String result = "org.apache.commons.ognl.OgnlOps.in( ($w) ";
 67  
 
 68  3
             result +=
 69  
                 OgnlRuntime.getChildSource( context, target, children[0] ) + ", ($w) "
 70  
                     + OgnlRuntime.getChildSource( context, target, children[1] );
 71  
 
 72  2
             result += ")";
 73  
 
 74  2
             context.setCurrentType( Boolean.TYPE );
 75  
 
 76  2
             return result;
 77  
         }
 78  0
         catch ( NullPointerException e )
 79  
         {
 80  
 
 81  
             // expected to happen in some instances
 82  0
             e.printStackTrace();
 83  
 
 84  0
             throw new UnsupportedCompilationException( "evaluation resulted in null expression." );
 85  
         }
 86  1
         catch ( Throwable t )
 87  
         {
 88  1
             throw OgnlOps.castToRuntime( t );
 89  
         }
 90  
     }
 91  
 
 92  
     public String toSetSourceString( OgnlContext context, Object target )
 93  
     {
 94  3
         throw new UnsupportedCompilationException( "Map expressions not supported as native java yet." );
 95  
     }
 96  
     
 97  
     public <R, P> R accept( NodeVisitor<? extends R, ? super P> visitor, P data )
 98  
         throws OgnlException
 99  
     {
 100  0
         return visitor.visit( this, data );
 101  
     }
 102  
 }