package org.gcube.application.geoportal.client; import javax.ws.rs.client.WebTarget; import org.gcube.application.geoportal.client.legacy.ConcessioniManagerI; import org.gcube.application.geoportal.client.legacy.ConcessioniPlugin; import org.gcube.application.geoportal.client.legacy.MongoConcessioniPlugin; import org.gcube.application.geoportal.client.legacy.StatefulMongoConcessioniPlugin; import org.gcube.application.geoportal.common.model.document.Project; import org.gcube.application.geoportal.common.rest.ConcessioniI; import org.gcube.application.geoportal.common.rest.InterfaceConstants; import org.gcube.application.geoportal.common.rest.MongoConcessioni; import org.gcube.application.geoportal.common.rest.Projects; import org.gcube.common.clients.Plugin; import org.gcube.common.clients.ProxyBuilder; import org.gcube.common.clients.ProxyBuilderImpl; import org.gcube.common.clients.config.ProxyConfig; import lombok.AllArgsConstructor; @AllArgsConstructor public abstract class GeoportalAbstractPlugin implements Plugin{ public static ProxyBuilder> profiledDocuments(String profileID) { ProjectsInterfacePlugin plugin=new ProjectsInterfacePlugin(profileID); return new ProxyBuilderImpl>(plugin); } public static > ProxyBuilder profiledDocuments(String profileID, Class customClient) { ProjectsInterfacePlugin plugin=new ProjectsInterfacePlugin(profileID); plugin.setCustomClientImplementation(customClient); return new ProxyBuilderImpl(plugin); } public static

ProxyBuilder> profiledModel(String profileID, Class

customModel ) { ProjectsInterfacePlugin plugin=new ProjectsInterfacePlugin(profileID); plugin.setProfiledModel(customModel); return new ProxyBuilderImpl>(plugin); } public static

> ProxyBuilder profiledModel(String profileID, Class

customModel ,Class customClient) { ProjectsInterfacePlugin plugin=new ProjectsInterfacePlugin(profileID); plugin.setProfiledModel(customModel); plugin.setCustomClientImplementation(customClient); return new ProxyBuilderImpl(plugin); } @Override public Exception convert(Exception fault, ProxyConfig config) { return fault; } @Override public String name() { return InterfaceConstants.APPLICATION_BASE_PATH+InterfaceConstants.APPLICATION_PATH; } @Override public String namespace() { return InterfaceConstants.NAMESPACE; } @Override public String serviceClass() { return InterfaceConstants.SERVICE_CLASS; } @Override public String serviceName() { return InterfaceConstants.SERVICE_NAME; } //******** LEGACY public static ProxyBuilder concessioni() { return new ProxyBuilderImpl(concessioni_plugin); } public static ProxyBuilder mongoConcessioni(){ return new ProxyBuilderImpl(mongo_concessioni_plugin); } public static ProxyBuilder statefulMongoConcessioni(){ return new ProxyBuilderImpl(stateful_mongo_concessioni_plugin); } //** LEGACY @Deprecated private static ConcessioniPlugin concessioni_plugin=new ConcessioniPlugin(); @Deprecated private static MongoConcessioniPlugin mongo_concessioni_plugin=new MongoConcessioniPlugin(); @Deprecated private static StatefulMongoConcessioniPlugin stateful_mongo_concessioni_plugin=new StatefulMongoConcessioniPlugin(); }