Clover coverage report - ATP library for Java - 3.6.4-stable-060214
Coverage timestamp: Вт фев 14 2006 13:45:22 MSK
file stats: LOC: 102   Methods: 5
NCLOC: 59   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
PatternDefaultFunction.java 0% 0% 0% 0%
coverage
 1    /*
 2    * Copyright (c) 2001-2004,
 3    * RedVerst Group, ISP RAS http://www.ispras.ru
 4    * All rights reserved.
 5    *
 6    * Redistribution and use in source and binary forms, with or without
 7    * modification, are permitted provided that the following conditions are met:
 8    *
 9    * 1. Redistributions of source code must retain the above copyright notice, this
 10    * list of conditions and the following disclaimer.
 11    *
 12    * 2. Redistributions in binary form must reproduce the above copyright notice,
 13    * this list of conditions and the following disclaimer in the documentation
 14    * and/or other materials provided with the distribution.
 15    *
 16    * 3. The names "ATP", "TreeDL", "RedVerst", "ISP RAS"
 17    * may not be used to endorse or promote products derived from this software
 18    * without specific prior written permission.
 19    *
 20    * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 21    * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 22    * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 23    * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
 24    * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 25    * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 26    * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 27    * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 28    * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 29    * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 30    */
 31   
 32    package com.unitesk.atp.text.localize;
 33   
 34    import com.unitesk.atp.text.generation.DefaultFunction;
 35    import com.unitesk.atp.text.generation.Generator;
 36   
 37    public class PatternDefaultFunction extends DefaultFunction
 38    {
 39  0 public PatternDefaultFunction( PatternStringManager sm )
 40    {
 41  0 this.sm = sm;
 42    }
 43   
 44  0 public void setResource( String resource )
 45    {
 46  0 if( resource == null ) throw new NullPointerException( "resource" );
 47   
 48  0 this.resource = resource;
 49  0 this.resourceClass = null;
 50    }
 51   
 52  0 public void setResourceClass( Class resourceClass )
 53    {
 54  0 if( resourceClass == null ) throw new NullPointerException( "resourceClass" );
 55   
 56  0 this.resource = null;
 57  0 this.resourceClass = resourceClass;
 58    }
 59   
 60    //--------------------------------------------------------------------------
 61    // interface Function
 62   
 63  0 public void process( Object arg )
 64    {
 65  0 String pattern = getPattern( arg );
 66  0 if( pattern != null )
 67    {
 68  0 Object v = generator.setVariable( Generator.DEFAULT_NAME, arg );
 69  0 try
 70    {
 71  0 generator.txt( pattern );
 72    }
 73    finally
 74    {
 75  0 generator.setVariable( Generator.DEFAULT_NAME, v );
 76    }
 77    } else {
 78  0 super.process( arg );
 79    }
 80    }
 81   
 82  0 protected String getPattern( Object arg )
 83    {
 84  0 if( resource != null )
 85    {
 86  0 return sm.getPattern( resource, arg );
 87    } else {
 88  0 Class cls = resourceClass;
 89  0 while( true )
 90    {
 91  0 String pattern = sm.getPattern( cls.getName(), arg );
 92  0 if( pattern != null ) return pattern;
 93  0 cls = cls.getSuperclass();
 94  0 if( cls == null ) return null;
 95    }
 96    }
 97    }
 98   
 99    protected PatternStringManager sm;
 100    protected String resource;
 101    protected Class resourceClass;
 102    }