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

org.appops.service.store.ServiceMetaRegistry Maven / Gradle / Ivy

There is a newer version: 1.0-RC-5
Show newest version
/*
 * AppOps is a Java framework to develop, deploy microservices with ease and is available for free
 * and common use developed by AinoSoft ( www.ainosoft.com )
 *
 * AppOps and AinoSoft are registered trademarks of Aino Softwares private limited, India.
 *
 * Copyright (C) <2016> 
 *
 * This program is free software: you can redistribute it and/or modify it under the terms of the
 * GNU General Public License as published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version along with applicable additional terms as
 * provisioned by GPL 3.
 *
 * 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
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License and applicable additional terms
 * along with this program.
 *
 * If not, see  and 
 */

package org.appops.service.store;

import java.util.ArrayList;
import java.util.Collection;
import org.appops.core.service.Parameter;
import org.appops.core.service.meta.InterfaceMeta;
import org.appops.core.service.meta.ServiceMeta;
import org.appops.core.service.meta.ServiceOpMeta;

/**
 * The type which stores service definition such as service meta information, service interface
 * definitions,service operation definitions etc.
 *
 */
public interface ServiceMetaRegistry {

  /**
   * Provides service definition instance.
   *
   * @param name Name of service.
   * @return Instance that contains service meta information.
   */
  public ServiceMeta getServiceMeta(String name);

  /**
   * Provides service operation definition.
   *
   * @param pathOrSignature Service operation path or signature.
   * @return Instance that contains service operation meta information.
   */
  public ServiceOpMeta getOpMeta(String pathOrSignature);

  /**
   * Provides service operation definition.
   *
   * @param serviceName name of the service
   * @param pathOrSignature Service operation path or signature.
   * @return Instance that contains service operation meta information.
   */
  public ServiceOpMeta getOpMeta(String serviceName, String pathOrSignature);

  /**
   * Provides service operation definition.
   *
   * @param id Service operation id.
   * @return Instance that contains service operation meta information.
   */
  public ServiceOpMeta getOpMetaById(Long id);

  /**
   * Provides service interface definition.
   *
   * @param service Name of service.
   * @param name Interface name which is to be looked for.
   * @return Instance that contains service interface meta information.
   */
  public InterfaceMeta getInterfaceMeta(String service, String name);

  /**
   * Adds service meta/definition to store.
   *
   * @param serviceMeta Service meta to be added.
   */
  public void addServiceMeta(ServiceMeta serviceMeta);

  /**
   * Adds interface meta to store.
   *
   * @param service Name of service under which interface is to be added.
   * @param intrfcMeta Interface definition which is to be added.
   */
  public void addInterfaceMeta(String service, InterfaceMeta intrfcMeta);

  /**
   * Adds operation meta to store.
   *
   * @param service Name of service under which operation is to be added.
   * @param intrfc Name of interface under which operation is to be added.
   * @param opMeta Operation definition which is to be added.
   */
  public void addOpMeta(String service, String intrfc, ServiceOpMeta opMeta);

  /**
   * 

* getAllServiceMetas. *

* * @return a {@link java.util.Collection} object. */ public Collection getAllServiceMetas(); /** *

* getServicesByPage. *

* * @param startIndex a {@link java.lang.Integer} object. * @param pageSize a {@link java.lang.Integer} object. * @return a {@link java.util.Collection} object. */ public Collection getServicesByPage(Integer startIndex, Integer pageSize); /** *

* getInterfaces. *

* * @param serviceName a {@link java.lang.String} object. * @return a {@link java.util.Collection} object. */ public Collection getInterfaces(String serviceName); /** *

* getOperations. *

* * @param serviceName a {@link java.lang.String} object. * @param interfaceName a {@link java.lang.String} object. * @return a {@link java.util.Collection} object. */ public Collection getOperations(String serviceName, String interfaceName); /** *

* getParameters. *

* * @param serviceName a {@link java.lang.String} object. * @param interfaceName a {@link java.lang.String} object. * @param operationName a {@link java.lang.String} object. * @return a {@link java.util.ArrayList} object. */ public ArrayList getParameters(String serviceName, String interfaceName, String operationName); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy