protected static class SOAPRequestSerializer.ParameterArrayBuilder extends Object implements SOAPInstanceBuilder
GATES_CONSTRUCTION, GATES_INITIALIZATION, REQUIRES_COMPLETION, REQUIRES_CREATION, REQUIRES_INITIALIZATION| Modifier and Type | Method and Description |
|---|---|
void |
construct()
Create a new instance optionally using cached values as constructor
parameters:
|
Object |
getInstance()
Return the instance that is being built.
|
void |
initialize()
If there is no default constructor then the constructor arguments will
have to be cached until they all arrive.
|
int |
memberGateType(int memberIndex)
Return the activity that is gated by a member along with the state
that member has to be in in order to allow the activity to proceed.
|
void |
setInstance(Object instance)
Use this method to cache an instance of the object.
|
void |
setMember(int index,
Object memberValue)
Initialize the value of a member of the object or cache the value for
later use during construction:
|
public int memberGateType(int memberIndex)
SOAPInstanceBuilderGATES_CONSTRUCTION or it
GATES_INITIALIZATION. A member that needs to be
created in order to allow its parent object to be created or
initialized REQUIRES_CREATION if it needs to be
fully initialized in order to be used in the activity that it
gates then it REQUIRES_INITIALIZATION. If it needs
all of its own members to be initialized all the way down
to the leaf members (members without sub-members), then it
REQUIRES_COMPLETION. Note that in an object graph
that contains loops none of the nodes on a looping branch will
ever be considered to be in the "complete" state.
Here is a sample implementation:
public int memberGateType(int memberIndex) {
switch (memberIndex) {
case CONSTRUCTOR_PARAM1:
return GATES_CONSTRUCTION + REQUIRES_INITIALIZATION;
case CONSTRUCTOR_PARAM2:
return GATES_CONSTRUCTION + REQUIRES_CREATION;
case CONSTRUCTOR_PARAM3:
return GATES_CONSTRUCTION + REQUIRES_COMPLETION;
case USED_IN_SETTER1:
return GATES_INITIALIZATION + REQUIRES_COMPLETION;
case USED_IN_SETTER2:
return GATES_INITIALIZATION + REQUIRES_INITIALIZATION;
case USED_IN_SETTER3:
return GATES_INITIALIZATION + REQUIRES_CREATION;
default :
return GATES_INITIALIZATION + REQUIRES_CREATION;
}
}
memberGateType in interface SOAPInstanceBuilderpublic void construct()
SOAPInstanceBuilder
public void construct() {
instance = new myType();
OR
instance = new myType(args.param1, args.param2, args.param3,
args.param4 ...);
}
construct in interface SOAPInstanceBuilderpublic void setMember(int index,
Object memberValue)
SOAPInstanceBuilder
public void setMember(int index, Object memberValue) {
switch (index) {
case INT_MEMBER1:
// Set a public data member
instance.intMember1 = ((Integer) memberValue).intValue();
// Or use a setter
instance.setIntMember1(((Integer) memberValue).intValue());
// Or if there is no default constructor you save them up
// for construction or initialization
this.intMember1 = ((Integer) memberValue).intValue();
break;
case OBJECT_MEMBER1:
instance.setObjectMember1((myObjectType) memberValue);
break;
}
}
setMember in interface SOAPInstanceBuilderpublic void initialize()
SOAPInstanceBuildersetmember now is the time to
use them to initialize members.
public void initialize() {
instance.setIntMember1(members.intMember1);
instance.setObjectMember1(members.objectMember1);
etc...
}
initialize in interface SOAPInstanceBuilderpublic void setInstance(Object instance)
SOAPInstanceBuildersetInstance in interface SOAPInstanceBuilderpublic Object getInstance()
SOAPInstanceBuildergetInstance in interface SOAPInstanceBuilderCopyright © 2017–2019 Eclipse Foundation. All rights reserved.