Package com.amazonaws.resources.identitymanagement.internal

Source Code of com.amazonaws.resources.identitymanagement.internal.GroupImpl

/*
* Copyright 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
*  http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.resources.identitymanagement.internal;

import java.util.Date;

import com.amazonaws.resources.ResultCapture;
import com.amazonaws.resources.identitymanagement.Group;
import com.amazonaws.resources.identitymanagement.GroupPolicy;
import com.amazonaws.resources.identitymanagement.GroupPolicyCollection;
import com.amazonaws.resources.identitymanagement.UserCollection;
import com.amazonaws.resources.internal.ActionResult;
import com.amazonaws.resources.internal.ResourceCodec;
import com.amazonaws.resources.internal.ResourceCollectionImpl;
import com.amazonaws.resources.internal.ResourceImpl;
import com.amazonaws.services.identitymanagement.model.AddUserToGroupRequest;
import com.amazonaws.services.identitymanagement.model.CreateGroupRequest;
import com.amazonaws.services.identitymanagement.model.CreateGroupResult;
import com.amazonaws.services.identitymanagement.model.DeleteGroupRequest;
import com.amazonaws.services.identitymanagement.model.GetGroupRequest;
import com.amazonaws.services.identitymanagement.model.GetGroupResult;
import com.amazonaws.services.identitymanagement.model.ListGroupPoliciesRequest;
import com.amazonaws.services.identitymanagement.model.PutGroupPolicyRequest;
import
com.amazonaws.services.identitymanagement.model.RemoveUserFromGroupRequest;
import com.amazonaws.services.identitymanagement.model.UpdateGroupRequest;

class GroupImpl implements Group {
    public static final ResourceCodec<Group> CODEC = new Codec();

    private final ResourceImpl resource;

    public GroupImpl(ResourceImpl resource) {
        this.resource = resource;
    }

    @Override
    public boolean isLoaded() {
        return resource.isLoaded();
    }

    @Override
    public boolean load() {
        return load(null, null);
    }

    @Override
    public boolean load(GetGroupRequest request) {
        return load(request, null);
    }

    @Override
    public boolean load(GetGroupRequest request, ResultCapture<GetGroupResult>
            extractor) {

        return resource.load(request, extractor);
    }

    @Override
    public String getName() {
        return (String) resource.getIdentifier("Name");
    }

    @Override
    public String getArn() {
        return (String) resource.getAttribute("Arn");
    }

    @Override
    public Date getCreateDate() {
        return (Date) resource.getAttribute("CreateDate");
    }

    @Override
    public String getGroupId() {
        return (String) resource.getAttribute("GroupId");
    }

    @Override
    public String getPath() {
        return (String) resource.getAttribute("Path");
    }

    @Override
    public GroupPolicy getGroupPolicy(String name) {
        ResourceImpl result = resource.getSubResource("GroupPolicy", name);
        if (result == null) return null;
        return new GroupPolicyImpl(result);
    }

    @Override
    public UserCollection getUsers() {
        return getUsers(null);
    }

    @Override
    public UserCollection getUsers(GetGroupRequest request) {
        ResourceCollectionImpl result = resource.getCollection("Users",
                request);

        if (result == null) return null;
        return new UserCollectionImpl(result);
    }

    @Override
    public GroupPolicyCollection getPolicies() {
        return getPolicies(null);
    }

    @Override
    public GroupPolicyCollection getPolicies(ListGroupPoliciesRequest request) {
        ResourceCollectionImpl result = resource.getCollection("Policies",
                request);

        if (result == null) return null;
        return new GroupPolicyCollectionImpl(result);
    }

    @Override
    public void addUser(AddUserToGroupRequest request) {
        addUser(request, null);
    }

    @Override
    public void addUser(AddUserToGroupRequest request, ResultCapture<Void>
            extractor) {

        resource.performAction("AddUser", request, extractor);
    }

    @Override
    public void addUser(String userName) {
        addUser(userName, (ResultCapture<Void>)null);
    }

    @Override
    public void addUser(String userName, ResultCapture<Void> extractor) {
        AddUserToGroupRequest request = new AddUserToGroupRequest()
            .withUserName(userName);
        addUser(request, extractor);
    }

    @Override
    public Group update(UpdateGroupRequest request) {
        return update(request, null);
    }

    @Override
    public Group update(UpdateGroupRequest request, ResultCapture<Void>
            extractor) {

        ActionResult result = resource.performAction("Update", request,
                extractor);

        if (result == null) return null;
        return new GroupImpl(result.getResource());
    }

    @Override
    public Group update() {
        return update((ResultCapture<Void>)null);
    }

    @Override
    public Group update(ResultCapture<Void> extractor) {
        UpdateGroupRequest request = new UpdateGroupRequest();
        return update(request, extractor);
    }

    @Override
    public CreateGroupResult create(CreateGroupRequest request) {
        return create(request, null);
    }

    @Override
    public CreateGroupResult create(CreateGroupRequest request,
            ResultCapture<CreateGroupResult> extractor) {

        ActionResult result = resource.performAction("Create", request,
                extractor);

        if (result == null) return null;
        return (CreateGroupResult) result.getData();
    }

    @Override
    public CreateGroupResult create() {
        return create((ResultCapture<CreateGroupResult>)null);
    }

    @Override
    public CreateGroupResult create(ResultCapture<CreateGroupResult> extractor)
            {

        CreateGroupRequest request = new CreateGroupRequest();
        return create(request, extractor);
    }

    @Override
    public void removeUser(RemoveUserFromGroupRequest request) {
        removeUser(request, null);
    }

    @Override
    public void removeUser(RemoveUserFromGroupRequest request,
            ResultCapture<Void> extractor) {

        resource.performAction("RemoveUser", request, extractor);
    }

    @Override
    public void removeUser(String userName) {
        removeUser(userName, (ResultCapture<Void>)null);
    }

    @Override
    public void removeUser(String userName, ResultCapture<Void> extractor) {
        RemoveUserFromGroupRequest request = new RemoveUserFromGroupRequest()
            .withUserName(userName);
        removeUser(request, extractor);
    }

    @Override
    public void delete(DeleteGroupRequest request) {
        delete(request, null);
    }

    @Override
    public void delete(DeleteGroupRequest request, ResultCapture<Void> extractor
            ) {

        resource.performAction("Delete", request, extractor);
    }

    @Override
    public void delete() {
        delete((ResultCapture<Void>)null);
    }

    @Override
    public void delete(ResultCapture<Void> extractor) {
        DeleteGroupRequest request = new DeleteGroupRequest();
        delete(request, extractor);
    }

    @Override
    public GroupPolicy createPolicy(PutGroupPolicyRequest request) {
        return createPolicy(request, null);
    }

    @Override
    public GroupPolicy createPolicy(PutGroupPolicyRequest request,
            ResultCapture<Void> extractor) {

        ActionResult result = resource.performAction("CreatePolicy", request,
                extractor);

        if (result == null) return null;
        return new GroupPolicyImpl(result.getResource());
    }

    @Override
    public GroupPolicy createPolicy(String policyName, String policyDocument) {
        return createPolicy(policyName, policyDocument,
                (ResultCapture<Void>)null);
    }

    @Override
    public GroupPolicy createPolicy(String policyName, String policyDocument,
            ResultCapture<Void> extractor) {

        PutGroupPolicyRequest request = new PutGroupPolicyRequest()
            .withPolicyName(policyName)
            .withPolicyDocument(policyDocument);
        return createPolicy(request, extractor);
    }

    private static class Codec implements ResourceCodec<Group> {
        @Override
        public Group transform(ResourceImpl resource) {
            return new GroupImpl(resource);
        }
    }
}
TOP

Related Classes of com.amazonaws.resources.identitymanagement.internal.GroupImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.