01: /*
02: * BEGIN_HEADER - DO NOT EDIT
03: *
04: * The contents of this file are subject to the terms
05: * of the Common Development and Distribution License
06: * (the "License"). You may not use this file except
07: * in compliance with the License.
08: *
09: * You can obtain a copy of the license at
10: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
11: * See the License for the specific language governing
12: * permissions and limitations under the License.
13: *
14: * When distributing Covered Code, include this CDDL
15: * HEADER in each file and include the License file at
16: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
17: * If applicable add the following below this CDDL HEADER,
18: * with the fields enclosed by brackets "[]" replaced with
19: * your own identifying information: Portions Copyright
20: * [year] [name of copyright owner]
21: */
22:
23: /*
24: * @(#)StatBase.java
25: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
26: *
27: * END_HEADER - DO NOT EDIT
28: */
29: package com.sun.jbi.binding.proxy.stats;
30:
31: import com.sun.jbi.binding.proxy.ExchangeEntry;
32:
33: import java.util.Iterator;
34: import java.util.LinkedList;
35:
36: /**
37: *
38: * @author Sun Microsystems, Inc.
39: */
40: public abstract class StatBase {
41: protected StatBase mChild;
42: protected StatBase mPeer;
43:
44: public Object clone() {
45: try {
46: StatBase sb = (StatBase) super .clone();
47:
48: if (sb.mChild != null) {
49: sb.mChild = (StatBase) sb.mChild.clone();
50: }
51: if (sb.mPeer != null) {
52: sb.mPeer = (StatBase) sb.mPeer.clone();
53: }
54: return (sb);
55: } catch (java.lang.CloneNotSupportedException cnsEx) {
56: return (null);
57: }
58: }
59:
60: public StatBase getPeer() {
61: return (mPeer);
62: }
63:
64: public StatBase getChild() {
65: return (mChild);
66: }
67:
68: public void addChild(StatBase child) {
69: mChild = child;
70: }
71:
72: public void addPeer(StatBase peer) {
73: mPeer = peer;
74: }
75:
76: public void apply(ExchangeEntry entry) {
77: if (mChild != null) {
78: mChild.apply(entry);
79: }
80: if (mPeer != null) {
81: mPeer.apply(entry);
82: }
83: }
84:
85: public void clear() {
86: if (mChild == null) {
87: mChild.clear();
88: }
89: if (mPeer == null) {
90: mPeer.clear();
91: }
92: }
93:
94: public abstract String report(int depth);
95: }
|