Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
JDK 17 jdk.internal.le.jmod - Internal Line Editing Module
JDK 17 jdk.internal.le.jmod is the JMOD file for JDK 17 Internal Line Editing module.
JDK 17 Internal Line Editing module compiled class files are stored in \fyicenter\jdk-17.0.5\jmods\jdk.internal.le.jmod.
JDK 17 Internal Line Editing module compiled class files are also linked and stored in the \fyicenter\jdk-17.0.5\lib\modules JImage file.
JDK 17 Internal Line Editing module source code files are stored in \fyicenter\jdk-17.0.5\lib\src.zip\jdk.internal.le.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ jdk/internal/org/jline/utils/AttributedString.java
/* * Copyright (c) 2002-2016, the original author or authors. * * This software is distributable under the BSD license. See the terms of the * BSD license in the documentation provided with this software. * * https://opensource.org/licenses/BSD-3-Clause */ package jdk.internal.org.jline.utils; import java.security.InvalidParameterException; import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Attributed string. * Instances of this class are immutables. * Substrings are created without any memory copy. * * @author <a href="mailto:gnodet@gmail.com">Guillaume Nodet</a> */ public class AttributedString extends AttributedCharSequence { final char[] buffer; final long[] style; final int start; final int end; public static final AttributedString EMPTY = new AttributedString(""); public static final AttributedString NEWLINE = new AttributedString("\n"); public AttributedString(CharSequence str) { this(str, 0, str.length(), null); } public AttributedString(CharSequence str, int start, int end) { this(str, start, end, null); } public AttributedString(CharSequence str, AttributedStyle s) { this(str, 0, str.length(), s); } public AttributedString(CharSequence str, int start, int end, AttributedStyle s) { if (end < start) { throw new InvalidParameterException(); } if (str instanceof AttributedString) { AttributedString as = (AttributedString) str; this.buffer = as.buffer; if (s != null) { this.style = as.style.clone(); for (int i = 0; i < style.length; i++) { this.style[i] = (this.style[i] & ~s.getMask()) | s.getStyle(); } } else { this.style = as.style; } this.start = as.start + start; this.end = as.start + end; } else if (str instanceof AttributedStringBuilder) { AttributedStringBuilder asb = (AttributedStringBuilder) str; AttributedString as = asb.subSequence(start, end); this.buffer = as.buffer; this.style = as.style; if (s != null) { for (int i = 0; i < style.length; i++) { this.style[i] = (this.style[i] & ~s.getMask()) | s.getStyle(); } } this.start = as.start; this.end = as.end; } else { int l = end - start; buffer = new char[l]; for (int i = 0; i < l; i++) { buffer[i] = str.charAt(start + i); } style = new long[l]; if (s != null) { Arrays.fill(style, s.getStyle()); } this.start = 0; this.end = l; } } AttributedString(char[] buffer, long[] style, int start, int end) { this.buffer = buffer; this.style = style; this.start = start; this.end = end; } public static AttributedString fromAnsi(String ansi) { return fromAnsi(ansi, 0); } public static AttributedString fromAnsi(String ansi, int tabs) { return fromAnsi(ansi, Arrays.asList(tabs)); } public static AttributedString fromAnsi(String ansi, List<Integer> tabs) { if (ansi == null) { return null; } return new AttributedStringBuilder(ansi.length()) .tabs(tabs) .ansiAppend(ansi) .toAttributedString(); } public static String stripAnsi(String ansi) { if (ansi == null) { return null; } return new AttributedStringBuilder(ansi.length()) .ansiAppend(ansi) .toString(); } @Override protected char[] buffer() { return buffer; } @Override protected int offset() { return start; } @Override public int length() { return end - start; } @Override public AttributedStyle styleAt(int index) { return new AttributedStyle(style[start + index], style[start + index]); } @Override long styleCodeAt(int index) { return style[start + index]; } @Override public AttributedString subSequence(int start, int end) { return new AttributedString(this, start, end); } public AttributedString styleMatches(Pattern pattern, AttributedStyle style) { Matcher matcher = pattern.matcher(this); boolean result = matcher.find(); if (result) { long[] newstyle = this.style.clone(); do { for (int i = matcher.start(); i < matcher.end(); i++) { newstyle[this.start + i] = (newstyle[this.start + i] & ~style.getMask()) | style.getStyle(); } result = matcher.find(); } while (result); return new AttributedString(buffer, newstyle, start , end); } return this; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; AttributedString that = (AttributedString) o; return end - start == that.end - that.start && arrEq(buffer, that.buffer, start, that.start, end - start) && arrEq(style, that.style, start, that.start, end - start); } private boolean arrEq(char[] a1, char[] a2, int s1, int s2, int l) { for (int i = 0; i < l; i++) { if (a1[s1+i] != a2[s2+i]) { return false; } } return true; } private boolean arrEq(long[] a1, long[] a2, int s1, int s2, int l) { for (int i = 0; i < l; i++) { if (a1[s1+i] != a2[s2+i]) { return false; } } return true; } @Override public int hashCode() { int result = Arrays.hashCode(buffer); result = 31 * result + Arrays.hashCode(style); result = 31 * result + start; result = 31 * result + end; return result; } public static AttributedString join(AttributedString delimiter, AttributedString... elements) { Objects.requireNonNull(delimiter); Objects.requireNonNull(elements); return join(delimiter, Arrays.asList(elements)); } public static AttributedString join(AttributedString delimiter, Iterable<AttributedString> elements) { Objects.requireNonNull(elements); AttributedStringBuilder sb = new AttributedStringBuilder(); int i = 0; for (AttributedString str : elements) { if (i++ > 0 && delimiter != null) { sb.append(delimiter); } sb.append(str); } return sb.toAttributedString(); } }
⏎ jdk/internal/org/jline/utils/AttributedString.java
Or download all of them as a single archive file:
File name: jdk.internal.le-17.0.5-src.zip File size: 231458 bytes Release date: 2022-09-13 Download
⇒ JDK 17 jdk.internal.opt.jmod - Internal Opt Module
⇐ JDK 17 jdk.internal.jvmstat.jmod - Internal JVM Stat Module
2023-08-25, 3997👍, 0💬
Popular Posts:
JDK 11 java.management.jmod is the JMOD file for JDK 11 Management module. JDK 11 Management module ...
ZooKeeper is a centralized service for maintaining configuration information, naming, providing dist...
Java Architecture for XML Binding (JAXB) is a Java API that allows Java developers to map Java class...
What Is XMLBeans xbean.jar 2.6.0? XMLBeans xbean.jar 2.6.0 is the JAR file for Apache XMLBeans 2.6.0...
Xalan-Java, Version 2.7.1, is an XSLT processor for transforming XML documents into HTML, text, or o...