com.sap.netweaver.bc.rf.util.flyweight

Class FlyWeightWithDescription

java.lang.Object
  extended bycom.sap.netweaver.bc.rf.util.flyweight.FlyWeight
      extended bycom.sap.netweaver.bc.rf.util.flyweight.FlyWeightWithDescription
All Implemented Interfaces:
Cloneable, Serializable

public abstract class FlyWeightWithDescription
extends FlyWeight

Abstract class extending the flyweight pattern by a description. You have to extend this class and make all methods derived from this abstract class final (except for toString())! This is necessary in order to ensure, that no class can be derived from your class overriding and thereby changing the inner mechanism to create an flyweight instance only once, return the same object on clone() etc. It is of greatest importance to ensure that both the id and the flyweight object itself are immutable! Preknown flyweight instances may be added as public final static flyweight members. If you just need to have the predefined flyweight instances, implement an appropriate private constructor, otherwise make it public:


 public class Property extends FlyWeightWithDescription
 {
     public final static Property RO = new Property( "RO", "Read Only" );
     public final static Property MV = new Property( "MV", "Multi Value" );

     private Property ( final Serializable id, final String description )
     {
         super(  id, description );
     }
 }
 

See Also:
Serialized Form

Constructor Summary
protected FlyWeightWithDescription(Serializable id, String description, boolean ignoreDuplicateRegistration)
          Construct instance of a flyweight with description.
 
Method Summary
 String getDescription()
          Get description of the flyweight instance.
 String toString()
          Get descriptive text for this flyweight instance.
 
Methods inherited from class com.sap.netweaver.bc.rf.util.flyweight.FlyWeight
clone, equals, getAllFlyWeights, getAllFlyWeightsInherited, getFlyWeight, getFlyWeightId, getFlyWeightInherited, hashCode, removeAllFlyWeights, removeAllFlyWeightsInherited, removeFlyWeight, removeFlyWeightInherited
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FlyWeightWithDescription

protected FlyWeightWithDescription(Serializable id,
                                   String description,
                                   boolean ignoreDuplicateRegistration)
Construct instance of a flyweight with description.

Parameters:
id - flyweight id
description - flyweight description
ignoreDuplicateRegistration - when true, don't throw IllegalArgumentException exception when the id is already in use
Method Detail

getDescription

public String getDescription()
Get description of the flyweight instance.

Returns:
description of the flyweight instance

toString

public String toString()
Get descriptive text for this flyweight instance.

Overrides:
toString in class FlyWeight
Returns:
descriptive text for this flyweight instance


Copyright 2006 SAP AG. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice. Microsoft, Windows, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation. Oracle is a registered trademark of Oracle Corporation. UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group. Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems, Inc. HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C, World Wide Web Consortium, Massachusetts Institute of Technology. Java is a registered trademark of Sun Microsystems, Inc. JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape. MaxDB is a trademark of MySQL AB, Sweden. SAP, R/3, mySAP, mySAP.com, xApps, xApp, SAP NetWeaver, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary. These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.