001/* 002 * Copyright (c) 2006-2011 Nuxeo SA (http://nuxeo.com/) and others. 003 * 004 * All rights reserved. This program and the accompanying materials 005 * are made available under the terms of the Eclipse Public License v1.0 006 * which accompanies this distribution, and is available at 007 * http://www.eclipse.org/legal/epl-v10.html 008 * 009 * Contributors: 010 * bstefanescu 011 */ 012package org.nuxeo.ecm.automation.core.operations; 013 014import org.nuxeo.ecm.automation.OperationContext; 015import org.nuxeo.ecm.automation.core.Constants; 016import org.nuxeo.ecm.automation.core.annotations.Context; 017import org.nuxeo.ecm.automation.core.annotations.Operation; 018import org.nuxeo.ecm.automation.core.annotations.OperationMethod; 019import org.nuxeo.ecm.automation.core.annotations.Param; 020 021/** 022 * Generic fetch document operation that can be used on any context that has a document as the input. This operation 023 * takes the context input and it returns it as a document. If the input is not a document, an exception is thrown. 024 * 025 * @author <a href="mailto:bs@nuxeo.com">Bogdan Stefanescu</a> 026 */ 027@Operation(id = SetVar.ID, category = Constants.CAT_EXECUTION, label = "Set Context Variable", description = "Set a context variable given a name and the value. To compute the value at runtime from the current context you should use an EL expression as the value. This operation works on any input type and return back the input as the output.") 028public class SetVar { 029 030 public static final String ID = "Context.SetVar"; 031 032 @Context 033 protected OperationContext ctx; 034 035 @Param(name = "name") 036 protected String name; 037 038 @Param(name = "value", required = false) 039 protected Object value; 040 041 @OperationMethod 042 public void run() { 043 ctx.put(name, value); 044 } 045 046}