/*******************************************************************************
* Copyright (c) 2016 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.apis.autoscaling.models;
import static com.openshift.internal.util.JBossDmrExtentions.*;
import java.util.Collections;
import java.util.Map;
import org.jboss.dmr.ModelNode;
import com.openshift.internal.restclient.api.models.TypeMeta;
import com.openshift.restclient.apis.autoscaling.models.IScale;
public class Scale extends TypeMeta implements IScale {
private static final String SPEC_REPLICAS = "spec.replicas";
public Scale() {
super(new ModelNode(), Collections.emptyMap());
}
/**
*
* @param node
* @param propertyKeys overrides based on version
*/
public Scale(ModelNode node, Map<String, String[]> propertyKeys) {
super(node, propertyKeys);
}
@Override
public int getSpecReplicas() {
return asInt(getNode(), getPropertyKeys(), SPEC_REPLICAS);
}
@Override
public void setSpecReplicas(int replicas) {
set(getNode(), getPropertyKeys(), SPEC_REPLICAS, replicas);
}
@Override
public String getName() {
return asString(getNode(), getPropertyKeys(), METADATA_NAME);
}
@Override
public void setName(String name) {
set(getNode(), getPropertyKeys(), METADATA_NAME, name);
}
@Override
public String getCreationTimeStamp() {
return asString(getNode(), getPropertyKeys(), CREATION_TIMESTAMP);
}
@Override
public String getNamespace() {
return asString(getNode(), getPropertyKeys(), METADATA_NAMESPACE);
}
@Override
public void setNamespace(String namespace) {
set(getNode(), getPropertyKeys(), METADATA_NAMESPACE, namespace);
}
@Override
public String getResourceVersion() {
return asString(getNode(), getPropertyKeys(), METADATA_RESOURCE_VERSION);
}
@Override
public Map<String, String> getLabels() {
return asMap(getNode(), getPropertyKeys(), LABELS);
}
@Override
public void addLabel(String key, String value) {
ModelNode labels = getNode().get(getPath(LABELS));
labels.get(key).set(value);
}
@Override
public Map<String, String> getAnnotations() {
return asMap(getNode(), getPropertyKeys(), ANNOTATIONS);
}
@Override
public String getAnnotation(String key) {
return getAnnotations().get(key);
}
@Override
public void setAnnotation(String name, String value) {
if(value == null) return;
ModelNode annotations = get(getNode(), getPropertyKeys(), ANNOTATIONS);
annotations.get(name).set(value);
}
@Override
public boolean isAnnotatedWith(String key) {
Map<String, String> annotations = getAnnotations();
return annotations.containsKey(key);
}
}