// Copyright 2004-2014 Jim Voris // // 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.qumasoft.clientapi; /** * A factory class used to create classes that provide implementations for the * {@link ClientAPI} interface and the {@link ClientAPIContext} interface. * * @author Jim Voris */ public final class ClientAPIFactory { /** * Make this private so it cannot be used. */ private ClientAPIFactory() { } /** * Create a class that implements the {@link ClientAPI} interface. * * @param clientAPIContext the client API context object that will be used * to hold state for the created ClientAPI. * * @return a new instance of a class that implements the {@link ClientAPI} * interface. */ public static ClientAPI createClientAPI(ClientAPIContext clientAPIContext) { ClientAPIContextImpl clientAPIContextImpl = (ClientAPIContextImpl) clientAPIContext; return new ClientAPIImpl(clientAPIContextImpl); } /** * Create a class that implements the {@link ClientAPIContext} interface. * Use this method to create the ClientAPIContext that you subsequently pass * to the createClientAPI factory method. * * @return a new instance of a class that implements the * {@link ClientAPIContext} interface. */ public static ClientAPIContext createClientAPIContext() { return new ClientAPIContextImpl(); } }