package io.cattle.platform.extension.api.manager;
import io.cattle.platform.extension.ExtensionManager;
import io.cattle.platform.extension.ExtensionPoint;
import io.github.ibuildthecloud.gdapi.factory.SchemaFactory;
import io.github.ibuildthecloud.gdapi.id.IdFormatter;
import io.github.ibuildthecloud.gdapi.model.ListOptions;
import io.github.ibuildthecloud.gdapi.model.Resource;
import io.github.ibuildthecloud.gdapi.request.ApiRequest;
import io.github.ibuildthecloud.gdapi.request.resource.impl.AbstractNoOpResourceManager;
import java.util.Map;
import javax.inject.Inject;
public class ExtensionManagerApi extends AbstractNoOpResourceManager {
ExtensionManager extensionManager;
@Override
public Class<?>[] getTypeClasses() {
return new Class<?>[] { ExtensionPoint.class };
}
@Override
protected Resource createResource(Object obj, IdFormatter idFormatter, ApiRequest request) {
if (obj instanceof ExtensionPoint) {
return constructResource(idFormatter, request.getSchemaFactory(), request.getSchemaFactory().getSchema(ExtensionPoint.class), obj, request);
}
return super.createResource(obj, idFormatter, request);
}
@Override
protected Object listInternal(SchemaFactory schemaFactory, String type, Map<Object, Object> criteria, ListOptions options) {
return extensionManager.getExtensions();
}
public ExtensionManager getExtensionManager() {
return extensionManager;
}
@Inject
public void setExtensionManager(ExtensionManager extensionManager) {
this.extensionManager = extensionManager;
}
}