Clover coverage report -
Coverage timestamp: Thu Jul 5 2007 20:02:32 EDT
file stats: LOC: 64   Methods: 3
NCLOC: 28   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
MethodPersistentReference.java 0% 0% 0% 0%
coverage
 1    /*
 2    * JBoss, Home of Professional Open Source
 3    * Copyright 2005, JBoss Inc., and individual contributors as indicated
 4    * by the @authors tag. See the copyright.txt in the distribution for a
 5    * full listing of individual contributors.
 6    *
 7    * This is free software; you can redistribute it and/or modify it
 8    * under the terms of the GNU Lesser General Public License as
 9    * published by the Free Software Foundation; either version 2.1 of
 10    * the License, or (at your option) any later version.
 11    *
 12    * This software is distributed in the hope that it will be useful,
 13    * but WITHOUT ANY WARRANTY; without even the implied warranty of
 14    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 15    * Lesser General Public License for more details.
 16    *
 17    * You should have received a copy of the GNU Lesser General Public
 18    * License along with this software; if not, write to the Free
 19    * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 20    * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
 21    */
 22   
 23    package org.jboss.cache.pojo.memory;
 24   
 25    import java.lang.reflect.Method;
 26   
 27    /**
 28    * A reference to a field.
 29    * In case the reference is released, the reference will be reconstructed
 30    */
 31    public class MethodPersistentReference extends ArgumentPersistentReference
 32    {
 33  0 public MethodPersistentReference(Method method, int referenceType)
 34    {
 35  0 super(method != null ? method.getDeclaringClass() : null, method, referenceType);
 36  0 if (method != null)
 37    {
 38  0 this.name = method.getName();
 39  0 setArguments(method.getParameterTypes());
 40    }
 41    }
 42   
 43    private String name;
 44   
 45   
 46  0 public synchronized Object rebuildReference() throws Exception
 47    {
 48    // A reference to guarantee the value is not being GCed during while the value is being rebuilt
 49  0 Object returnValue = null;
 50  0 if ((returnValue = internalGet()) != null) return returnValue;
 51   
 52  0 Method aMethod = getMappedClass().getDeclaredMethod(name, getArguments());
 53  0 aMethod.setAccessible(true);
 54  0 buildReference(aMethod);
 55  0 return aMethod;
 56    }
 57   
 58  0 public Method getMethod()
 59    {
 60  0 return (Method) get();
 61    }
 62   
 63    }
 64