Javadoc Fixes

This commit is contained in:
astrelsky 2019-11-25 23:41:54 -05:00
parent 9a470a9dc7
commit ebde7cd6d2
No known key found for this signature in database
GPG key ID: FA88FA97D6877C37
659 changed files with 1690 additions and 3968 deletions

View file

@ -18,7 +18,7 @@ package generic.algorithms;
import java.util.List;
/**
* An implementation of the {@link ReducingLcs} that takes as its input a list of <T> items, where
* An implementation of the {@link ReducingLcs} that takes as its input a list of {@literal <T>}items, where
* the list is the 'sequence' being checked for the Longest Common Subsequence.
*
* @param <T> the type of the item in the sequence of items

View file

@ -35,7 +35,7 @@ import ghidra.util.task.TaskMonitor;
* <hr>
* <p>
* <u>Put and Forget:</u>
* <pre>
* <pre>{@literal
* QCallback<ITEM, RESULT> callback = new AbstractQCallback<ITEM, RESULT>() {
* public RESULT process(ITEM item, TaskMonitor monitor) {
* // do work here...
@ -49,11 +49,11 @@ import ghidra.util.task.TaskMonitor;
* ...
* concurrentQ.add(item); // where item is one of the instances of ITEM
*
* </pre>
* }</pre>
* <hr>
* <p>
* <u>Put Items and Handle Results in Any Order as They Available:</u>
* <pre>
* <pre>{@literal
* QCallback<ITEM, RESULT> callback = new AbstractQCallback<ITEM, RESULT>() {
* public RESULT process(ITEM item, TaskMonitor monitor) {
* // do work here...
@ -62,14 +62,14 @@ import ghidra.util.task.TaskMonitor;
*
* QItemListener<ITEM, RESULT> itemListener = new QItemListener<ITEM, RESULT>() {
* public void itemProcessed(QResult<ITEM, RESULT> result) {
* RESULT result = result.getResult();
* <font color="blue"><b>// work on my result...</b></font>
* RESULT result = result.getResult();}
* <font color="blue"><b>// work on my result...</b></font>{@code
* }
* };
*
* ConcurrentQBuilder<ITEM, RESULT> builder = new ConcurrentQBuilder<ITEM, RESULT>();
* builder.setThreadPoolName("Thread Pool Name");
* <font color="blue"><b>builder.setListener(itemListener);</b></font>
* }<font color="blue"><b>builder.setListener(itemListener);</b></font>{@code
* concurrentQ = builder.build(callback);
* ...
* ...
@ -77,12 +77,12 @@ import ghidra.util.task.TaskMonitor;
* concurrentQ.add(item);
* concurrentQ.add(item);
*
* </pre>
* }</pre>
*
* <hr>
* <p>
* <u>Put Items and Handle Results When All Items Have Been Processed:</u>
* <pre>
* <pre>{@literal
* QCallback<ITEM, RESULT> callback = new AbstractQCallback<ITEM, RESULT>() {
* public RESULT process(ITEM item, TaskMonitor monitor) {
* // do work here...
@ -91,7 +91,7 @@ import ghidra.util.task.TaskMonitor;
*
* ConcurrentQBuilder<ITEM, RESULT> builder = new ConcurrentQBuilder<ITEM, RESULT>();
* builder.setThreadPoolName("Thread Pool Name");
* <font color="blue"><b>builder.setCollectResults(true);</b></font>
* }<font color="blue"><b>builder.setCollectResults(true);</b></font>{@code
* concurrentQ = builder.getQueue(callback);
* ...
* ...
@ -99,14 +99,14 @@ import ghidra.util.task.TaskMonitor;
* concurrentQ.add(item);
* concurrentQ.add(item);
* ...
* <font color="blue"><b>List&lt;QResult&lt;I, R&gt;&gt; results = concurrentQ.waitForResults();</b></font>
* }<font color="blue"><b>{@literal List<QResult<I, R>> results = concurrentQ.waitForResults();}</b></font>{@literal
* // process the results...
*
* </pre>
* }</pre>
* <hr>
* <p>
* <u>Put Items, <b>Blocking While Full</b>, and Handle Results in Any Order as They Available:</u>
* <pre>
* <pre>{@literal
* QCallback<ITEM, RESULT> callback = new AbstractQCallback<ITEM, RESULT>() {
* public RESULT process(ITEM item, TaskMonitor monitor) {
* // do work here...
@ -122,12 +122,12 @@ import ghidra.util.task.TaskMonitor;
*
* ConcurrentQBuilder<ITEM, RESULT> builder = new ConcurrentQBuilder<ITEM, RESULT>();
* builder.setThreadPoolName("Thread Pool Name");
* <font color="blue"><b>builder.setQueue(new LinkedBlockingQueue(100));</b></font>
* }<font color="blue"><b>builder.setQueue(new LinkedBlockingQueue(100));</b></font>{@literal
* concurrentQ = builder.getQueue(callback);
* ...
* ...
* Iterator<ITEM> iterator = &lt;get an iterator for 1000s of items somewhere&gt;
* <font color="blue"><b>concurrentQ.offer(iterator); // this call will block when the queue fills up (100 items or more)</b></font>
* Iterator<ITEM> iterator = <get an iterator for 1000s of items somewhere>
* }<font color="blue"><b>{@code concurrentQ.offer(iterator); // this call will block when the queue fills up (100 items or more)}</b></font>
*
* </pre>
* <hr>
@ -378,7 +378,7 @@ public class ConcurrentQ<I, R> {
*
* @return the first available result
* @throws InterruptedException if interrupted while waiting for a result
* @throws {@link IllegalStateException} if this queue has been set to not collect results
* @throws IllegalStateException if this queue has been set to not collect results
* (see the constructor).
*/
public QResult<I, R> waitForNextResult() throws InterruptedException {

View file

@ -34,7 +34,7 @@ import java.util.concurrent.LinkedBlockingQueue;
* <P>
* Examples:
* <p>
* <pre>
* <pre>{@literal
* QCallback<I, R> callback = new AbstractQCallback<I, R>() {
* public R process(I item, TaskMonitor monitor) {
* // do work here...
@ -53,7 +53,7 @@ import java.util.concurrent.LinkedBlockingQueue;
* setMaxInProgress(1).
* build(callback);
*
* </pre>
* }</pre>
* <p>
*
* Note: if you wish to take advantage of blocking when adding items to the {@link ConcurrentQ},
@ -180,7 +180,7 @@ public class ConcurrentQBuilder<I, R> {
}
/**
* @see {@link ConcurrentQ#setMonitor(TaskMonitor, boolean)}
* @see ConcurrentQ#setMonitor(TaskMonitor, boolean)
* <p>
* The default value is <tt>true</tt>.
*/

View file

@ -20,13 +20,13 @@ import ghidra.util.task.TaskMonitor;
/**
* Interface that defines the callback to work on the items given to the
* {@link ConcurrentQ#add(I)} methods. Each item that is processed will be handed to the
* {@link #process(I, TaskMonitor)} method of the implementing class.
* {@link ConcurrentQ#add(Object) ConcurrentQ.add(I)} methods. Each item that is processed will be handed to the
* {@link #process(Object, TaskMonitor) process(I, TaskMonitor)} method of the implementing class.
*
* @param <I> The type of the items to be processed.
* @param <R> The type of objects resulting from processing an item; if you don't care about the
* return value, then make this value whatever you want, like <tt>Object</tt> or the
* same value as {@link I} and return null from {@link #process(Object, TaskMonitor)}.
* same value as {@link I} and return null from {@link #process(Object, TaskMonitor) process(I, TaskMonitor)}.
*/
public interface QCallback<I, R> {

View file

@ -26,18 +26,17 @@ public interface QProgressListener<I> {
* Notification that progress has changed during the processing of an item.
* @param id the id of the item being processed. Since multiple items can be processed concurrently,
* the id can be used to "demultiplex" the progress and messages being generated.
* @param currentProgress the current value of the progress for this task.
* @param progressMessage the last message set for this task.s
* @param item the item that was being processed when the worker changed the max progress.
* @param currentProgress the current value of the progress for this task.
*/
void progressChanged(long id, I Item, long currentProgress);
void progressChanged(long id, I item, long currentProgress);
/**
* Notification that a new task has been generated to process an item.
* @param id the id of the item being processed.
* @param item the item that was being processed when the worker changed the max progress.
*/
void taskStarted(long id, I Item);
void taskStarted(long id, I item);
/**
* Notification that a new task has completed processing for an item.
@ -46,7 +45,7 @@ public interface QProgressListener<I> {
* @param totalCount the total number of items that have been submitted to the ConcurrentQ
* @param completedCount the total number of items that completed processing.
*/
void taskEnded(long id, I Item, long totalCount, long completedCount);
void taskEnded(long id, I item, long totalCount, long completedCount);
/**
* Notification that the progress mode has changed from/to indeterminate mode

View file

@ -20,8 +20,8 @@ import ghidra.util.task.TaskMonitor;
/**
* Interface that defines the Runnable to work on the items given to the
* {@link ConcurrentQ#add(I)} methods. Each item that is processed will be handed to the
* {@link #run(I, TaskMonitor)} method of the implementing class.
* {@link ConcurrentQ#add(Object) ConcurrentQ.add(I)} methods. Each item that is processed will be handed to the
* {@link #run(Object, TaskMonitor) run(I, TaskMonitor)} method of the implementing class.
*
* @param <I> The type of the items to be processed.
*/

View file

@ -46,7 +46,7 @@ public abstract class Constraint<T> {
/**
* Returns true if the given object satisfies this constraint.
* @param the object to test this constraint on.
* @param t the object to test this constraint on.
* @return true if the given object satisfies this constraint.
*/
public abstract boolean isSatisfied(T t);

View file

@ -4,19 +4,18 @@
package generic.json;
public class JSONToken {
/**
* JSON token description.
* @param type type (object, array, string etc.)
* @param start start position in JSON data string
* @param end end position in JSON data string
*/
public JSONType type;
public int start;
public int end;
public int size;
/**
* JSON token description.
* @param type the token type (object, array, string etc.)
* @param start the start position in JSON data string
* @param end the end position in JSON data string
*/
public JSONToken(JSONType type, int start, int end) {
setType(type);
setStart(start);

View file

@ -38,7 +38,7 @@ public class LSHCosineVector implements LSHVector {
/**
* Install a set of features as an int[]. Each integer is a hash. The integers MUST already be sorted.
* The same integer can occur more than once in the array (term frequency (TF) > 1).
* The same integer can occur more than once in the array (term frequency (TF) &gt; 1).
* Weights are determined by TF and Inverse Document Frequency (IDF) of individual features
* @param feature is the sorted array of integer hashes
* @param wfactory is the container of weighting information

View file

@ -36,7 +36,7 @@ public abstract class LSHVectorFactory {
/**
* Generate an LSHVector from a feature set, individual features are integer hashes.
* The integers MUST already be sorted.
* The same integer can occur more than once in the array (term frequency (TF) > 1).
* The same integer can occur more than once in the array (term frequency (TF) &gt; 1).
* The factory decides internally how to create weights based on term frequency and any
* knowledge of Inverse Document Frequency (IDF)
* @param feature is the sorted array of integer features

View file

@ -37,14 +37,19 @@ public class RedBlackTree<K,V> {
private final boolean allowDuplicateKeys;
/**
* Creates a new RedBlackKeySet that can store keys between 0 and n.
* @param n the maximum key for this set.
* Creates a new RedBlackTree
* @param comparator the comparator for this tree
* @param allowDuplicateKeys true to allow duplicate keys
*/
public RedBlackTree(Comparator<K> comparator, boolean allowDuplicateKeys) {
this.comparator = comparator;
this.allowDuplicateKeys = allowDuplicateKeys;
}
/**
* Creates a copy of an existing RedBlackTree
* @param tree the existing tree to copy
*/
public RedBlackTree(RedBlackTree<K, V> tree) {
this.comparator = tree.comparator;
this.allowDuplicateKeys = tree.allowDuplicateKeys;
@ -129,10 +134,10 @@ public class RedBlackTree<K,V> {
}
/**
* Finds the node with the lowest key that is >= to the given key. Returns null if all nodes
* Finds the node with the lowest key that is &gt;= to the given key. Returns null if all nodes
* in the tree have keys less than the given key.
* @param key the key to search for.
* @return the node with the lowest key that is >= to the given key or null if no such key exists.
* @return the node with the lowest key that is &gt;= to the given key or null if no such key exists.
*/
public RedBlackNode<K,V> lowerBound(K key) {
RedBlackNode<K,V> bestNode = null;
@ -154,10 +159,10 @@ public class RedBlackTree<K,V> {
/**
* Finds the node with the lowest key that is > the given key. Returns null if all nodes
* Finds the node with the lowest key that is &gt; the given key. Returns null if all nodes
* in the tree have keys less than or equal to the given key.
* @param key the key to search for.
* @return the node with the lowest key that is > to the given key or null if no such key exists.
* @return the node with the lowest key that is &gt; to the given key or null if no such key exists.
*/
public RedBlackNode<K,V> upperBound(K key){
RedBlackNode<K,V> bestNode = null;
@ -183,6 +188,7 @@ public class RedBlackTree<K,V> {
* already exists, the old value will be replaced by the new value and the old value will be
* returned.
* @param key the key to add to the set.
* @param value the key's value.
* @return the old value associated with the key, or null if the key was not previously in the map.
*/
public Pair<RedBlackNode<K, V>, Boolean> put(K key, V value) {

View file

@ -1482,7 +1482,7 @@ public abstract class AbstractGenericTest extends AbstractGTest {
/**
* Invoke <code>fixupGUI</code> at the beginning of your JUnit test or in
* its setup() method to make your GUI for the JUnit test appear using the
* system Look & Feel. The system look and feel is the default that Ghidra
* system Look &amp; Feel. The system look and feel is the default that Ghidra
* uses. This will also change the default fonts for the JUnit test to be
* the same as those in Ghidra.
*

View file

@ -92,7 +92,7 @@ public class GhidraSwinglessTimer implements GhidraTimer {
/**
* Creates a new repeating timer with a initial and continual delay with the given delay.
* @param delay the delay to use for the first and subsequent timer callbacks.
* @callback the callback the be called with the timer fires.
* @param callback the callback the be called with the timer fires.
*/
public GhidraSwinglessTimer(int delay, TimerCallback callback) {
this(delay,delay,callback);
@ -102,7 +102,7 @@ public class GhidraSwinglessTimer implements GhidraTimer {
* Creates a new repeating timer with an initial and continual delay.
* @param initialDelay the delay to use for the first timer callbacks.
* @param delay the delay to use for subsequent timer callbacks.
* @callback the callback the be called with the timer fires.
* @param callback the callback the be called with the timer fires.
*/
public GhidraSwinglessTimer(int initialDelay, int delay, TimerCallback callback) {
this.callback = callback;

View file

@ -43,7 +43,7 @@ public class MultiIterator<T> implements Iterator<T> {
* Use this constructor when the items of the iterators are naturally comparable (i.e.,
* they implement {@link Comparable}).
*
* @param comparator the comparator used to find the next item
* @param iterators the iterators that provide the data
* @param forward true if the iterators provide data sorted ascending; false for descending
*/
public MultiIterator(List<PeekableIterator<T>> iterators, boolean forward) {

View file

@ -29,10 +29,9 @@ import ghidra.util.exception.ClosedException;
public class SwingExceptionHandler implements UncaughtExceptionHandler {
/**
* Handle exception caught within the EventDispatchThread.
* Handle exception caught within the Swing event dispatch thread.
* @param t exception
* @throws Throwable error occurred while attempting to handle exception
* @see java.awt.EventDispatchThread#handleException(java.lang.Throwable)
*/
public void handle(Throwable t) throws Throwable {
handleUncaughtException(t);

View file

@ -804,7 +804,7 @@ public class Application {
/**
* Returns a list of all directories in any module that have the given module relative path. For
* example, a relative path of "foo/bar" will return all directories that are of the form
* <module root>/data/foo/bar
* {@code <module root>/data/foo/bar}
* @param relativePath the module relative path to search for.
* @return a list of all directories in any module that have the given module relative path.
*/
@ -890,7 +890,7 @@ public class Application {
/**
* Returns the file relative to the named module's directory.
* @param moduleName the name of the module.
* @param relativeDataPath the path relative to the module's data directory.
* @param relativePath the path relative to the module's data directory.
* @throws FileNotFoundException if the file does not exist.
*/
public static ResourceFile getModuleFile(String moduleName, String relativePath)

View file

@ -36,7 +36,7 @@ public interface ModuleInitializer
//@formatter:on
/**
* @returns initializer name
* @return initializer name
*/
public String getName();
}

View file

@ -45,8 +45,7 @@ public class ShutdownHookRegistry {
/**
* Remove a shutdown hook previously registered.
* Hooks with a higher priority value will run first
* @param r shutdown hook runnable
* @param priority relative priority
* @param hook shutdown hook
*/
public static synchronized void removeShutdownHook(ShutdownHook hook) {
hooks.remove(hook);

View file

@ -59,7 +59,7 @@ public interface Options {
* from the swing thread.
* @return either the PropertyEditor that was registered for this option or a default editor
* for the property type if one can be found; otherwise null.
* @throw IllegalStateException if not called from the swing thread.
* @throws IllegalStateException if not called from the swing thread.
*/
public PropertyEditor getPropertyEditor(String optionName);
@ -112,7 +112,7 @@ public interface Options {
* @param optionName the name of the option being registered.
* @param defaultValue the defaultValue for the option. The default value must not be
* null so that the OptionType can be determined. If the default value should be null, use
* {@link #registerOption(String, OptionType, Object, HelpLocation, String)
* {@link #registerOption(String, OptionType, Object, HelpLocation, String)}
* @param help the HelpLocation for this option.
* @param description a description of the option.
* @throws IllegalArgumentException if the defaultValue is null
@ -151,15 +151,13 @@ public interface Options {
/**
* Register the options editor that will handle the editing for all the options or a sub group of options.
* @param path the path to the sub group of options or "" for all the options.
* @param editor the custom editor panel to be used to edit the options or sub group of options.
*/
public abstract void registerOptionsEditor(OptionsEditor editor);
/**
* Get the editor that will handle editing all the values in this options or sub group of options.
* @param path the path to the sub group of options or "" for all the options.
* @return null if no options editor was registered
* @return null if no options editor was registered
*/
public abstract OptionsEditor getOptionsEditor();
@ -268,8 +266,8 @@ public interface Options {
/**
* Get the Date for the given option name.
* @param optionName option name
* @param defaultValue value that is stored and returned if there is no
* @param pName the property name
* @param date the default date that is stored and returned if there is no
* option with the given name
* @return the Date for the option
* @throws IllegalArgumentException is a option exists with the given
@ -376,7 +374,7 @@ public interface Options {
/**
* Sets the Date value for the option.
* @param optionName name of the option
* @param value
* @param newSetting the Date to set
*/
public abstract void setDate(String optionName, Date newSetting);
@ -508,7 +506,7 @@ public interface Options {
/**
* Returns the value as a string for the given option.
* @param optionName the name of the option for which to retrieve the value as a string
* @param name the name of the option for which to retrieve the value as a string
* @return the value as a string for the given option.
*/
public abstract String getValueAsString(String name);
@ -518,6 +516,6 @@ public interface Options {
* @param optionName the name of the option for which to retrieve the default value as a string
* @return the default value as a string for the given option.
*/
public abstract String getDefaultValueAsString(String analyzerName);
public abstract String getDefaultValueAsString(String optionName);
}

View file

@ -28,7 +28,7 @@ import ghidra.util.ReversedListIterator;
* Such a tree may be useful as a priority queue where the cost of an entry may change over time.
* As such, the collections returned by {@link #entrySet()}, {@link #keySet()}, and
* {@link #values()} all implement {@link Deque}. The order of the entries will be updated on any
* call to {@link #put(Object, Object))}, or a call to {@link Collection#add(Object)} on the entry
* call to {@link #put(Object, Object)}, or a call to {@link Collection#add(Object)} on the entry
* set. Additionally, if the values are mutable objects, whose costs may change, there is an
* {@link #update(Object)} method, which notifies the map that the given key may need to be
* repositioned. The associated collections also implement the {@link List} interface, providing
@ -38,9 +38,9 @@ import ghidra.util.ReversedListIterator;
*
* The underlying implementation is currently an unbalanced binary tree whose nodes also comprise a
* doubly-linked list. Currently, it is not thread safe.
* @TODO Consider changing to an AVL tree implementation
* @TODO Consider implementing the {@link NavigableMap} interface
* @TODO Consider making the implementation thread-safe
* TODO Consider changing to an AVL tree implementation
* TODO Consider implementing the {@link NavigableMap} interface
* TODO Consider making the implementation thread-safe
*
* @param <K> the type of the keys
* @param <V> the type of the values
@ -340,7 +340,7 @@ public class DynamicValueSortedTreeMap<K, V> extends AbstractMap<K, V> {
/**
* Insert a node as a successor to this node in the linked list
* @note Called only after the node is inserted into the tree
* NOTE: Called only after the node is inserted into the tree
*/
private void insertAfter(Node item) {
item.prev = this;
@ -357,7 +357,7 @@ public class DynamicValueSortedTreeMap<K, V> extends AbstractMap<K, V> {
/**
* Insert a node as a predecessor to this node in the linked list
* @note Called only after the node is inserted into the tree
* NOTE: Called only after the node is inserted into the tree
*/
private void insertBefore(Node item) {
item.prev = prev;
@ -498,7 +498,7 @@ public class DynamicValueSortedTreeMap<K, V> extends AbstractMap<K, V> {
/**
* When searching for values, identifies which instance to find
*
* @TODO When/if implementing {@link NavigableMap}, this seems an appropriate place to put
* TODO When/if implementing {@link NavigableMap}, this seems an appropriate place to put
* FLOOR, CEILING, etc.
*/
private enum SearchMode {

View file

@ -41,7 +41,7 @@ import ghidra.util.Msg;
* *.cer, *.der) or may be in a Java JKS form (*.jks). The path to this file may be
* established in one of two ways using the absolute file path:
* <ol>
* <li>setting the system property <i>ghidra.cacerts</i> (takes precedence)</i>
* <li>setting the system property <i>ghidra.cacerts</i> (takes precedence)</li>
* <li>setting the user preference <i>ghidra.cacerts</i></li>
* </ol>
* <p>

View file

@ -45,7 +45,7 @@ public class SSLContextInitializer implements ModuleInitializer {
/**
* Initialize default SSLContext with optional reset.
* This method is primarily intended for testing.
* @param if true a complete reset will be done to force use of
* @param reset if true a complete reset will be done to force use of
* any new certificate or keystores previously used.
* @return true if successful, else false (see logged error)
*/

View file

@ -134,7 +134,7 @@ public interface DataConverter extends Serializable {
* @param value value to convert to bytes
* @param b byte array to store bytes
* @param offset offset into byte array to put the bytes
* @throws IndexOutOfBoundsException if (offset+2)>b.length
* @throws IndexOutOfBoundsException if (offset+2)&gt;b.length
*/
public void getBytes(short value, byte[] b, int offset);
@ -152,7 +152,7 @@ public interface DataConverter extends Serializable {
* @param value value to convert to bytes
* @param b byte array to store bytes
* @param offset offset into byte array to put the bytes
* @throws IndexOutOfBoundsException if (offset+4)>b.length
* @throws IndexOutOfBoundsException if (offset+4)&gt;b.length
*/
public void getBytes(int value, byte[] b, int offset);
@ -170,7 +170,7 @@ public interface DataConverter extends Serializable {
* @param value value to convert to bytes
* @param b byte array to store bytes
* @param offset offset into byte array to put the bytes
* @throws IndexOutOfBoundsException if (offset+8)>b.length
* @throws IndexOutOfBoundsException if (offset+8)&gt;b.length
*/
public void getBytes(long value, byte[] b, int offset);
@ -181,7 +181,7 @@ public interface DataConverter extends Serializable {
* @param size number of least significant bytes of value to be written to the byte array
* @param b byte array to store bytes
* @param offset offset into byte array to put the bytes
* @throws IndexOutOfBoundsException if (offset+size)>b.length.
* @throws IndexOutOfBoundsException if (offset+size)&gt;b.length.
*/
public void getBytes(long value, int size, byte[] b, int offset);
@ -192,7 +192,7 @@ public interface DataConverter extends Serializable {
* @param size number of least significant bytes of value to be written to the byte array
* @param b byte array to store bytes
* @param offset offset into byte array to put the bytes
* @throws IndexOutOfBoundsException if (offset+size)>b.length.
* @throws IndexOutOfBoundsException if (offset+size)&gt;b.length.
*/
public void getBytes(BigInteger value, int size, byte[] b, int offset);

View file

@ -242,7 +242,7 @@ public final class NumericUtilities {
/**
* Get an unsigned aligned value corresponding to the specified unsigned value
* which will be greater than or equal the specified value.
* @param value value to be aligned
* @param unsignedValue value to be aligned
* @param alignment alignment
* @return aligned value
*/
@ -270,7 +270,7 @@ public final class NumericUtilities {
*
* For example, consider the mask 00001111:01011100, and the value 00001001:00011000. This
* will display as {@code X8:[x0x1][10xx]}. To see the correlation, consider the table:
* <table>
* <table><caption></caption>
* <tr><th>Display</th><th>{@code X}</th> <th>{@code 8}</th> <th>{@code :}</th>
* <th>{@code [x0x1]}</th><th>{@code [10xx]}</th></tr>
* <tr><th>Mask</th> <td>{@code 0000}</td><td>{@code 1111}</td><td>{@code :}</td>
@ -514,7 +514,7 @@ public final class NumericUtilities {
* <li> 10 - renders <code>number</code> as a base-10 integer</li>
* <li> 16 (default) - renders <code>number</code> base-16 integer</li>
* </ul>
* <table>
* <table><caption></caption>
* <tr><th>Number</th><th>Radix</th><th>DEFAULT Mode Alias</th><th><i>UNSIGNED</i> Mode Value</th><th><i>SIGNED</i> Mode Value</th></tr>
* <tr><td>&nbsp;</td><td></td><td><i></i></td><td></td><td></td></tr>
* <tr align=right><td>100</td><td>2</td><td><i>UNSIGNED</i></td><td>1100100b</td><td>1100100b</td></tr>

View file

@ -20,7 +20,7 @@ import java.util.ListIterator;
/**
* Wraps a {@link ListIterator} so that the operations are reversed.
*
* @note you must obtain an iterator that is already at its end. E.g., if you wish to traverse a
* NOTE: you must obtain an iterator that is already at its end. E.g., if you wish to traverse a
* list in reverse, you would use
* {@code new ReversedListIterator<>(list.listIterator(list.size()))}.
*

View file

@ -44,7 +44,7 @@ public class TestSuiteUtilities {
/**
* Build JUnit test suite for the specified package.
* TestSuite includes sub-TestSuites for each sub-package.
* @param pkg java package
* @param pkgName the java package name
* @return test suite
*/
public static TestSuite getTestSuite(String pkgName) {
@ -53,7 +53,7 @@ public class TestSuiteUtilities {
/**
* Build JUnit test suite for the specified package only.
* @param pkg java package
* @param pkgName the java package name
* @return test suite
*/
public static TestSuite getPkgTestSuite(String pkgName) {
@ -447,10 +447,10 @@ public class TestSuiteUtilities {
/**
* Create the Java source file a JUnit TestSuite which
* includes all TestCases within a package directory.
* @param baseDir
* @param className
* @param pkgName
* @param recurse
* @param baseDir the base package directory
* @param className the class name
* @param pkgName the java package name
* @throws IOException
*/
public static void createTestSuites(File baseDir, String className, String pkgName) throws IOException {
File dir = makeDir(baseDir, pkgName);
@ -511,9 +511,9 @@ public class TestSuiteUtilities {
* Command-line utilities.
* <p>
* Parameter usage:
* <pre>
* <pre>{@literal
* createAllTests <baseDirPath> <className> <topPackage>
* </pre>
* }</pre>
* @param args
*/
public static void main(String[] args) {

View file

@ -73,7 +73,7 @@ public class UserSearchUtils {
* Create a regular expression from the given input. <b>Note:</b> the regular expression
* created by this method is not a pure regular expression. More specifically, many
* regular expression characters passed to this method will be escaped
* (see {@link #escapeRegexCharacters(String, boolean, boolean)}.
* (see {@link #escapeAllRegexCharacters(String)}.
* <p>
* Also, globbing characters
* <b><u>will</u></b> be changed from a regular expression meaning to a
@ -96,7 +96,7 @@ public class UserSearchUtils {
* @param caseSensitive
* true if the regular expression is case sensitive
* @return Pattern the compiled regular expression
* @throws PatternSyntaxExpression
* @throws java.util.regex.PatternSyntaxException
* if the input could be compiled
*/
public static Pattern createSearchPattern(String input, boolean caseSensitive) {
@ -122,7 +122,7 @@ public class UserSearchUtils {
* @param text
* search string
* @return Pattern the compiled regular expression
* @throws PatternSyntaxExpression
* @throws java.util.regex.PatternSyntaxException
* if the input could be compiled
*/
public static Pattern createLiteralSearchPattern(String text) {

View file

@ -55,7 +55,7 @@ public class GGlassPane extends JComponent {
/**
* Default constructor.
* <p>
* <b>NOTE: </b>You must call {@link #setVisible( true )} on this component <b>after adding it
* <b>NOTE: </b>You must call {@link #setVisible(boolean) setVisible(true)} on this component <b>after adding it
* to the component</b>. This is because the component will set the visibility to that of
* the previous glass pane, which is false by default.
*/

View file

@ -24,8 +24,7 @@ import java.util.function.Consumer;
*
* <P>This class is different than normal accumulators in that the values are <b>not</b>
* stored internally. As such, calls to {@link #get()}, {@link #iterator()} and
* {@link #size()} will reflect having no data. Further, to use this class, each client
* must override {@link #itemAdded(Object)} in order to process the data as it arrives.
* {@link #size()} will reflect having no data.
*
* @param <T> the type of the item being accumulated
*/
@ -38,7 +37,7 @@ public class CallbackAccumulator<T> implements Accumulator<T> {
/**
* Constructor
*
* @param consumer the consumer that will get called each time an item is addded
* @param consumer the consumer that will get called each time an item is added
*/
public CallbackAccumulator(Consumer<T> consumer) {
this.consumer = Objects.requireNonNull(consumer, "Consumer callback cannot be null");

View file

@ -90,7 +90,6 @@ public class DoubleArrayArray implements Array, Serializable {
* @return The double array at the given index. An empty array will
* be returned for any index not initialized to
* another value.
* @exception throws IndexOutOfBoundsException if the index is negative
*/
public double[] get(int index) {
if (index <= starts.length) {
@ -108,7 +107,6 @@ public class DoubleArrayArray implements Array, Serializable {
}
/** Removes the array at the given index
* @param index index of the array to be removed
* @exception throws IndexOutOfBoundsException if the index is negative
*/
public void remove(int index) {
try {

View file

@ -63,7 +63,7 @@ public class IntArrayList implements Serializable, Saveable {
* @param value value to store
*
* @throws IndexOutOfBoundsException
* if the index is negative OR index > size
* if the index is negative OR index &gt; size
*/
public void add(int index, int value) {
if (index < 0 || index > size) {

View file

@ -121,7 +121,7 @@ public class LongArrayList implements List<Long> {
return longs[index];
}
/**
* @see ghidra.util.datastruct.LongArrayListIf#set(int, long)
* @see LongArraySubList#set(int, long)
*/
public Long set(int index, Long value) {
if (index < 0 || index >= size) {
@ -133,7 +133,7 @@ public class LongArrayList implements List<Long> {
}
/**
* @see ghidra.util.datastruct.LongArrayListIf#clear()
* @see LongArraySubList#clear()
*/
public void clear() {
size = 0;
@ -141,14 +141,14 @@ public class LongArrayList implements List<Long> {
}
/**
* @see ghidra.util.datastruct.LongArrayListIf#size()
* @see LongArraySubList#size()
*/
public int size() {
return size;
}
/**
* @see ghidra.util.datastruct.LongArrayListIf#toArray()
* @see LongArraySubList#toArray()
*/
public Long [] toArray() {
Long[] values = new Long[size];

View file

@ -38,7 +38,6 @@ public class RedBlackTree<K extends Comparable<K>, V> implements Iterable<RedBla
/**
* Creates a new RedBlackKeySet that can store keys between 0 and n.
* @param n the maximum key for this set.
*/
public RedBlackTree() {
}

View file

@ -115,7 +115,7 @@ public class Stack<E> implements Iterable<E> {
* Returns the element at the specified depth in this stack.
* 0 indicates the bottom of the stack.
* size()-1 indicates the top of the stack.
* @param index the depth in the stack.
* @param depth the depth in the stack.
* @return the element at the specified depth in this stack
*/
public E get(int depth) {

View file

@ -36,7 +36,7 @@ public class MultipleCauses extends Throwable {
/**
* Constructs a new MultipleCauses wrapper with no causes
* @note it is rude to leave this empty
* NOTE: it is rude to leave this empty
*/
public MultipleCauses() {
super("Multiple Causes");
@ -64,7 +64,7 @@ public class MultipleCauses extends Throwable {
/**
* Returns the causes of the parent throwable (possibly an empty collection)
* @return the collection of causes of the parent throwable
* @note it is rude to leave this empty. If the parent throwable has no cause, or the cause is
* NOTE: it is rude to leave this empty. If the parent throwable has no cause, or the cause is
* unknown, leave its cause null.
*/
public synchronized Collection<Throwable> getCauses() {

View file

@ -32,7 +32,7 @@ import java.util.Hashtable;
* <pre>
* GhidraFileChooser chooser = new GhidraFileChooser();
* ExtensionFileFilter filter = new ExtensionFileFilter(
* new String{"gif", "jpg"}, "JPEG & GIF Images")
* new String{"gif", "jpg"}, "JPEG &amp; GIF Images")
* chooser.addFileFilter(filter);
*</pre>
*/

View file

@ -389,7 +389,7 @@ public class DepthFirstSearch
* portion of the graph with the following
* property:
* <ol>
* <li>If the graph is acyclic then v[i] -> v[j] => i < j .</li>
* <li>{@literal If the graph is acyclic then v[i] -> v[j] => i < j .}</li>
* <li>If the graph contains cycles, then the above is true except when
* (v[i],v[j]) is a back edge.</li>
* </ol>

View file

@ -20,7 +20,7 @@ package ghidra.util.graph;
*
* A simple graph is a graph with no parallel edges or loops. This class models
* a simple digraph -- edges are directed and a single edge may go from any vertex
* to any other vertex. It is possible to have edges A-->B and B-->A however.
* to any other vertex. {@literal It is possible to have edges A-->B and B-->A however.}
* Attempting to add an edge from A to B when an edge from A to B already exists
* causes the edge weight to be increased by the defaultEdgeWeight or the weight
* specified.

View file

@ -60,9 +60,8 @@ public class ObjectAttribute<T extends KeyedObject> extends Attribute<T> {
return false;
}
/** Return the value associated to the specified KeyedObject.
* @throws NoValueException if the value has not been set or
* the KeyedObject does not belong to the owningSet.
/**
* Return the value associated to the specified KeyedObject.
*/
public Object getValue(KeyedObject o) //throws NoValueException
{

View file

@ -61,9 +61,8 @@ public class StringAttribute<T extends KeyedObject> extends Attribute<T> {
return false;
}
/** Return the value associated to the specied KeyedObject.
* @throws NoValueException if the value has not been set or
* the KeyedObject does not belong to the owningSet.
/**
* Return the value associated to the specied KeyedObject.
*/
public String getValue(KeyedObject o) //throws NoValueException
{

View file

@ -47,7 +47,7 @@ public class HtmlLineSplitter {
* @param maxLineLength the max desired length of each output line; 0 or less signals not
* to wrap the line based upon length
* @return the new lines
* @see #wrap(String, int)
* @see #wrap(String, int, WhitespaceHandler)
* @see #split(String, int, boolean)
*/
public static List<String> split(String text, int maxLineLength) {
@ -66,7 +66,7 @@ public class HtmlLineSplitter {
* @param retainSpacing true signals to keep whitespace on line breaks; false discards
* leading whitespace
* @return the new lines
* @see #wrap(String, int)
* @see #wrap(String, int, WhitespaceHandler)
*/
public static List<String> split(String text, int maxLineLength, boolean retainSpacing) {

View file

@ -22,8 +22,8 @@ package ghidra.util.task;
* Pass a SwingRunnable to the RunManager if follow on work needs to be done
* after the <code>run()</code> method completes.
*
* @see RunManager#run(MonitoredRunnable, String)
* @see ghidra.util.task.RunManager#run(MonitoredRunnable, String, int)
* @see RunManager#runNext(MonitoredRunnable, String)
* @see RunManager#runNext(MonitoredRunnable, String, int)
*
*/

View file

@ -42,9 +42,9 @@ import utilities.util.reflection.ReflectionUtilities;
* <li>Non-blocking update now - this is a conceptual use-case, where the client wishes to perform an
* immediate update, but not during the current Swing event. To achieve
* this, you could call something like:
* <pre>
* <pre>{@literal
* SwingUtilities.invokeLater(() -> updateManager.updateNow());
* </pre>
* }</pre>
* </li>
* </ul>
*

View file

@ -215,8 +215,8 @@ public abstract class AbstractWorker<T extends Job> {
* <b>Warning: Calling this method may leave the program in a bad
* state. Thus, it is recommended that you only do so when you known that any job that
* could possibly be scheduled does not manipulate sensitive parts of the program; for
* example, opening file handles that should be closed before finishing.
* <p>
* example, opening file handles that should be closed before finishing.</b>
* <p><b>
* If you are unsure
* about whether your jobs handle interrupt correctly, then don't use this method.
* </b>

View file

@ -29,7 +29,7 @@ import java.math.BigInteger;
* attrs.add("BAR", "foo");
* attrs.add("PI", 3.14159);
* </pre><br>
* The output would be: <code>FIVE="0x20" BAR="foo" PI="3.14159".
* The output would be: <code>FIVE="0x20" BAR="foo" PI="3.14159".</code>
*
*/
public class XmlAttributes {

View file

@ -652,7 +652,7 @@ public class XmlUtilities {
*
* @param ele the parent element
* @param childName the name of the children elements to return
* @return List<Element> of elements
* @return {@literal List<Element>} of elements
*/
public static List<Element> getChildren(Element ele, String childName) {
return CollectionUtils.asList(ele.getChildren(childName), Element.class);

View file

@ -34,7 +34,7 @@ public class XmlPullParserFactory {
*
* @param input
* the input XML stream
* @param name
* @param inputName
* the name of the stream
* @param errHandler
* the XML error handler
@ -100,8 +100,6 @@ public class XmlPullParserFactory {
* true if the parse should validate against the DTD
* @throws SAXException
* if an XML parse error occurs
* @throws IOException
* if an i/o error occurs
*/
public static XmlPullParser create(String input, String inputName, ErrorHandler errHandler,
boolean validate) throws SAXException {

View file

@ -31,7 +31,7 @@ import utilities.util.reflection.ReflectionUtilities;
* of the current log message. This is to be used in log4j configurations as part
* of a pattern layout. eg:
*
* <PatternLayout pattern="%-5p %m %hl %n"/>
* {@literal <PatternLayout pattern="%-5p %m %hl %n"/>}
*
* See generic.log4jdev.xml for a working example.
*/