/** * * Copyright * 2009-2015 Jayway Products AB * 2016-2017 Föreningen Sambruk * * Licensed under AGPL, Version 3.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.gnu.org/licenses/agpl.txt * * 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 se.streamsource.streamflow.api.assembler; import org.qi4j.bootstrap.Assembler; import org.qi4j.bootstrap.AssemblyException; import org.qi4j.bootstrap.ModuleAssembly; import se.streamsource.streamflow.api.administration.*; import se.streamsource.streamflow.api.administration.filter.AssignActionValue; import se.streamsource.streamflow.api.administration.filter.ChangeOwnerActionValue; import se.streamsource.streamflow.api.administration.filter.CloseActionValue; import se.streamsource.streamflow.api.administration.filter.EmailActionValue; import se.streamsource.streamflow.api.administration.filter.EmailNotificationActionValue; import se.streamsource.streamflow.api.administration.filter.FilterValue; import se.streamsource.streamflow.api.administration.filter.LabelRuleValue; import se.streamsource.streamflow.api.administration.form.AttachmentFieldValue; import se.streamsource.streamflow.api.administration.form.CheckboxesFieldValue; import se.streamsource.streamflow.api.administration.form.ComboBoxFieldValue; import se.streamsource.streamflow.api.administration.form.CommentFieldValue; import se.streamsource.streamflow.api.administration.form.CreateFieldDTO; import se.streamsource.streamflow.api.administration.form.CreateFieldGroupDTO; import se.streamsource.streamflow.api.administration.form.DateFieldValue; import se.streamsource.streamflow.api.administration.form.FieldDefinitionAdminValue; import se.streamsource.streamflow.api.administration.form.FieldDefinitionValue; import se.streamsource.streamflow.api.administration.form.FieldGroupFieldValue; import se.streamsource.streamflow.api.administration.form.FieldValue; import se.streamsource.streamflow.api.administration.form.FormValue; import se.streamsource.streamflow.api.administration.form.GeoLocationFieldValue; import se.streamsource.streamflow.api.administration.form.ListBoxFieldValue; import se.streamsource.streamflow.api.administration.form.LocationDTO; import se.streamsource.streamflow.api.administration.form.NumberFieldValue; import se.streamsource.streamflow.api.administration.form.OpenSelectionFieldValue; import se.streamsource.streamflow.api.administration.form.OptionButtonsFieldValue; import se.streamsource.streamflow.api.administration.form.PageDefinitionValue; import se.streamsource.streamflow.api.administration.form.RequiredSignatureValue; import se.streamsource.streamflow.api.administration.form.RequiredSignaturesValue; import se.streamsource.streamflow.api.administration.form.SelectionFieldValue; import se.streamsource.streamflow.api.administration.form.TextAreaFieldValue; import se.streamsource.streamflow.api.administration.form.TextFieldValue; import se.streamsource.streamflow.api.administration.form.VisibilityRuleDefinitionValue; import se.streamsource.streamflow.api.administration.priority.PriorityDTO; import se.streamsource.streamflow.api.administration.priority.PriorityValue; import se.streamsource.streamflow.api.administration.surface.AccessPointDTO; import se.streamsource.streamflow.api.administration.surface.EmailAccessPointDTO; import se.streamsource.streamflow.api.administration.surface.SelectedTemplatesDTO; import se.streamsource.streamflow.api.external.ContentValue; import se.streamsource.streamflow.api.external.IntegrationPointDTO; import se.streamsource.streamflow.api.external.LogValue; import se.streamsource.streamflow.api.external.ShadowCaseDTO; import se.streamsource.streamflow.api.external.ShadowCaseLinkValue; import se.streamsource.streamflow.api.interaction.profile.UserProfileDTO; import se.streamsource.streamflow.api.overview.ProjectSummaryDTO; import se.streamsource.streamflow.api.surface.AccessPointSettingsDTO; import se.streamsource.streamflow.api.workspace.PerspectiveDTO; import se.streamsource.streamflow.api.workspace.ProjectListValue; import se.streamsource.streamflow.api.workspace.SearchResultDTO; import se.streamsource.streamflow.api.workspace.cases.CaseDTO; import se.streamsource.streamflow.api.workspace.cases.CaseOutputConfigDTO; import se.streamsource.streamflow.api.workspace.cases.attachment.AttachmentDTO; import se.streamsource.streamflow.api.workspace.cases.attachment.UpdateAttachmentDTO; import se.streamsource.streamflow.api.workspace.cases.caselog.CaseLogEntryDTO; import se.streamsource.streamflow.api.workspace.cases.caselog.CaseLogFilterValue; import se.streamsource.streamflow.api.workspace.cases.contact.ContactAddressDTO; import se.streamsource.streamflow.api.workspace.cases.contact.ContactDTO; import se.streamsource.streamflow.api.workspace.cases.contact.ContactEmailDTO; import se.streamsource.streamflow.api.workspace.cases.contact.ContactPhoneDTO; import se.streamsource.streamflow.api.workspace.cases.contact.ContactsDTO; import se.streamsource.streamflow.api.workspace.cases.contact.StreetSearchDTO; import se.streamsource.streamflow.api.workspace.cases.contact.StreetsDTO; import se.streamsource.streamflow.api.workspace.cases.conversation.ConversationDTO; import se.streamsource.streamflow.api.workspace.cases.conversation.ExternalEmailValue; import se.streamsource.streamflow.api.workspace.cases.conversation.MessageDTO; import se.streamsource.streamflow.api.workspace.cases.form.AttachmentFieldDTO; import se.streamsource.streamflow.api.workspace.cases.form.AttachmentFieldSubmission; import se.streamsource.streamflow.api.workspace.cases.form.FieldDTO; import se.streamsource.streamflow.api.workspace.cases.form.SubmittedFormDTO; import se.streamsource.streamflow.api.workspace.cases.form.SubmittedFormListDTO; import se.streamsource.streamflow.api.workspace.cases.form.SubmittedFormsListDTO; import se.streamsource.streamflow.api.workspace.cases.form.SubmittedPageDTO; import se.streamsource.streamflow.api.workspace.cases.general.CaseGeneralDTO; import se.streamsource.streamflow.api.workspace.cases.general.FieldSubmissionDTO; import se.streamsource.streamflow.api.workspace.cases.general.FieldSubmissionPluginDTO; import se.streamsource.streamflow.api.workspace.cases.general.FieldValueDTO; import se.streamsource.streamflow.api.workspace.cases.general.FormDraftDTO; import se.streamsource.streamflow.api.workspace.cases.general.FormDraftSettingsDTO; import se.streamsource.streamflow.api.workspace.cases.general.FormSignatureDTO; import se.streamsource.streamflow.api.workspace.cases.general.NoteDTO; import se.streamsource.streamflow.api.workspace.cases.general.PageSubmissionDTO; import se.streamsource.streamflow.api.workspace.cases.general.PermissionsDTO; import se.streamsource.streamflow.api.workspace.cases.general.SecondSigneeInfoValue; /** * Assembler for the Streamflow Client API. */ public class ClientAPIAssembler implements Assembler { public void assemble(ModuleAssembly module) throws AssemblyException { workspace(module); overview(module); administration(module); external(module); surface(module); } private void surface( ModuleAssembly surface) { surface.values( AccessPointSettingsDTO.class ); } private void external( ModuleAssembly external ) { external.values( ShadowCaseLinkValue.class, ShadowCaseDTO.class, ContentValue.class, LogValue.class, IntegrationPointDTO.class ); } private void workspace(ModuleAssembly workspace) { workspace.values(PerspectiveDTO.class); workspace.values(CaseDTO.class, CaseOutputConfigDTO.class, CaseGeneralDTO.class, ContactsDTO.class, ConversationDTO.class, MessageDTO.class, AttachmentDTO.class, UpdateAttachmentDTO.class, CaseLogEntryDTO.class, CaseLogFilterValue.class, NoteDTO.class, ExternalEmailValue.class, PermissionsDTO.class, PriorityValue.class, PriorityDTO.class, ProjectListValue.class, SearchResultDTO.class); workspace.values(FieldDTO.class, FormDraftDTO.class, FormDraftSettingsDTO.class, PageSubmissionDTO.class, FieldSubmissionDTO.class, FieldSubmissionPluginDTO.class, SubmittedFormDTO.class, SubmittedFormListDTO.class, SubmittedFormsListDTO.class, SubmittedPageDTO.class, FieldValueDTO.class, AttachmentFieldSubmission.class, AttachmentFieldDTO.class, FormSignatureDTO.class, SecondSigneeInfoValue.class ); workspace.values(ContactAddressDTO.class, ContactEmailDTO.class, ContactPhoneDTO.class, ContactDTO.class, StreetsDTO.class, StreetSearchDTO.class, UserProfileDTO.class); workspace.values(LocationDTO.class); } private void overview(ModuleAssembly overview) { overview.values(ProjectSummaryDTO.class); } private void administration(ModuleAssembly administration) { // Commands administration.values( ArchivalSettingsDTO.class, DueOnNotificationSettingsDTO.class, RequiresCaseTypeDTO.class, RegisterUserDTO.class, ChangePasswordDTO.class, NewUserDTO.class, NewProxyUserDTO.class, CreateFieldDTO.class, CreateFieldGroupDTO.class); // Queries administration.values(LinkTree.class, UserEntityDTO.class, ProxyUserListDTO.class, ProxyUserDTO.class, CaseTypeEntityDTO.class); // Filters administration.values(FilterValue.class); administration.values(LabelRuleValue.class); // Rules administration.values(AssignActionValue.class, ChangeOwnerActionValue.class, EmailActionValue.class, EmailNotificationActionValue.class, CloseActionValue.class); // Actions // Forms administration.values( FormValue.class, PageDefinitionValue.class, FieldValue.class, FieldDefinitionValue.class, FieldDefinitionAdminValue.class, RequiredSignaturesValue.class, RequiredSignatureValue.class, VisibilityRuleDefinitionValue.class, // Field types AttachmentFieldValue.class, CheckboxesFieldValue.class, ComboBoxFieldValue.class, CommentFieldValue.class, DateFieldValue.class, ListBoxFieldValue.class, NumberFieldValue.class, OptionButtonsFieldValue.class, OpenSelectionFieldValue.class, SelectionFieldValue.class, TextAreaFieldValue.class, TextFieldValue.class, FieldGroupFieldValue.class, GeoLocationFieldValue.class); // Surface administration.values(EmailAccessPointDTO.class, AccessPointDTO.class, SelectedTemplatesDTO.class ); } }