protected static Attribute<String> camundaCandidateStarterGroupsAttribute;
protected static Attribute<String> camundaCandidateStarterUsersAttribute;
public static void registerType(ModelBuilder modelBuilder) {
ModelElementTypeBuilder typeBuilder = modelBuilder.defineType(Process.class, BPMN_ELEMENT_PROCESS)
.namespaceUri(BPMN20_NS)
.extendsType(CallableElement.class)
.instanceProvider(new ModelTypeInstanceProvider<Process>() {
public Process newInstance(ModelTypeInstanceContext instanceContext) {
return new ProcessImpl(instanceContext);
}
});
processTypeAttribute = typeBuilder.enumAttribute(BPMN_ATTRIBUTE_PROCESS_TYPE, ProcessType.class)
.defaultValue(ProcessType.None)
.build();
isClosedAttribute = typeBuilder.booleanAttribute(BPMN_ATTRIBUTE_IS_CLOSED)
.defaultValue(false)
.build();
isExecutableAttribute = typeBuilder.booleanAttribute(BPMN_ATTRIBUTE_IS_EXECUTABLE)
.build();
// TODO: definitionalCollaborationRef
SequenceBuilder sequenceBuilder = typeBuilder.sequence();
auditingChild = sequenceBuilder.element(Auditing.class)
.build();
monitoringChild = sequenceBuilder.element(Monitoring.class)
.build();
propertyCollection = sequenceBuilder.elementCollection(Property.class)
.build();
laneSetCollection = sequenceBuilder.elementCollection(LaneSet.class)
.build();
flowElementCollection = sequenceBuilder.elementCollection(FlowElement.class)
.build();
artifactCollection = sequenceBuilder.elementCollection(Artifact.class)
.build();
resourceRoleCollection = sequenceBuilder.elementCollection(ResourceRole.class)
.build();
correlationSubscriptionCollection = sequenceBuilder.elementCollection(CorrelationSubscription.class)
.build();
supportsCollection = sequenceBuilder.elementCollection(Supports.class)
.qNameElementReferenceCollection(Process.class)
.build();
/** camunda extensions */
camundaCandidateStarterGroupsAttribute = typeBuilder.stringAttribute(CAMUNDA_ATTRIBUTE_CANDIDATE_STARTER_GROUPS)
.namespace(CAMUNDA_NS)
.build();
camundaCandidateStarterUsersAttribute = typeBuilder.stringAttribute(CAMUNDA_ATTRIBUTE_CANDIDATE_STARTER_USERS)
.namespace(CAMUNDA_NS)
.build();
typeBuilder.build();
}