package org.ovirt.engine.api.restapi.resource.aaa;
import static org.ovirt.engine.api.utils.ReflectionHelper.assignChildModel;
import org.ovirt.engine.api.model.Domain;
import org.ovirt.engine.api.resource.aaa.DomainGroupsResource;
import org.ovirt.engine.api.resource.aaa.DomainResource;
import org.ovirt.engine.api.resource.aaa.DomainUsersResource;
import org.ovirt.engine.api.restapi.model.Directory;
import org.ovirt.engine.api.restapi.resource.AbstractBackendSubResource;
import org.ovirt.engine.core.compat.Guid;
public class BackendDomainResource extends AbstractBackendSubResource<Domain, Directory>
implements DomainResource {
private String id;
private BackendDomainsResource parent;
public BackendDomainResource(String id, BackendDomainsResource parent) {
super(id, Domain.class, Directory.class);
this.id = id;
this.parent = parent;
}
@Override
public Domain get() {
Domain domain = parent.lookupDirectoryById(id, true);
return injectSearchLinks(addLinks(domain), subCollections);
}
public Domain getDirectory() {
return parent.lookupDirectoryById(id, false);
}
@Override
public DomainGroupsResource getGroupsResource() {
return inject(new BackendDomainGroupsResource(id, this));
}
@Override
public DomainUsersResource getUsersResource() {
return inject(new BackendDomainUsersResource(id, this));
}
@Override
protected Domain addParents(Domain domain) {
if(parent!=null){
assignChildModel(domain, Domain.class).setId(id);
}
return domain;
}
@Override
protected Guid asGuidOr404(String id) {
return null;
}
}