All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.finos.legend.sdlc.server.guice.BaseModule Maven / Gradle / Ivy

// Copyright 2020 Goldman Sachs
//
// Licensed under the Apache License, Version 2.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.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.finos.legend.sdlc.server.guice;

import com.google.inject.Binder;
import org.finos.legend.sdlc.server.BaseLegendSDLCServer;
import org.finos.legend.sdlc.server.domain.api.backup.BackupApi;
import org.finos.legend.sdlc.server.domain.api.build.BuildApi;
import org.finos.legend.sdlc.server.domain.api.comparison.ComparisonApi;
import org.finos.legend.sdlc.server.domain.api.conflictResolution.ConflictResolutionApi;
import org.finos.legend.sdlc.server.domain.api.entity.EntityApi;
import org.finos.legend.sdlc.server.domain.api.issue.IssueApi;
import org.finos.legend.sdlc.server.domain.api.project.ProjectApi;
import org.finos.legend.sdlc.server.domain.api.project.ProjectConfigurationApi;
import org.finos.legend.sdlc.server.domain.api.review.ReviewApi;
import org.finos.legend.sdlc.server.domain.api.revision.RevisionApi;
import org.finos.legend.sdlc.server.domain.api.user.UserApi;
import org.finos.legend.sdlc.server.domain.api.version.VersionApi;
import org.finos.legend.sdlc.server.domain.api.workspace.WorkspaceApi;
import org.finos.legend.sdlc.server.gitlab.GitLabConfiguration;
import org.finos.legend.sdlc.server.gitlab.api.GitLabBackupApi;
import org.finos.legend.sdlc.server.gitlab.api.GitLabBuildApi;
import org.finos.legend.sdlc.server.gitlab.api.GitLabComparisonApi;
import org.finos.legend.sdlc.server.gitlab.api.GitLabConflictResolutionApi;
import org.finos.legend.sdlc.server.gitlab.api.GitLabEntityApi;
import org.finos.legend.sdlc.server.gitlab.api.GitLabIssueApi;
import org.finos.legend.sdlc.server.gitlab.api.GitLabProjectApi;
import org.finos.legend.sdlc.server.gitlab.api.GitLabProjectConfigurationApi;
import org.finos.legend.sdlc.server.gitlab.api.GitLabReviewApi;
import org.finos.legend.sdlc.server.gitlab.api.GitLabRevisionApi;
import org.finos.legend.sdlc.server.gitlab.api.GitLabUserApi;
import org.finos.legend.sdlc.server.gitlab.api.GitLabVersionApi;
import org.finos.legend.sdlc.server.gitlab.api.GitLabWorkspaceApi;
import org.finos.legend.sdlc.server.gitlab.auth.GitLabUserContext;
import org.finos.legend.sdlc.server.gitlab.resources.GitLabAuthResource;

public class BaseModule extends AbstractBaseModule
{
    public BaseModule(BaseLegendSDLCServer server)
    {
        super(server);
    }

    @Override
    protected void configureApis(Binder binder)
    {
        if (BaseLegendSDLCServer.GITLAB_MODE.equals(this.server.getMode()))
        {
            binder.bind(ProjectApi.class).to(GitLabProjectApi.class);
            binder.bind(ProjectConfigurationApi.class).to(GitLabProjectConfigurationApi.class);
            binder.bind(UserApi.class).to(GitLabUserApi.class);
            binder.bind(IssueApi.class).to(GitLabIssueApi.class);
            binder.bind(EntityApi.class).to(GitLabEntityApi.class);
            binder.bind(WorkspaceApi.class).to(GitLabWorkspaceApi.class);
            binder.bind(RevisionApi.class).to(GitLabRevisionApi.class);
            binder.bind(ReviewApi.class).to(GitLabReviewApi.class);
            binder.bind(BuildApi.class).to(GitLabBuildApi.class);
            binder.bind(VersionApi.class).to(GitLabVersionApi.class);
            binder.bind(ComparisonApi.class).to(GitLabComparisonApi.class);
            binder.bind(ConflictResolutionApi.class).to(GitLabConflictResolutionApi.class);
            binder.bind(BackupApi.class).to(GitLabBackupApi.class);
            binder.bind(GitLabUserContext.class);
            binder.bind(GitLabAuthResource.class);
            binder.bind(GitLabConfiguration.class).toProvider(() -> getConfiguration().getGitLabConfiguration());
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy