Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
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 (322)
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, ≈16🔥, 0💬
Popular Posts:
ZooKeeper is a centralized service for maintaining configuration information, naming, providing dist...
What Is jms.jar? I heard it's related to JMS (Java Message Service) 1.1? The if you have an jms.jar ...
JDK 17 java.desktop.jmod is the JMOD file for JDK 17 Desktop module. JDK 17 Desktop module compiled ...
Commons Pool provides an Object-pooling API, with three major aspects: 1. A generic object pool inte...
JDK 17 java.naming.jmod is the JMOD file for JDK 17 Naming module. JDK 17 Naming module compiled cla...