com.openshift.internal.restclient.model.authorization.RoleBinding Maven / Gradle / Ivy
The newest version!
/*******************************************************************************
* Copyright (c) 2015 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package com.openshift.internal.restclient.model.authorization;
import java.util.Collections;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.jboss.dmr.ModelNode;
import org.jboss.dmr.ModelType;
import com.openshift.internal.restclient.model.KubernetesResource;
import com.openshift.internal.restclient.model.ObjectReference;
import com.openshift.restclient.IClient;
import com.openshift.restclient.model.IObjectReference;
import com.openshift.restclient.model.authorization.IRoleBinding;
public class RoleBinding extends KubernetesResource implements IRoleBinding {
private static final String ROLE_REF = "roleRef";
private static final String USER_NAMES = "userNames";
private static final String GROUP_NAMES = "groupNames";
public RoleBinding(ModelNode node, IClient client, Map propertyKeys) {
super(node, client, propertyKeys);
}
@Override
public void setUserNames(Set names) {
if (names == null) {
names = Collections.emptySet();
}
set(USER_NAMES, names);
}
@SuppressWarnings("unchecked")
@Override
public Set getUserNames() {
return asSet(USER_NAMES, ModelType.STRING);
}
@Override
public void addUserName(String name) {
get(USER_NAMES).add(name);
}
@Override
public void setGroupNames(Set names) {
if (names == null) {
names = Collections.emptySet();
}
set(GROUP_NAMES, names);
}
@SuppressWarnings("unchecked")
@Override
public Set getGroupNames() {
return asSet(GROUP_NAMES, ModelType.STRING);
}
@Override
public void addGroupName(String name) {
get(GROUP_NAMES).add(name);
}
@Override
public void setSubjects(Set subjects) {
if (subjects == null) {
subjects = Collections.emptySet();
}
ModelNode node = get("subjects");
node.clear();
for (IObjectReference ref : subjects) {
node.add(ModelNode.fromJSONString(ref.toJson()));
}
}
@Override
public Set getSubjects() {
Set set = new HashSet<>();
ModelNode node = get("subjects");
if (node.isDefined()) {
for (ModelNode ref : node.asList()) {
set.add(new ObjectReference(ref));
}
}
return set;
}
@Override
public IObjectReference getRoleRef() {
return new ObjectReference(get(ROLE_REF));
}
@Override
public void setRoleRef(IObjectReference roleRef) {
ModelNode node = get(ROLE_REF);
node.set(ModelNode.fromJSONString(roleRef.toJson()));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy