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

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

      
    
Rootfs path

      
    
Size
2893 (2.8 KB)
MD5
23d527ccd81258a240bcfd05a4a0605d
SHA1
0e7dc0b7a1bb0e48095c67d7fbce276107442b65
SHA256
85eb81bd98d4e84f57825ec7b10b7173596645eee505265b30da234e3a8842e8
SHA512

      
    
SHA1_git
db777df973b13af1d5bdd9b3a26a150d36296912
Is binary

      
    
Is text
True
Is archive

      
    
Is media

      
    
Is legal

      
    
Is manifest

      
    
Is readme

      
    
Is top level

      
    
Is key file

      
    
SearchedCase.java | 2.8 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 org.h2.engine.SessionLocal; import org.h2.value.TypeInfo; import org.h2.value.Value; import org.h2.value.ValueNull; /** * A searched case. */ public final class SearchedCase extends OperationN { public SearchedCase() { super(new Expression[4]); } public SearchedCase(Expression[] args) { super(args); } @Override public Value getValue(SessionLocal session) { int len = args.length - 1; for (int i = 0; i < len; i += 2) { if (args[i].getBooleanValue(session)) { return args[i + 1].getValue(session).convertTo(type, session); } } if ((len & 1) == 0) { return args[len].getValue(session).convertTo(type, session); } return ValueNull.INSTANCE; } @Override public Expression optimize(SessionLocal session) { TypeInfo typeInfo = TypeInfo.TYPE_UNKNOWN; int len = args.length - 1; boolean allConst = true; for (int i = 0; i < len; i += 2) { Expression condition = args[i].optimize(session); Expression result = args[i + 1].optimize(session); if (allConst) { if (condition.isConstant()) { if (condition.getBooleanValue(session)) { return result; } } else { allConst = false; } } args[i] = condition; args[i + 1] = result; typeInfo = SimpleCase.combineTypes(typeInfo, result); } if ((len & 1) == 0) { Expression result = args[len].optimize(session); if (allConst) { return result; } args[len] = result; typeInfo = SimpleCase.combineTypes(typeInfo, result); } else if (allConst) { return ValueExpression.NULL; } if (typeInfo.getValueType() == Value.UNKNOWN) { typeInfo = TypeInfo.TYPE_VARCHAR; } type = typeInfo; return this; } @Override public StringBuilder getUnenclosedSQL(StringBuilder builder, int sqlFlags) { builder.append("CASE"); int len = args.length - 1; for (int i = 0; i < len; i += 2) { builder.append(" WHEN "); args[i].getUnenclosedSQL(builder, sqlFlags); builder.append(" THEN "); args[i + 1].getUnenclosedSQL(builder, sqlFlags); } if ((len & 1) == 0) { builder.append(" ELSE "); args[len].getUnenclosedSQL(builder, sqlFlags); } return builder.append(" END"); } }
Detected license expression

      
    
Detected license expression (SPDX)

      
    
Percentage of license text
4.0
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