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

com.woorea.openstack.keystone.v3.api.GenericResource Maven / Gradle / Ivy

There is a newer version: 3.3.30-oss
Show newest version
/*******************************************************************************
 * Copyright (C) 2016 AT&T Intellectual Property. All rights reserved. This code is licensed under the Apache License, Version 2.0
 *******************************************************************************/


package com.woorea.openstack.keystone.v3.api;

import com.woorea.openstack.base.client.Entity;
import com.woorea.openstack.base.client.HttpMethod;
import com.woorea.openstack.base.client.OpenStackClient;
import com.woorea.openstack.base.client.OpenStackRequest;

public class GenericResource {

	protected final OpenStackClient CLIENT;
	
	protected CharSequence path;
	
	protected Class oneClass;
	protected Class manyClass;
	
	public GenericResource(OpenStackClient client, CharSequence path, Class oneClass, Class manyClass) {
		CLIENT = client;
		this.path = path;
		this.oneClass = oneClass;
		this.manyClass = manyClass;
	}
	
	public OpenStackRequest list() {
		return new OpenStackRequest(CLIENT, HttpMethod.GET, path, null, manyClass);
	}
	
	public OpenStackRequest create(One one) {
		return new OpenStackRequest(CLIENT, HttpMethod.POST, path, Entity.json(one), oneClass);
	}
	
	public OpenStackRequest show(String id) {
		return new OpenStackRequest(CLIENT, HttpMethod.GET, new StringBuilder(path).append("/").append(id).toString(), null, oneClass);
	}
	
	public OpenStackRequest update(String id, One one) {
		return new OpenStackRequest(CLIENT, HttpMethod.PATCH, new StringBuilder(path).append("/").append(id).toString(), Entity.json(one), oneClass);
	}
	
	public OpenStackRequest delete(String id) {
		return new OpenStackRequest(CLIENT, HttpMethod.DELETE, new StringBuilder(path).append("/").append(id).toString(), null, oneClass);
	}
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy