// Path: modules/cloud-portal-server/src/main/java/de/papke/cloud/portal/helper/ScriptHelper.java
// public class ScriptHelper {
// 
//     private static final String OBJECTS_FOUND = "OBJECTS FOUND: ";
// 
//     private PrintWriter out;
// 
//     public ScriptHelper(PrintWriter out) {
//         this.out = out;
//     }
// 
//     /**
//      * Method for printing an object on console.
//      *
//      * @param result
//      */
//     public void print(Object result) {
//     	
//     	if (result instanceof User) {
//     		User user = (User) result;
//     		printUser(user);
//     	}
//     	else {
//     		if (result instanceof Collection<?>) {
//     			Collection<?> collection = (Collection<?>) result;
//     			printCollection(collection);
//     		}
//     		else {
//     			if (result instanceof Map<?, ?>) {
//     				Map<?, ?> map = (Map<?, ?>) result;
//     				printMap(map);
//     			}
//     			else {
//     				out.append(String.valueOf(result));
//     			}
//     		}
//     	}
//     }
//     
//     /**
//      * Method for printing an object on console.
//      *
//      * @param result
//      */
//     public void println(Object result) {
//     	print(result);
//     	print(Constants.CHAR_NEW_LINE);
//     }
// 
//     /**
//      * Method for printing a collection on console.
//      *
//      * @param collection
//      */
//     private void printCollection(Collection<?> collection) {
// 
//         Object[] collectionArray = collection.toArray();
// 
//         out
//                 .append(OBJECTS_FOUND)
//                 .append(String.valueOf(collectionArray.length))
//                 .append(Constants.CHAR_NEW_LINE)
//                 .append(Constants.CHAR_NEW_LINE);
// 
//         for (Object object : collectionArray) {
//             print(object);
//             out.append(Constants.CHAR_NEW_LINE);
//         }
//     }
// 
//     /**
//      * Method for printing a map on console.
//      *
//      * @param map
//      */
//     private void printMap(Map<?, ?> map) {
// 
//         Set<?> keySet = map.keySet();
// 
//         out
//                 .append(OBJECTS_FOUND)
//                 .append(String.valueOf(map.keySet().size()))
//                 .append(Constants.CHAR_NEW_LINE)
//                 .append(Constants.CHAR_NEW_LINE);
// 
//         for (Object key : keySet) {
//             Object value  = map.get(key);
//             out
//                     .append(String.valueOf(key))
//                     .append(": ")
//                     .append(String.valueOf(value))
//                     .append(Constants.CHAR_NEW_LINE);
//         }
//     }
// 
//     /**
//      * Method for printing a user object on console.
//      *
//      * @param user
//      */
//     private void printUser(User user) {
// 
//         String username = user.getUsername();
// 
//         out
//                 .append(username)
//                 .append(Constants.CHAR_NEW_LINE);
// 
//         for (int i = 0; i < username.length(); i++) {
//             out.append("-");
//             if (i == username.length() - 1) {
//                 out.append(Constants.CHAR_NEW_LINE);
//             }
//         }
// 
//         List<String> groups = user.getGroups();
// 
//         for (String group : groups) {
//             out
//                     .append(group)
//                     .append(Constants.CHAR_NEW_LINE);
//         }
//     }
// }


import java.io.PrintWriter;
import java.util.Map;
import javax.script.Bindings;
import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.SimpleScriptContext;
import org.codehaus.groovy.jsr223.GroovyScriptEngineImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import de.papke.cloud.portal.helper.ScriptHelper;
package de.papke.cloud.portal.service;





/**
 * Groovy service class for executing groovy scripts
 */
@Component
public class GroovyService {

    private static final Logger LOG = LoggerFactory.getLogger(GroovyService.class);
    private static final ScriptEngine SCRIPT_ENGINE = new GroovyScriptEngineImpl();
    private static final String SCRIPT_VAR_SCRIPT = "script";

