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 11 jdk.internal.le.jmod - Internal Line Editing Module
JDK 11 jdk.internal.le.jmod is the JMOD file for JDK 11 Internal Line Editing module.
JDK 11 Internal Line Editing module compiled class files are stored in \fyicenter\jdk-11.0.1\jmods\jdk.internal.le.jmod.
JDK 11 Internal Line Editing module compiled class files are also linked and stored in the \fyicenter\jdk-11.0.1\lib\modules JImage file.
JDK 11 Internal Line Editing module source code files are stored in \fyicenter\jdk-11.0.1\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/jline/console/history/MemoryHistory.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. * * http://www.opensource.org/licenses/bsd-license.php */ package jdk.internal.jline.console.history; import java.util.Iterator; import java.util.LinkedList; import java.util.ListIterator; import java.util.NoSuchElementException; import static jdk.internal.jline.internal.Preconditions.checkNotNull; /** * Non-persistent {@link History}. * * @author <a href="mailto:mwp1@cornell.edu">Marc Prud'hommeaux</a> * @author <a href="mailto:jason@planet57.com">Jason Dillon</a> * @since 2.3 */ public class MemoryHistory implements History { public static final int DEFAULT_MAX_SIZE = 500; private final LinkedList<CharSequence> items = new LinkedList<CharSequence>(); private int maxSize = DEFAULT_MAX_SIZE; private boolean ignoreDuplicates = true; private boolean autoTrim = false; // NOTE: These are all ideas from looking at the Bash man page: // TODO: Add ignore space? (lines starting with a space are ignored) // TODO: Add ignore patterns? // TODO: Add history timestamp? // TODO: Add erase dups? private int offset = 0; private int index = 0; public void setMaxSize(final int maxSize) { this.maxSize = maxSize; maybeResize(); } public int getMaxSize() { return maxSize; } public boolean isIgnoreDuplicates() { return ignoreDuplicates; } public void setIgnoreDuplicates(final boolean flag) { this.ignoreDuplicates = flag; } public boolean isAutoTrim() { return autoTrim; } public void setAutoTrim(final boolean flag) { this.autoTrim = flag; } public int size() { return items.size(); } public boolean isEmpty() { return items.isEmpty(); } public int index() { return offset + index; } public void clear() { items.clear(); offset = 0; index = 0; } public CharSequence get(final int index) { return items.get(index - offset); } public void set(int index, CharSequence item) { items.set(index - offset, item); } public void add(CharSequence item) { checkNotNull(item); if (isAutoTrim()) { item = String.valueOf(item).trim(); } if (isIgnoreDuplicates()) { if (!items.isEmpty() && item.equals(items.getLast())) { return; } } internalAdd(item); } public CharSequence remove(int i) { return items.remove(i); } public CharSequence removeFirst() { return items.removeFirst(); } public CharSequence removeLast() { return items.removeLast(); } protected void internalAdd(CharSequence item) { items.add(item); maybeResize(); } public void replace(final CharSequence item) { items.removeLast(); add(item); } private void maybeResize() { while (size() > getMaxSize()) { items.removeFirst(); offset++; } index = size(); } public ListIterator<Entry> entries(final int index) { return new EntriesIterator(index - offset); } public ListIterator<Entry> entries() { return entries(offset); } public Iterator<Entry> iterator() { return entries(); } private static class EntryImpl implements Entry { private final int index; private final CharSequence value; public EntryImpl(int index, CharSequence value) { this.index = index; this.value = value; } public int index() { return index; } public CharSequence value() { return value; } @Override public String toString() { return String.format("%d: %s", index, value); } } private class EntriesIterator implements ListIterator<Entry> { private final ListIterator<CharSequence> source; private EntriesIterator(final int index) { source = items.listIterator(index); } public Entry next() { if (!source.hasNext()) { throw new NoSuchElementException(); } return new EntryImpl(offset + source.nextIndex(), source.next()); } public Entry previous() { if (!source.hasPrevious()) { throw new NoSuchElementException(); } return new EntryImpl(offset + source.previousIndex(), source.previous()); } public int nextIndex() { return offset + source.nextIndex(); } public int previousIndex() { return offset + source.previousIndex(); } public boolean hasNext() { return source.hasNext(); } public boolean hasPrevious() { return source.hasPrevious(); } public void remove() { throw new UnsupportedOperationException(); } public void set(final Entry entry) { throw new UnsupportedOperationException(); } public void add(final Entry entry) { throw new UnsupportedOperationException(); } } // // Navigation // /** * This moves the history to the last entry. This entry is one position * before the moveToEnd() position. * * @return Returns false if there were no history entries or the history * index was already at the last entry. */ public boolean moveToLast() { int lastEntry = size() - 1; if (lastEntry >= 0 && lastEntry != index) { index = size() - 1; return true; } return false; } /** * Move to the specified index in the history */ public boolean moveTo(int index) { index -= offset; if (index >= 0 && index < size() ) { this.index = index; return true; } return false; } /** * Moves the history index to the first entry. * * @return Return false if there are no entries in the history or if the * history is already at the beginning. */ public boolean moveToFirst() { if (size() > 0 && index != 0) { index = 0; return true; } return false; } /** * Move to the end of the history buffer. This will be a blank entry, after * all of the other entries. */ public void moveToEnd() { index = size(); } /** * Return the content of the current buffer. */ public CharSequence current() { if (index >= size()) { return ""; } return items.get(index); } /** * Move the pointer to the previous element in the buffer. * * @return true if we successfully went to the previous element */ public boolean previous() { if (index <= 0) { return false; } index--; return true; } /** * Move the pointer to the next element in the buffer. * * @return true if we successfully went to the next element */ public boolean next() { if (index >= size()) { return false; } index++; return true; } @Override public String toString() { StringBuilder sb = new StringBuilder(); for (Entry e : this) { sb.append(e.toString() + "\n"); } return sb.toString(); } }
⏎ jdk/internal/jline/console/history/MemoryHistory.java
Or download all of them as a single archive file:
File name: jdk.internal.le-11.0.1-src.zip File size: 116985 bytes Release date: 2018-11-04 Download
⇒ JDK 11 jdk.internal.opt.jmod - Internal Opt Module
⇐ JDK 11 jdk.internal.jvmstat.jmod - Internal JVM Stat Module
2020-08-02, 23709👍, 0💬
Popular Posts:
JDK 11 jdk.localedata.jmod is the JMOD file for JDK 11 Localedata module. JDK 11 Locale Data module ...
The JSR 105 XML Digital Signature 1.0.1 FCS implementation provides an API and implementation that a...
How to read XML document with XML Schema validation from socket connections with the socket\DelayedI...
HttpComponents Core Source Code Files are provided in the source package file, httpcomponents-core-5...
Provides support for the runtime platform, core utility methods and the extension registry. JAR File...