/* * Copyright 2015 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jbpm.services.task.impl.model.xml; import static org.jbpm.services.task.impl.model.xml.AbstractJaxbTaskObject.convertListFromInterfaceToJaxbImpl; import static org.jbpm.services.task.impl.model.xml.AbstractJaxbTaskObject.unsupported; import static org.jbpm.services.task.impl.model.xml.JaxbOrganizationalEntity.convertListFromJaxbImplToInterface; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; import java.util.Collections; import java.util.List; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlSchemaType; import javax.xml.bind.annotation.XmlType; import org.jbpm.services.task.impl.model.xml.InternalJaxbWrapper.GetterUser; import org.kie.api.task.model.OrganizationalEntity; import org.kie.api.task.model.PeopleAssignments; import org.kie.api.task.model.User; import org.kie.internal.task.api.model.InternalPeopleAssignments; import com.fasterxml.jackson.annotation.JsonAutoDetect; @XmlType(name="people-assignments") @XmlAccessorType(XmlAccessType.FIELD) @JsonAutoDetect(getterVisibility=JsonAutoDetect.Visibility.NONE, setterVisibility=JsonAutoDetect.Visibility.NONE, fieldVisibility=JsonAutoDetect.Visibility.ANY) public class JaxbPeopleAssignments implements InternalPeopleAssignments { @XmlElement(name="task-initiator-id") @XmlSchemaType(name="string") private String taskInitiatorId; @XmlElement(name="potential-owners") private List<JaxbOrganizationalEntity> potentialOwners; @XmlElement(name="business-administrators") private List<JaxbOrganizationalEntity> businessAdministrators; @XmlElement(name="excluded-owners") private List<JaxbOrganizationalEntity> excludedOwners; @XmlElement(name="task-stakeholders") private List<JaxbOrganizationalEntity> taskStakeholders; @XmlElement private List<JaxbOrganizationalEntity> recipients; public JaxbPeopleAssignments() { // Default constructor for JAXB } public JaxbPeopleAssignments(PeopleAssignments peopleAssignments) { User taskInitiatorUser = peopleAssignments.getTaskInitiator(); if( taskInitiatorUser != null ) { this.taskInitiatorId = taskInitiatorUser.getId(); } this.businessAdministrators = convertListFromInterfaceToJaxbImpl(((InternalPeopleAssignments) peopleAssignments).getBusinessAdministrators(), OrganizationalEntity.class, JaxbOrganizationalEntity.class); this.excludedOwners = convertListFromInterfaceToJaxbImpl(((InternalPeopleAssignments) peopleAssignments).getExcludedOwners(), OrganizationalEntity.class, JaxbOrganizationalEntity.class); this.potentialOwners = convertListFromInterfaceToJaxbImpl(((InternalPeopleAssignments) peopleAssignments).getPotentialOwners(), OrganizationalEntity.class, JaxbOrganizationalEntity.class); this.recipients = convertListFromInterfaceToJaxbImpl(((InternalPeopleAssignments) peopleAssignments).getRecipients(), OrganizationalEntity.class, JaxbOrganizationalEntity.class); this.taskStakeholders = convertListFromInterfaceToJaxbImpl(((InternalPeopleAssignments) peopleAssignments).getTaskStakeholders(), OrganizationalEntity.class, JaxbOrganizationalEntity.class); } @Override public User getTaskInitiator() { if( this.taskInitiatorId != null ) { return new GetterUser(this.taskInitiatorId); } return null; } public void setTaskInitiator(User taskInitiatorUser) { if( taskInitiatorUser != null ) { this.taskInitiatorId = taskInitiatorUser.getId(); } } public String getTaskInitiatorId() { return taskInitiatorId; } public void setTaskInitiatorId(String taskInitiatorId) { this.taskInitiatorId = taskInitiatorId; } @Override public List<OrganizationalEntity> getPotentialOwners() { if( potentialOwners == null ) { return Collections.emptyList(); } return Collections.unmodifiableList(convertListFromJaxbImplToInterface(potentialOwners)); } public void setPotentialOwners(List<OrganizationalEntity> potentialOwners) { this.potentialOwners = convertListFromInterfaceToJaxbImpl(potentialOwners, OrganizationalEntity.class, JaxbOrganizationalEntity.class); } @Override public List<OrganizationalEntity> getBusinessAdministrators() { if( businessAdministrators == null ) { return Collections.emptyList(); } return Collections.unmodifiableList(convertListFromJaxbImplToInterface(businessAdministrators)); } public void setBusinessAdministrators(List<OrganizationalEntity> businessAdministrators) { this.businessAdministrators = convertListFromInterfaceToJaxbImpl(businessAdministrators, OrganizationalEntity.class, JaxbOrganizationalEntity.class); } @Override public List<OrganizationalEntity> getExcludedOwners() { if( excludedOwners == null ) { return Collections.emptyList(); } return Collections.unmodifiableList(convertListFromJaxbImplToInterface(excludedOwners)); } @Override public void setExcludedOwners(List<OrganizationalEntity> excludedOwners) { this.excludedOwners = convertListFromInterfaceToJaxbImpl(excludedOwners, OrganizationalEntity.class, JaxbOrganizationalEntity.class); } @Override public List<OrganizationalEntity> getTaskStakeholders() { if( taskStakeholders == null ) { return Collections.emptyList(); } return Collections.unmodifiableList(convertListFromJaxbImplToInterface(taskStakeholders)); } @Override public void setTaskStakeholders(List<OrganizationalEntity> taskStakeholders) { this.taskStakeholders = convertListFromInterfaceToJaxbImpl(taskStakeholders, OrganizationalEntity.class, JaxbOrganizationalEntity.class); } @Override public List<OrganizationalEntity> getRecipients() { if( recipients == null ) { return Collections.emptyList(); } return Collections.unmodifiableList(convertListFromJaxbImplToInterface(recipients)); } @Override public void setRecipients(List<OrganizationalEntity> recipients) { this.recipients = convertListFromInterfaceToJaxbImpl(recipients, OrganizationalEntity.class, JaxbOrganizationalEntity.class); } @Override public void writeExternal( ObjectOutput out ) throws IOException { unsupported(PeopleAssignments.class); } @Override public void readExternal( ObjectInput in ) throws IOException, ClassNotFoundException { unsupported(PeopleAssignments.class); } }