io.cloudslang.lang.entities.bindings.values.PyObjectValueProxyClass Maven / Gradle / Ivy
/*******************************************************************************
* (c) Copyright 2016 Hewlett-Packard Development Company, L.P.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Apache License v2.0 which accompany this distribution.
*
* The Apache License is available at
* http://www.apache.org/licenses/LICENSE-2.0
*
*******************************************************************************/
package io.cloudslang.lang.entities.bindings.values;
import java.lang.reflect.Constructor;
import java.util.Arrays;
import static java.util.Arrays.copyOf;
/**
* PyObject value proxy class
*
* Created by Ifat Gavish on 19/05/2016
*/
public class PyObjectValueProxyClass {
private Class proxyClass;
private Constructor> constructor;
private Object[] params;
public PyObjectValueProxyClass(Class proxyClass, Constructor> constructor, Object[] params) {
this.proxyClass = proxyClass;
this.constructor = constructor;
this.params = getParamsHelper(params);
}
public Class getProxyClass() {
return proxyClass;
}
public void setProxyClass(Class proxyClass) {
this.proxyClass = proxyClass;
}
public Constructor> getConstructor() {
return constructor;
}
public void setConstructor(Constructor> constructor) {
this.constructor = constructor;
}
public Object[] getParams() {
return getParamsHelper(this.params);
}
public void setParams(Object[] params) {
this.params = getParamsHelper(params);
}
private static Object[] getParamsHelper(Object[] params) {
return (params != null) ? Arrays.copyOf(params, params.length) : null;
}
@Override
public String toString() {
return "PyObjectValueProxy{" +
"proxyClass=" + proxyClass +
", constructor=" + constructor +
", params=" + Arrays.toString(params) +
'}';
}
}