src/share/classes/java/nio/charset/Charset-X-Coder.java.template
Print this page
*** 32,41 ****
--- 32,42 ----
import java.nio.CharBuffer;
import java.nio.BufferOverflowException;
import java.nio.BufferUnderflowException;
import java.lang.ref.WeakReference;
import java.nio.charset.CoderMalfunctionError; // javadoc
+ import java.util.Arrays;
/**
* An engine that can transform a sequence of $itypesPhrase$ into a sequence of
* $otypesPhrase$.
*** 242,252 ****
--- 243,258 ----
*
* @return This $coder$'s current replacement,
* which is never <tt>null</tt> and is never empty
*/
public final $replType$ replacement() {
+ #if[decoder]
return replacement;
+ #end[decoder]
+ #if[encoder]
+ return Arrays.copyOf(replacement, replacement.$replLength$);
+ #end[encoder]
}
/**
* Changes this $coder$'s replacement value.
*
*** 278,293 ****
int len = newReplacement.$replLength$;
if (len == 0)
throw new IllegalArgumentException("Empty replacement");
if (len > max$ItypesPerOtype$)
throw new IllegalArgumentException("Replacement too long");
#if[encoder]
if (!isLegalReplacement(newReplacement))
throw new IllegalArgumentException("Illegal replacement");
#end[encoder]
! this.replacement = newReplacement;
! implReplaceWith(newReplacement);
return this;
}
/**
* Reports a change to this $coder$'s replacement value.
--- 284,302 ----
int len = newReplacement.$replLength$;
if (len == 0)
throw new IllegalArgumentException("Empty replacement");
if (len > max$ItypesPerOtype$)
throw new IllegalArgumentException("Replacement too long");
+ #if[decoder]
+ this.replacement = newReplacement;
+ #end[decoder]
#if[encoder]
if (!isLegalReplacement(newReplacement))
throw new IllegalArgumentException("Illegal replacement");
+ this.replacement = Arrays.copyOf(newReplacement, newReplacement.$replLength$);
#end[encoder]
! implReplaceWith(this.replacement);
return this;
}
/**
* Reports a change to this $coder$'s replacement value.