    /**
     * Method for executing a groovy script.
     *
     * @param script
     * @param variableMap
     * @return
     */
    public void execute(String script, Map<String, Object> variableMap, PrintWriter out) {

        try {

            // create script helper
// Path: modules/cloud-portal-server/src/main/java/de/papke/cloud/portal/helper/ScriptHelper.java
// public class ScriptHelper {
// 
//     private static final String OBJECTS_FOUND = "OBJECTS FOUND: ";
// 
//     private PrintWriter out;
// 
//     public ScriptHelper(PrintWriter out) {
//         this.out = out;
//     }
// 
//     /**
//      * Method for printing an object on console.
//      *
//      * @param result
//      */
//     public void print(Object result) {
//     	
//     	if (result instanceof User) {
//     		User user = (User) result;
//     		printUser(user);
//     	}
//     	else {
//     		if (result instanceof Collection<?>) {
//     			Collection<?> collection = (Collection<?>) result;
//     			printCollection(collection);
//     		}
//     		else {
//     			if (result instanceof Map<?, ?>) {
//     				Map<?, ?> map = (Map<?, ?>) result;
//     				printMap(map);
//     			}
//     			else {
//     				out.append(String.valueOf(result));
//     			}
//     		}
//     	}
//     }
//     
//     /**
//      * Method for printing an object on console.
//      *
//      * @param result
//      */
//     public void println(Object result) {
//     	print(result);
//     	print(Constants.CHAR_NEW_LINE);
//     }
// 
//     /**
//      * Method for printing a collection on console.
//      *
//      * @param collection
//      */
//     private void printCollection(Collection<?> collection) {
// 
//         Object[] collectionArray = collection.toArray();
// 
//         out
//                 .append(OBJECTS_FOUND)
//                 .append(String.valueOf(collectionArray.length))
//                 .append(Constants.CHAR_NEW_LINE)
//                 .append(Constants.CHAR_NEW_LINE);
// 
//         for (Object object : collectionArray) {
//             print(object);
//             out.append(Constants.CHAR_NEW_LINE);
//         }
//     }
// 
//     /**
//      * Method for printing a map on console.
//      *
//      * @param map
//      */
//     private void printMap(Map<?, ?> map) {
// 
//         Set<?> keySet = map.keySet();
// 
//         out
//                 .append(OBJECTS_FOUND)
//                 .append(String.valueOf(map.keySet().size()))
//                 .append(Constants.CHAR_NEW_LINE)
//                 .append(Constants.CHAR_NEW_LINE);
// 
//         for (Object key : keySet) {
//             Object value  = map.get(key);
//             out
//                     .append(String.valueOf(key))
//                     .append(": ")
//                     .append(String.valueOf(value))
//                     .append(Constants.CHAR_NEW_LINE);
//         }
//     }
// 
//     /**
//      * Method for printing a user object on console.
//      *
//      * @param user
//      */
//     private void printUser(User user) {
// 
//         String username = user.getUsername();
// 
//         out
//                 .append(username)
//                 .append(Constants.CHAR_NEW_LINE);
// 
//         for (int i = 0; i < username.length(); i++) {
//             out.append("-");
//             if (i == username.length() - 1) {
//                 out.append(Constants.CHAR_NEW_LINE);
//             }
//         }
// 
//         List<String> groups = user.getGroups();
// 
//         for (String group : groups) {
//             out
//                     .append(group)
//                     .append(Constants.CHAR_NEW_LINE);
//         }
//     }
// }


// Path: modules/cloud-portal-server/src/main/java/de/papke/cloud/portal/service/GroovyService.java
import java.io.PrintWriter;
import java.util.Map;
import javax.script.Bindings;
import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.SimpleScriptContext;
import org.codehaus.groovy.jsr223.GroovyScriptEngineImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import de.papke.cloud.portal.helper.ScriptHelper;

package de.papke.cloud.portal.service;





/**
 * Groovy service class for executing groovy scripts
 */
@Component
public class GroovyService {

    private static final Logger LOG = LoggerFactory.getLogger(GroovyService.class);
    private static final ScriptEngine SCRIPT_ENGINE = new GroovyScriptEngineImpl();
    private static final String SCRIPT_VAR_SCRIPT = "script";

    /**
     * Method for executing a groovy script.
     *
     * @param script
     * @param variableMap
     * @return
     */
    public void execute(String script, Map<String, Object> variableMap, PrintWriter out) {

        try {

            // create script helper
            ScriptHelper scriptHelper = new ScriptHelper(out);