OMSComponentMapper.java [src/csip] Revision: default Date:
/*
* $Id$
*
* This file is part of the Cloud Services Integration Platform (CSIP),
* a Model-as-a-Service framework, API and application suite.
*
* 2012-2022, Olaf David and others, OMSLab, Colorado State University.
*
* OMSLab licenses this file to you under the MIT license.
* See the LICENSE file in the project root for more information.
*/
package csip;
import csip.utils.JSONUtils;
import java.io.File;
import java.lang.reflect.Field;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
//import oms3.Access;
//import oms3.ComponentAccess;
//import oms3.annotations.Description;
//import oms3.annotations.Execute;
//import oms3.annotations.Finalize;
//import oms3.annotations.Initialize;
//import oms3.annotations.Range;
//import oms3.annotations.Unit;
import org.codehaus.jettison.json.JSONObject;
/**
*
* @author od
*/
@Deprecated
class OMSComponentMapper {
// ComponentAccess ca;
//
//
// OMSComponentMapper(Object comp) {
// ca = new ComponentAccess(comp);
// }
//
//
// JSONObject getInputs() throws Exception {
// Map<String, JSONObject> r = new HashMap<>();
// Collection<Access> a = ca.inputs();
// for (Access field : a) {
// Description d = field.getField().getAnnotation(Description.class);
// Unit u = field.getField().getAnnotation(Unit.class);
//
// Object v = field.getField().get(ca.getComponent());
// r.put(field.getField().getName(), JSONUtils.data(field.getField().getName(),
// v == null ? "" : v.toString(),
// d == null ? null : d.value(),
// u == null ? null : u.value()
// ));
// }
// return JSONUtils.newRequest(r);
// }
//
//
// void setInputs(ModelDataService s) throws Exception {
// for (String pname : s.parameter().getNames()) {
// Access a = ca.input(pname);
// if (a != null) {
// Class<?> c = a.getField().getType();
// Object par = null;
// if (c == int.class) {
// par = s.parameter().getInt(pname);
// } else if (c == double.class) {
// par = s.parameter().getDouble(pname);
// } else if (c == boolean.class) {
// par = s.parameter().getBoolean(pname);
// } else if (c == long.class) {
// par = s.parameter().getLong(pname);
// } else if (c == File.class) {
// par = s.attachments().getFile(pname);
// } else if (c == String.class) {
// par = s.parameter().getString(pname);
// } else {
// continue;
// }
// if (par instanceof Number) {
// validate(a, (Number) par);
// }
// a.setFieldValue(par);
// }
// }
// }
//
//
// void getOutputs(ModelDataService s) throws Exception {
// for (Access out : ca.outputs()) {
// if (out.getFieldValue() == null) {
// continue;
// }
// String descr = null;
// String unit = null;
// Field f = out.getField();
// Description d = f.getAnnotation(Description.class);
// if (d != null) {
// descr = d.value();
// }
// Unit u = f.getAnnotation(Unit.class);
// if (u != null) {
// unit = u.value();
// }
// //TODO add nested components here.
// s.results().put(f.getName(), out.getFieldValue().toString(), descr, unit);
// }
// }
//
//
// void process() {
// ComponentAccess.callAnnotated(ca.getComponent(), Initialize.class, true);
// ComponentAccess.callAnnotated(ca.getComponent(), Execute.class, false);
// ComponentAccess.callAnnotated(ca.getComponent(), Finalize.class, true);
// }
//
//
// void validate(Access a, Number val) {
// Field f = a.getField();
// Range r = f.getAnnotation(Range.class);
// if (r != null) {
// double min = r.min();
// if (r.excl_min()) {
// if (!(min < val.doubleValue())) {
// throw new IllegalArgumentException(f.getName() + ": Range invalid " + min + " < " + val);
// }
// } else {
// if (!(min <= val.doubleValue())) {
// throw new IllegalArgumentException(f.getName() + ": Range invalid " + min + " <= " + val);
// }
// }
// double max = r.max();
// if (r.excl_max()) {
// if (!(max > val.doubleValue())) {
// throw new IllegalArgumentException(f.getName() + ": Range invalid " + max + " > " + val);
// }
// } else {
// if (!(max >= val.doubleValue())) {
// throw new IllegalArgumentException(f.getName() + ": Range invalid " + max + " >= " + val);
// }
// }
// }
// }
// public static void main(String[] args) throws Exception {
// T t = new T();
// OMSComponentMapper m = new OMSComponentMapper(t);
//
// JSONArray a = new JSONArray();
// a.put(JSONUtils.data("msg", "input"));
// a.put(JSONUtils.data("temp", 20));
//
// m.setInputs(a);
// m.process();
//
// JSONArray o = m.getOutputs();
//
// System.out.println(o.toString(2));
// }
}