package de.learnlib.algorithms.features.observationtable.reader;

import com.sun.istack.internal.NotNull;
import de.learnlib.algorithms.features.observationtable.ObservationTable;
import net.automatalib.words.Alphabet;

/**
 * Reads an {@link ObservationTable} from a string source.
 *
 * @param <I>
 * @param <O>
 */
public interface ObservationTableReader<I,O> {

	/**
	 * Reads the string representation of an observation table and returns an implementation
	 * of {@link ObservationTable} which allows access to short and long prefixes as well as
	 * suffixes.
	 *
	 * @param source
	 *      The string representation to read, must not be {@code null}.
	 * @param alphabet
	 *      The learning alphabet containing the symbols used.
	 *
	 * @return
	 *      an implementation of {@link ObservationTable} which allows at lease access to
	 *      {@link ObservationTable#getSuffixes()}, {@link ObservationTable#getShortPrefixes()},
	 *      and {@link ObservationTable#getLongPrefixes()}. Will never be {@code null}.
	 */
	@NotNull
	public ObservationTable<I,O> read(@NotNull String source, Alphabet<I> alphabet);

}

@@ -63,48 +63,8 @@
 r;%0A%0A
-import com.sun.istack.internal.NotNull;%0A
 impo
@@ -133,16 +133,16 @@
 nTable;%0A
+
 import n
@@ -173,16 +173,50 @@
 habet;%0A%0A
+import javax.annotation.Nonnull;%0A%0A
 /**%0A * R
@@ -722,16 +722,42 @@
 ols used
+, must not be %7B@code null%7D
 .%0A%09 *%0A%09 
@@ -1041,18 +1041,18 @@
  */%0A%09@No
-tN
+nn
 ull%0A%09pub
@@ -1089,10 +1089,10 @@
 (@No
-tN
+nn
 ull 
@@ -1105,16 +1105,25 @@
  source,
+ @Nonnull
  Alphabe

Use correct Nonnull annotation