001 /* 002 * file StpReleasable.java 003 * 004 * Licensed Materials - Property of IBM 005 * Restricted Materials of IBM 006 * 007 * com.ibm.rational.wvcm.stp.StpReleasable 008 * 009 * (C) Copyright IBM Corporation 2004, 2008. All Rights Reserved. 010 * Note to U.S. Government Users Restricted Rights: Use, duplication or 011 * disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 012 */ 013 014 015 package com.ibm.rational.wvcm.stp; 016 017 /** 018 * A interface for objects that hold resources that can (and in some 019 * cases really should) be released prior to garbage collection. 020 */ 021 public interface StpReleasable { 022 023 /** 024 * A distinguished unchecked exception for use by implementations 025 * of Releasable. 026 * 027 * Implementations of Releasable should document if they actually 028 * throw this exception, under what conditions it occurs and what 029 * to expect for the exception's "cause" (Throwable.getCause()). 030 * 031 * <p>See {@link java.lang.Throwable} for a description of this general 032 * idiom of documenting/returning unchecked exceptions from 033 * general interfaces. 034 */ 035 public static class ReleaseException extends RuntimeException 036 { 037 /** 038 * 039 */ 040 private static final long serialVersionUID = -6014447477020398274L; 041 042 public ReleaseException(Throwable ex) { 043 super(ex); 044 } 045 } 046 047 /** 048 * Release the resources held by this object. 049 * 050 * Class's Javadoc comments indicate whether or not the unchecked 051 * ReleaseException can be thrown. 052 */ 053 void release(); 054 }