KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > editor > SegmentCache


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.editor;
21
22 import java.util.ArrayList JavaDoc;
23 import java.util.List JavaDoc;
24 import javax.swing.text.Segment JavaDoc;
25
26 /**
27  * SegmentCache caches {@link javax.swing.text.Segment} instances
28  * to allow reusing of them.
29  * <br/>
30  * The caching is no longer performed as the object creation
31  * in the present JVMs is fast.
32  */

33 public class SegmentCache {
34     
35     private static final SegmentCache SHARED = new SegmentCache();
36     
37     /**
38      * @return shared cache instance.
39      */

40     public static SegmentCache getSharedInstance() {
41         return SHARED;
42     }
43
44     /**
45      * Constructs SegmentCache instance.
46      */

47     public SegmentCache() {
48     }
49     
50     /**
51      * Returns a free {@link javax.swing.text.Segment}. When done, the segment
52      * should be recycled by invoking {@link #releaseSegment()}.
53      */

54     public Segment JavaDoc getSegment() {
55         return new Segment JavaDoc();
56     }
57     
58     /**
59      * Releases a shared Segment.
60      * <BR>The shared segment must NOT be used after it's released.
61      * <BR>The shared segment must NOT be released more than once like this:
62      * <pre>
63      * segmentCache.releaseSegment(segment);
64      * segmentCache.releaseSegment(segment);
65      * </pre>
66      * <BR>Only the segments obtained from {@link #getSegment()}
67      * can be released.
68      * @param segment segment to be released.
69      */

70     public void releaseSegment(Segment JavaDoc segment) {
71         // Let the released segment be GCed.
72
}
73     
74     
75 }
76
Popular Tags