
com.sap.cloud.sdk.cloudplatform.connectivity.ScpXfDestinationFacade Maven / Gradle / Ivy
Show all versions of connectivity-scp-cf Show documentation
/*
* Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved.
*/
package com.sap.cloud.sdk.cloudplatform.connectivity;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Nonnull;
import com.google.common.annotations.Beta;
import com.sap.cloud.sdk.cloudplatform.connectivity.exception.DestinationAccessException;
import lombok.Getter;
import lombok.Setter;
/**
* Facade implementation exposing only {@code Destination}s (not {@code RfcDestination}s) provided by the
* {@link ScpXfDestinationLoader}.
*
* To override the logic the destinations are retrieved use the {@link #setLoader(ScpXfDestinationLoader)} method.
*/
@Beta
public class ScpXfDestinationFacade extends AbstractDestinationFacade
{
/**
* The {@code ScpXfDestinationLoader} used to retrieve the destinations.
*/
@Getter
@Setter
@Nonnull
private ScpXfDestinationLoader loader = new DefaultScpXfDestinationLoader();
@Override
@Nonnull
public Class extends GenericDestination> getGenericDestinationClass()
{
return ScpXfDestination.class;
}
@Override
@Nonnull
public Class extends Destination> getDestinationClass()
{
return ScpXfDestination.class;
}
@Override
@Nonnull
public Class extends RfcDestination> getRfcDestinationClass()
{
throw new UnsupportedOperationException("ExtensionFactory destinations do not support communication via RFC.");
}
@Override
@Nonnull
public Map getGenericDestinationsByName()
throws DestinationAccessException
{
return new HashMap<>(loader.loadDestinations());
}
}