/*
# Licensed Materials - Property of IBM
# Copyright IBM Corp. 2015
*/
package com.ibm.streamsx.topology.internal.functional;
import java.io.File;
import java.net.MalformedURLException;
import java.util.logging.Logger;
import com.ibm.streams.operator.AbstractOperator;
import com.ibm.streamsx.topology.internal.spljava.SPLMapping;
import com.ibm.streamsx.topology.internal.spljava.Schemas;
public class FunctionalHelper {
static final Logger trace = Logger.getLogger("com.ibm.streamsx.topology.functional");
@SuppressWarnings("unchecked")
public static <T> SPLMapping<T> getInputMapping(AbstractOperator operator,
int port) {
return (SPLMapping<T>) Schemas.getSPLMapping(operator.getInput(port)
.getStreamSchema());
}
@SuppressWarnings("unchecked")
public static <T> SPLMapping<T> getOutputMapping(AbstractOperator operator,
int port) {
return (SPLMapping<T>) Schemas.getSPLMapping(operator.getOutput(port)
.getStreamSchema());
}
@SuppressWarnings("unchecked")
public static <T> T getLogicObject(String logicString)
throws ClassNotFoundException {
return (T) ObjectUtils.deserializeLogic(logicString);
}
public static void addLibraries(AbstractOperator operator,
String[] libraries) throws MalformedURLException {
if (libraries == null)
return;
File appDir = operator.getOperatorContext().getPE()
.getApplicationDirectory();
String[] urls = new String[libraries.length];
for (int i = 0; i < libraries.length; i++) {
File f = new File(appDir, libraries[i]);
urls[i] = f.toURI().toURL().toString();
}
operator.getOperatorContext().addClassLibraries(urls);
}
}