Clover coverage report - Maven Clover report
Coverage timestamp: Sun Jun 1 2008 20:05:13 EST
file stats: LOC: 79   Methods: 6
NCLOC: 49   Classes: 2
 
 Source file Conditionals Statements Methods TOTAL
CopyStateVisitor.java 50% 77.8% 100% 75%
coverage coverage
 1    /**
 2    * Copyright 2007 The Apache Software Foundation
 3    *
 4    * Licensed under the Apache License, Version 2.0 (the "License");
 5    * you may not use this file except in compliance with the License.
 6    * You may obtain a copy of the License at
 7    *
 8    * http://www.apache.org/licenses/LICENSE-2.0
 9    *
 10    * Unless required by applicable law or agreed to in writing, software
 11    * distributed under the License is distributed on an "AS IS" BASIS,
 12    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13    * See the License for the specific language governing permissions and
 14    * limitations under the License.
 15    */
 16    package org.codehaus.wadi.aop.tracker.visitor;
 17   
 18    import org.codehaus.wadi.aop.tracker.InstanceTracker;
 19    import org.codehaus.wadi.aop.tracker.InstanceTrackerVisitor;
 20    import org.codehaus.wadi.aop.tracker.VisitorContext;
 21    import org.codehaus.wadi.aop.tracker.basic.ValueUpdaterInfo;
 22    import org.codehaus.wadi.aop.tracker.basic.WireMarshaller;
 23   
 24    /**
 25    *
 26    * @version $Revision: 1538 $
 27    */
 28    public class CopyStateVisitor extends AbstractVisitor {
 29   
 30    private final WireMarshaller wireMarshaller;
 31    protected final InstanceTrackerVisitor setInstanceIdVisitor;
 32    protected final InstanceTrackerVisitor resetTrackingVisitor;
 33   
 34  19 public CopyStateVisitor(WireMarshaller wireMarshaller,
 35    InstanceTrackerVisitor setInstanceIdVisitor,
 36    InstanceTrackerVisitor resetTrackingVisitor) {
 37  19 if (null == wireMarshaller) {
 38  0 throw new IllegalArgumentException("wireMarshaller is required");
 39  19 } else if (null == setInstanceIdVisitor) {
 40  0 throw new IllegalArgumentException("setInstanceIdVisitor is required");
 41  19 } else if (null == resetTrackingVisitor) {
 42  0 throw new IllegalArgumentException("resetTrackingVisitor is required");
 43    }
 44  19 this.wireMarshaller = wireMarshaller;
 45  19 this.setInstanceIdVisitor = setInstanceIdVisitor;
 46  19 this.resetTrackingVisitor = resetTrackingVisitor;
 47    }
 48   
 49  17 public CopyStateVisitorContext newContext() {
 50  17 return new CopyStateVisitorContext();
 51    }
 52   
 53  17 public void visit(InstanceTracker instanceTracker, VisitorContext context) {
 54  17 if (!(context instanceof CopyStateVisitorContext)) {
 55  0 throw new IllegalArgumentException("Context is a [" + context.getClass().getName() + "] expected ["
 56    + CopyStateVisitorContext.class.getName() + "]");
 57    }
 58  17 CopyStateVisitorContext copyContext = (CopyStateVisitorContext) context;
 59  17 serializeValueUpdaterInfos(copyContext, instanceTracker);
 60    }
 61   
 62  17 protected void serializeValueUpdaterInfos(CopyStateVisitorContext copyContext, InstanceTracker instanceTracker) {
 63  17 ValueUpdaterInfo[] valueUpdaterInfos = buildValueUpdaterInfos(instanceTracker);
 64  17 copyContext.serializedValueUpdaterInfos = wireMarshaller.marshall(valueUpdaterInfos);
 65    }
 66   
 67  8 protected ValueUpdaterInfo[] buildValueUpdaterInfos(InstanceTracker instanceTracker) {
 68  8 return instanceTracker.retrieveValueUpdaterInfos(setInstanceIdVisitor, resetTrackingVisitor);
 69    }
 70   
 71    public static class CopyStateVisitorContext extends BaseVisitorContext {
 72    private byte[] serializedValueUpdaterInfos;
 73   
 74  17 public byte[] getSerializedValueUpdaterInfos() {
 75  17 return serializedValueUpdaterInfos;
 76    }
 77    }
 78   
 79    }