/*******************************************************************************
* (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.runtime.steps;
import com.hp.oo.sdk.content.annotations.Param;
import com.hp.oo.sdk.content.plugin.GlobalSessionObject;
import com.hp.oo.sdk.content.plugin.SerializableSessionObject;
import com.hp.oo.sdk.content.plugin.SessionResource;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
/**
* User: stoneo
* Date: 16/11/2014
* Time: 16:03
*/
public class ContentTestActions {
@SuppressWarnings("unused")
public Map<String, String> doJavaSampleAction(
@Param("name") String name,
@Param("role") String role) {
Map<String, String> returnValues = new HashMap<>();
returnValues.put("name", name);
returnValues.put("role", role);
return returnValues;
}
@SuppressWarnings("unused")
public Map<String, String> doJavaNumberAsString(
@Param("port") String port) {
Map<String, String> returnValues = new HashMap<>();
returnValues.put("port", port);
return returnValues;
}
@SuppressWarnings("unused")
public Map<String, Serializable> doJavaNumbersAction(
@Param("port") Integer port) {
Map<String, Serializable> returnValues = new HashMap<>();
returnValues.put("port", port);
return returnValues;
}
@SuppressWarnings("unused")
public void doJavaActionWrongReturnType() {
}
@SuppressWarnings("unused")
public void doJavaActionExceptionMethod() {
throw new RuntimeException("Error");
}
@SuppressWarnings("unused")
public Map<String, String> doJavaActionMissingAnnotation(@Param("name") String name, String role) {
Map<String, String> returnValues = new HashMap<>();
returnValues.put("name", name);
returnValues.put("role", role);
return returnValues;
}
@SuppressWarnings("unused")
public Map<String, String> getNameFromNonSerializableSession(
@Param("name") GlobalSessionObject<NonSerializableObject> name) {
SessionResource<NonSerializableObject> sessionName = name.getResource();
Map<String, String> returnMap = new HashMap<>();
String value = null;
if (sessionName != null && sessionName.get() != null) {
value = sessionName.get().getName();
}
returnMap.put("name", value);
return returnMap;
}
@SuppressWarnings("unused")
public Map<String, String> setNameOnNonSerializableSession(
@Param("name") GlobalSessionObject<NonSerializableObject> name,
@Param("value") String value) {
name.getResource();
Map<String, String> returnMap = new HashMap<>();
name.setResource(new NonSerializableSessionResource(new NonSerializableObject(value)));
returnMap.put("name", value);
return returnMap;
}
@SuppressWarnings("unused")
public Map<String, String> getNameFromSerializableSession(@Param("name") SerializableSessionObject name) {
String sessionName = name.getName();
Map<String, String> returnMap = new HashMap<>();
returnMap.put("name", sessionName);
return returnMap;
}
static class NonSerializableSessionResource extends SessionResource<NonSerializableObject> {
private NonSerializableObject value;
public NonSerializableSessionResource(NonSerializableObject value) {
this.value = value;
}
@Override
public NonSerializableObject get() {
return value;
}
@Override
public void release() {
value = null;
}
}
static class NonSerializableObject {
private String name;
NonSerializableObject(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
}