/** * Copyright (c) 2008-2011 Sonatype, Inc. * All rights reserved. Includes the third-party code listed at http://www.sonatype.com/products/nexus/attributions. * * This program is free software: you can redistribute it and/or modify it only under the terms of the GNU Affero General * Public License Version 3 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License Version 3 * for more details. * * You should have received a copy of the GNU Affero General Public License Version 3 along with this program. If not, see * http://www.gnu.org/licenses. * * Sonatype Nexus (TM) Open Source Version is available from Sonatype, Inc. Sonatype and Sonatype Nexus are trademarks of * Sonatype, Inc. Apache Maven is a trademark of the Apache Foundation. M2Eclipse is a trademark of the Eclipse Foundation. * All other trademarks are the property of their respective owners. */ package org.sonatype.nexus.gwt.client.nexus; import org.sonatype.gwt.client.resource.PathUtils; import org.sonatype.nexus.gwt.client.Nexus; import org.sonatype.nexus.gwt.client.NexusRestApi; import org.sonatype.nexus.gwt.client.services.ArtifactService; import org.sonatype.nexus.gwt.client.services.FeedsService; import org.sonatype.nexus.gwt.client.services.GlobalSettingsService; import org.sonatype.nexus.gwt.client.services.RepositoriesService; /** * The inteface published by Nexus REST API. All the URL's are calculated here, in single class. Hence, the "layout" of * Nexus REST API is concentrated here, almost nothing else here. * * @author cstamas */ public class DefaultNexusRestApi extends AbstractNexusService implements NexusRestApi { private ArtifactService artifactService; private FeedsService feedsService; private GlobalSettingsService globalSettingsService; private RepositoriesService repositoriesService; public DefaultNexusRestApi( Nexus nexus, String instanceName ) { super( nexus, PathUtils.append( nexus.getPath(), instanceName ) ); } public ArtifactService getArtifactService() { if ( artifactService == null ) { artifactService = new DefaultArtifactService( getNexus(), PathUtils.append( getPath(), "artifact" ) ); } return artifactService; } public FeedsService getFeedsService() { if ( feedsService == null ) { feedsService = new DefaultFeedsService( getNexus(), PathUtils.append( getPath(), "feeds" ) ); } return feedsService; } public GlobalSettingsService getGlobalSettingsService() { if ( globalSettingsService == null ) { globalSettingsService = new DefaultGlobalSettingsService( getNexus(), PathUtils.append( getPath(), "global_settings" ) ); } return globalSettingsService; } public RepositoriesService getRepositoriesService() { if ( repositoriesService == null ) { repositoriesService = new DefaultRepositoriesService( getNexus(), PathUtils.append( getPath(), "repositories" ) ); } return repositoriesService; } }