ttomcat-1778514358873.zip-extract/_dependencies/maven/com.h2database_h2-2.2.220/org/h2/expression/FieldReference.java

Path
ttomcat-1778514358873.zip-extract/_dependencies/maven/com.h2database_h2-2.2.220/org/h2/expression/FieldReference.java
Status
scanned
Type
file
Name
FieldReference.java
Extension
.java
Programming language
Java
Mime type
text/x-java
File type
Java source, ASCII text
Tag

      
    
Rootfs path

      
    
Size
2931 (2.9 KB)
MD5
5eeabe54d97e9f0ab6b9d2bd1d254399
SHA1
7d6bbc305849850665f74e2c0bd07fec91a1f9fb
SHA256
4b83791816209bbfb41f69e229280fc2fa94a054274cc97c6fe6b76a0714896c
SHA512

      
    
SHA1_git
ad602b5d35cdf6a19de97d47289b4fca931d8d0e
Is binary

      
    
Is text
True
Is archive

      
    
Is media

      
    
Is legal

      
    
Is manifest

      
    
Is readme

      
    
Is top level

      
    
Is key file

      
    
FieldReference.java | 2.9 KB |

/* * Copyright 2004-2023 H2 Group. Multiple-Licensed under the MPL 2.0, * and the EPL 1.0 (https://h2database.com/html/license.html). * Initial Developer: H2 Group */ package org.h2.expression; import java.util.Map.Entry; import org.h2.api.ErrorCode; import org.h2.engine.SessionLocal; import org.h2.message.DbException; import org.h2.mvstore.db.Store; import org.h2.util.ParserUtil; import org.h2.util.json.JSONObject; import org.h2.util.json.JSONValue; import org.h2.value.ExtTypeInfoRow; import org.h2.value.TypeInfo; import org.h2.value.Value; import org.h2.value.ValueJson; import org.h2.value.ValueNull; import org.h2.value.ValueRow; /** * Field reference. */ public final class FieldReference extends Operation1 { private final String fieldName; private int ordinal; public FieldReference(Expression arg, String fieldName) { super(arg); this.fieldName = fieldName; } @Override public StringBuilder getUnenclosedSQL(StringBuilder builder, int sqlFlags) { return ParserUtil.quoteIdentifier(arg.getEnclosedSQL(builder, sqlFlags).append('.'), fieldName, sqlFlags); } @Override public Value getValue(SessionLocal session) { Value l = arg.getValue(session); if (l != ValueNull.INSTANCE) { if (ordinal >= 0) { return ((ValueRow) l).getList()[ordinal]; } else { JSONValue value = l.convertToAnyJson().getDecomposition(); if (value instanceof JSONObject) { JSONValue jsonValue = ((JSONObject) value).getFirst(fieldName); if (jsonValue != null) { return ValueJson.fromJson(jsonValue); } } } } return ValueNull.INSTANCE; } @Override public Expression optimize(SessionLocal session) { arg = arg.optimize(session); TypeInfo type = arg.getType(); int valueType = type.getValueType(); c: switch (valueType) { case Value.JSON: { this.type = TypeInfo.TYPE_JSON; this.ordinal = -1; break; } case Value.ROW: { int ordinal = 0; for (Entry<String, TypeInfo> entry : ((ExtTypeInfoRow) type.getExtTypeInfo()).getFields()) { if (fieldName.equals(entry.getKey())) { type = entry.getValue(); this.type = type; this.ordinal = ordinal; break c; } ordinal++; } throw DbException.get(ErrorCode.COLUMN_NOT_FOUND_1, fieldName); } default: throw Store.getInvalidExpressionTypeException("JSON | ROW", arg); } if (arg.isConstant()) { return TypedValueExpression.get(getValue(session), type); } return this; } }
Detected license expression

      
    
Detected license expression (SPDX)

      
    
Percentage of license text
4.04
Copyrights
- end_line: 2
  copyright: Copyright 2004-2023 H2 Group. Multiple-Licensed
  start_line: 2
Holders
- holder: H2 Group. Multiple-Licensed
  end_line: 2
  start_line: 2
Authors

      
    
License expression License clue details
(mpl-2.0 OR epl-1.0) AND proprietary-license {'score': 20.37, 'matcher': '3-seq', 'end_line': 3, 'rule_url': 'https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mpl-2.0_or_epl-1.0_and_proprietary-license_2.RULE', 'from_file': None, 'start_line': 2, 'matched_text': ' * Copyright 2004-2023 H2 Group. Multiple-Licensed under the MPL 2.0,\n * and the EPL 1.0 (https://h2database.com/html/license.html).', 'match_coverage': 20.37, 'matched_length': 11, 'rule_relevance': 100, 'rule_identifier': 'mpl-2.0_or_epl-1.0_and_proprietary-license_2.RULE', 'license_expression': '(mpl-2.0 OR epl-1.0) AND proprietary-license', 'license_expression_spdx': '(MPL-2.0 OR EPL-1.0) AND LicenseRef-scancode-proprietary-license'}
URL Start line End line
https://h2database.com/html/license.html 3 3
Package URL License Primary language
pkg:osgi/com.h2database.source@2.2.220