org.jruby.embed.AttributeName Maven / Gradle / Ivy
/**
* **** BEGIN LICENSE BLOCK *****
* Version: EPL 1.0/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Eclipse Public
* License Version 1.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.eclipse.org/legal/epl-v10.html
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* Copyright (C) 2009-2012 Yoko Harada
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the EPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the EPL, the GPL or the LGPL.
* **** END LICENSE BLOCK *****
*/
package org.jruby.embed;
/**
* Predefined keys for an attribute map that ScriptingContainer has.
* Usage example:
*
* ScriptingContainer container = new ScriptingContainer();
* container.setAttribute(AttributeName.BASE_DIR, System.getProperty("user.dir");
*
* @author Yoko Harada
*/
public enum AttributeName {
/**
* A key used in an attribute map to set a reader. This attribute can be
* set using a System property, org.jruby.embed.reader.
*/
READER("org.jruby.embed.reader"),
/**
* A key used in an attribute map to set a writer. This attribute can be
* set using a System property, org.jruby.embed.writer.
*/
WRITER("org.jruby.embed.writer"),
/**
* A key used in an attribute map to set an error writer. This attribute can be
* set using a System property, org.jruby.embed.errorwriter.
*/
ERROR_WRITER("org.jruby.embed.errorwriter"),
/**
* A key used in an attribute map to set a base directory. This attribute can be
* set using a System property, org.jruby.embed.basedir.
*/
BASE_DIR("org.jruby.embed.basedir"),
/**
* A key used in an attribute map to set a line number in error message.
* This attribute is for JSR223 only. This attribute can be
* set using a System property, org.jruby.embed.linenumber.
*/
LINENUMBER("org.jruby.embed.linenumber"),
/**
* A key used in an attribute map to specify that the script to be parsed has
* unicode escape in it. Default is false. This attribute can be
* set using a System property, org.jruby.embed.unicode.escpe.
*/
UNICODE_ESCAPE("org.jruby.embed.unicode.escpe"),
/**
* A key used in an attribute map to turn on/off sharing variable feature.
* Default is true. If false is set, sharing variables goes off, and better
* performance will be expected. This attribute can be
* set using a System property, org.jruby.embed.sharing.variables.
*/
SHARING_VARIABLES("org.jruby.embed.sharing.variables"),
/**
* A key used in an attribute map to turn on/off clearing variables.
* This attribute is for JSR223 only.
*
* Default is false, which means JRubyEngine doesn't clear an internal
* variable table, which ends up in being reused. If true is set, JRubyEngine
* clears the internal variable table.
*/
CLEAR_VARAIBLES("org.jruby.embed.clear.variables"),
/**
* A key used in an attribute map to turn on/off termination. This attribute
* is for JSR223 only.
*
* Default is false, which means JRubyEngine doesn't terminate any state and
* doesn't execute at_exit blocks. If true is set, JRubyEngine terminates the state
* as well as executes at_exit blocks. This attribute can be
* set using a System property, org.jruby.embed.termination.
*/
TERMINATION("org.jruby.embed.termination"),
/**
* A key used in an attribute map to set a receiver object for sharing variables.
* This attribute is for JSR223 only. This attribute can be
* set using a System property, org.jruby.embed.receiver.
*/
RECEIVER("org.jruby.embed.receiver");
private final String fqpn;
/**
* Creates an AttributeName Enum type instance.
*
* @param fqan a fully qualified attribute name
*/
AttributeName(String fqpn) {
this.fqpn = fqpn;
}
/**
* Returns the fully qualified attribute name of this enum constant.
*
* @return a fully qualified attribute name
*/
@Override
public String toString() {
return fqpn;
}
/**
* Returns a fully qualified attribute name that corresponds to a given
* enumerated type identifier.
*
* @param fqan fully qualified attribute name
* @return a matched enumerated type identifier
*/
public static AttributeName getType(String fqpn) {
AttributeName[] names = AttributeName.values();
for (int i=0; i
© 2015 - 2025 Weber Informatics LLC | Privacy Policy