ttomcat-1778514358873.zip-extract/_dependencies/maven/com.h2database_h2-2.2.220/org/h2/bnf/RuleElement.java

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

      
    
Rootfs path

      
    
Size
2459 (2.4 KB)
MD5
e990f0b6fd153e05961eb5995596583e
SHA1
051179b48f433f0f15e3e81f75eb52c977df4be2
SHA256
47fb86e9361a2e645557709660881709efdcd682a0fb24e8f69f571544e77910
SHA512

      
    
SHA1_git
6a2a0c95372f8630a854d3b6432efa0fc5dceda3
Is binary

      
    
Is text
True
Is archive

      
    
Is media

      
    
Is legal

      
    
Is manifest

      
    
Is readme

      
    
Is top level

      
    
Is key file

      
    
RuleElement.java | 2.4 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.bnf; import java.util.HashMap; import org.h2.util.StringUtils; /** * A single terminal rule in a BNF object. */ public class RuleElement implements Rule { private final boolean keyword; private final String name; private Rule link; private final int type; public RuleElement(String name, String topic) { this.name = name; this.keyword = name.length() == 1 || name.equals(StringUtils.toUpperEnglish(name)); topic = StringUtils.toLowerEnglish(topic); this.type = topic.startsWith("function") ? Sentence.FUNCTION : Sentence.KEYWORD; } @Override public void accept(BnfVisitor visitor) { visitor.visitRuleElement(keyword, name, link); } @Override public void setLinks(HashMap<String, RuleHead> ruleMap) { if (link != null) { link.setLinks(ruleMap); } if (keyword) { return; } String test = Bnf.getRuleMapKey(name); for (int i = 0; i < test.length(); i++) { String t = test.substring(i); RuleHead r = ruleMap.get(t); if (r != null) { link = r.getRule(); return; } } throw new AssertionError("Unknown " + name + "/" + test); } @Override public boolean autoComplete(Sentence sentence) { sentence.stopIfRequired(); if (keyword) { String query = sentence.getQuery(); String q = query.trim(); String up = sentence.getQueryUpper().trim(); if (up.startsWith(name)) { query = query.substring(name.length()); while (!"_".equals(name) && Bnf.startWithSpace(query)) { query = query.substring(1); } sentence.setQuery(query); return true; } else if (q.length() == 0 || name.startsWith(up)) { if (q.length() < name.length()) { sentence.add(name, name.substring(q.length()), type); } } return false; } return link.autoComplete(sentence); } @Override public String toString() { return name; } }
Detected license expression
mpl-2.0 AND epl-1.0
Detected license expression (SPDX)
MPL-2.0 AND EPL-1.0
Percentage of license text
3.8
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 detections License expression License expression SPDX
mpl_2_0_and_epl_1_0-796bf8d7-f485-3520-923d-e6a4b1ecd2f3 mpl-2.0 AND epl-1.0 MPL-2.0 AND EPL-1.0
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