net.sf.composite.specialize.specializers
Class CloningSpecializer
java.lang.Object
net.sf.composite.specialize.specializers.BaseSpecializer
net.sf.composite.specialize.specializers.CloningSpecializer
- All Implemented Interfaces:
- Specializer
public class CloningSpecializer
- extends BaseSpecializer
Specializes a composite by cloning it and then filtering out components that
are not of the requested specializedType
. Since this
specializer relies on cloning, the original composite must implement the
requested specializedType
.
The main benefit of this specializer is performance. The main drawback
is that the composite to be specialized must implement all of the interfaces
to which it may be specialized.
- Since:
- Feb 2, 2006
- Author:
- Matt Sgarlata
Method Summary |
protected boolean |
isSpecializableImpl(java.lang.Object composite,
java.lang.Class specializedType)
Implementation template method. |
protected java.lang.Object |
specializeImpl(java.lang.Object composite,
java.lang.Class specializedType)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CloningSpecializer
public CloningSpecializer()
isSpecializableImpl
protected boolean isSpecializableImpl(java.lang.Object composite,
java.lang.Class specializedType)
throws java.lang.Exception
- Description copied from class:
BaseSpecializer
- Implementation template method.
- Specified by:
isSpecializableImpl
in class BaseSpecializer
- Returns:
- boolean
- Throws:
java.lang.Exception
specializeImpl
protected java.lang.Object specializeImpl(java.lang.Object composite,
java.lang.Class specializedType)
throws java.lang.Exception
- Specified by:
specializeImpl
in class BaseSpecializer
- Throws:
java.lang.Exception
Copyright © 2005-2008.