Example usage for jdk.nashorn.internal.objects NativeRegExp get

List of usage examples for jdk.nashorn.internal.objects NativeRegExp get

Introduction

In this page you can find the example usage for jdk.nashorn.internal.objects NativeRegExp get.

Prototype

@Override
    public Object get(final Object key) 

Source Link

Usage

From source file:com.mongodb.jvm.json.nashorn.NativeRegExpEncoder.java

License:Apache License

public void encode(Object object, JsonContext context) throws IOException {
    NativeRegExp nativeRegExp = (NativeRegExp) object;

    String source = nativeRegExp.get("source").toString();

    Object isGlobal = nativeRegExp.get("global");
    Object isIgnoreCase = nativeRegExp.get("ignoreCase");
    Object isMultiLine = nativeRegExp.get("multiline");

    String options = "";
    if (((isGlobal instanceof Boolean) && (((Boolean) isGlobal).booleanValue()))
            || ((isGlobal instanceof NativeBoolean) && ((NativeBoolean) isGlobal).booleanValue()))
        options += "g";
    if (((isIgnoreCase instanceof Boolean) && (((Boolean) isIgnoreCase).booleanValue()))
            || ((isIgnoreCase instanceof NativeBoolean) && ((NativeBoolean) isIgnoreCase).booleanValue()))
        options += "i";
    if (((isMultiLine instanceof Boolean) && (((Boolean) isMultiLine).booleanValue()))
            || ((isMultiLine instanceof NativeBoolean) && ((NativeBoolean) isMultiLine).booleanValue()))
        options += "m";

    LinkedHashMap<String, Object> map = new LinkedHashMap<String, Object>();
    map.put("$regex", source);
    map.put("$options", options);
    new MapEncoder().encode(map, context);
}

From source file:com.threecrickets.jvm.json.nashorn.util.NashornNativeUtil.java

License:Mozilla Public License

public static String[] from(NativeRegExp nativeRegExp) {
    Object source = nativeRegExp.get("source");

    Object isGlobal = nativeRegExp.get("global");
    Object isIgnoreCase = nativeRegExp.get("ignoreCase");
    Object isMultiLine = nativeRegExp.get("multiline");

    // Note: JVM pattern does not support a "g" flag. Also, compiling
    // the pattern here is a waste of time.
    ////from ww w . j a  va2  s  .  c o m
    // int flags = 0;
    // if( ( isIgnoreCase instanceof Boolean ) && ( ( (Boolean)
    // isIgnoreCase ).booleanValue() ) )
    // flags |= Pattern.CASE_INSENSITIVE;
    // if( ( isMultiLine instanceof Boolean ) && ( ( (Boolean)
    // isMultiLine ).booleanValue() ) )
    // flags |= Pattern.MULTILINE;
    // return Pattern.compile( source.toString(), flags );

    String options = "";
    if ((isGlobal instanceof Boolean) && (((Boolean) isGlobal).booleanValue()))
        options += "g";
    if ((isIgnoreCase instanceof Boolean) && (((Boolean) isIgnoreCase).booleanValue()))
        options += "i";
    if ((isMultiLine instanceof Boolean) && (((Boolean) isMultiLine).booleanValue()))
        options += "m";

    return new String[] { source.toString(), options };
}

From source file:org.bson.jvm.nashorn.NativeRegExpCodec.java

License:Apache License

public void encode(BsonWriter writer, NativeRegExp nativeRegExp, EncoderContext encoderContext) {
    String source = nativeRegExp.get("source").toString();

    Object isGlobal = nativeRegExp.get("global");
    Object isIgnoreCase = nativeRegExp.get("ignoreCase");
    Object isMultiLine = nativeRegExp.get("multiline");

    String options = "";
    if (((isGlobal instanceof Boolean) && (((Boolean) isGlobal).booleanValue()))
            || ((isGlobal instanceof NativeBoolean) && ((NativeBoolean) isGlobal).booleanValue()))
        options += "g";
    if (((isIgnoreCase instanceof Boolean) && (((Boolean) isIgnoreCase).booleanValue()))
            || ((isIgnoreCase instanceof NativeBoolean) && ((NativeBoolean) isIgnoreCase).booleanValue()))
        options += "i";
    if (((isMultiLine instanceof Boolean) && (((Boolean) isMultiLine).booleanValue()))
            || ((isMultiLine instanceof NativeBoolean) && ((NativeBoolean) isMultiLine).booleanValue()))
        options += "m";

    writer.writeRegularExpression(new BsonRegularExpression(source, options));
}