package org.ovirt.engine.api.restapi.resource; import static org.ovirt.engine.api.common.util.ReflectionHelper.assignChildModel; import static org.ovirt.engine.api.restapi.resource.BackendDomainsResource.SUB_COLLECTIONS; import org.ovirt.engine.api.model.Domain; import org.ovirt.engine.api.resource.DomainGroupsResource; import org.ovirt.engine.api.resource.DomainUsersResource; import org.ovirt.engine.api.resource.DomainResource; import org.ovirt.engine.api.restapi.model.Directory; 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, SUB_COLLECTIONS); this.id = id; this.parent = parent; } @Override public Domain get() { Domain domain = parent.lookupDirectoryById(id,true); return injectSearchLinks(addLinks(domain),SUB_COLLECTIONS); } public Domain getDirectory() { return parent.lookupDirectoryById(id,false); } @Override public DomainGroupsResource getDomainGroupsResource() { return inject(new BackendDomainGroupsResource(id, this)); } @Override public DomainUsersResource getDomainUsersResource() { return inject(new BackendDomainUsersResource(id, this)); } @Override protected Domain addParents(Domain domain) { if(parent!=null){ assignChildModel(domain, Domain.class).setId(id); } return domain; } }