/* * Copyright 2012 Nodeable Inc * * 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 com.streamreduce.client.outbound; import com.streamreduce.core.model.OutboundConfiguration; import org.springframework.stereotype.Service; @Service public class OutboundClientFactory { public OutboundClient createOutboundClientForOutboundConfiguration(OutboundConfiguration outboundConfiguration) { if (outboundConfiguration.getProtocol().equals("s3")) { return createS3OutboundClient(outboundConfiguration); } else if (outboundConfiguration.getProtocol().equals("webhdfs")) { return createWebHDFSOutboundClient(outboundConfiguration); } throw new IllegalArgumentException("OutboundConfiguration does not have a Connection provider and protocol " + "property value that can be used to generate an OutboundClient"); } private WebHDFSOutboundClient createWebHDFSOutboundClient(OutboundConfiguration outboundConfiguration) { return new WebHDFSOutboundClient(outboundConfiguration); } private S3OutboundClient createS3OutboundClient(OutboundConfiguration outboundConfiguration) { return new S3OutboundClient(outboundConfiguration); } }