swarm.defobj
Interface CustomizeC

All Known Subinterfaces:
ActionGroupC, ActivationOrderC, ActiveGraphC, ActiveOutFileC, ActivityControlC, ArchiverC, ArrayC, AveragerC, BehaviorPhaseC, BernoulliDistC, BooleanDistributionC, C2TAUS1genC, C2TAUS2genC, C2TAUS3genC, C2TAUSgenC, Ca2dC, CollectionC, ColormapC, CompoundActionC, ConcurrentGroupC, ConcurrentScheduleC, ControlPanelC, ConwayLife2dC, CreateC, CreatedClassC, DblBuffer2dC, DefaultProbeMapC, Diffuse2dC, Discrete2dC, DoubleDistributionC, EntropyC, ErrorC, EventTypeC, ExponentialDistC, EZBinC, EZDistributionC, EZGraphC, EZSequenceC, FArgumentsC, FCallC, FunctionGraphC, GammaDistC, Grid2dC, GUISwarmC, HDF5ArchiverC, HDF5C, Int2dFilerC, IntegerDistributionC, KeyedCollectionC, LispArchiverC, ListC, ListShufflerC, LogNormalDistC, MapC, MessageProbeC, MT19937genC, NormalC, NormalDistC, NSelectC, Object2dDisplayC, PermutationC, PermutationItemC, PMMLCG1genC, PMMLCGgenC, ProbabilityDistributionC, ProbeC, ProbeDisplayManagerC, ProbeLibraryC, ProbeMapC, PSWBgenC, QSortC, RandomBitDistC, ScheduleC, SimpleRandomGeneratorC, StringC, SwarmC, SwarmObjectC, SwarmProcessC, SymbolC, UNameC, UniformDoubleDistC, UniformIntegerDistC, UniformUnsignedDistC, UnsignedDistributionC, Value2dDisplayC, VarProbeC, WarningC, ZoneC

public abstract interface CustomizeC

Create-phase customization.. Some types accept create-time messages not only when creating a new instance, but to customize a new version of the type itself. Objects created from a customized type will have all options preset that create-time messages sent to the customized type object have already set. If many objects all need the same create-time options, it is often simpler (and can also be faster) to create a customized version of a type first, and then create further instances from that type. Customizing a type object does not modify the original type object, but instead creates a new type object that has the customizations built-in. A create: message on the new type object creates a new instance as if the same sequence of create-time messages had been sent to the original type object using createBegin: and createEnd. A type is customized by bracketing the sequence of create-time messages not with the createBegin: and createEnd messages used to create a new instance, but with customizeBegin: and customizeEnd messages instead. Whether a customized version of a type can be created depends on the implementation of the type itself. If a type does not support customization, a customizeBegin: message on the type raises an error. All types defined by an @protocol declaration may be relied on to support at least one cycle of customization to create a new type object. Whether an already customized type object (returned by customizeEnd) supports a further cycle of customization (by another sequence of customizeBegin:/customizeEnd) depends on the implementation of the original starting type. A type should not be relied on to support more than one cycle of customization unless it is specifically documented to do so.