Package org.apache.bcel.classfile
Class ConstantUtf8
- java.lang.Object
-
- org.apache.bcel.classfile.Constant
-
- org.apache.bcel.classfile.ConstantUtf8
-
- All Implemented Interfaces:
java.lang.Cloneable
,Node
public final class ConstantUtf8 extends Constant
Extends the abstractConstant
to represent a reference to a UTF-8 encoded string.The following system properties govern caching this class performs.
- "bcel.maxcached" (since 6.4): The size of the cache, by default 0, meaning caching is disabled.
- "bcel.maxcached.size" (since 6.0): The maximum size of the values to cache, by default 200, 0 disables caching. Values larger than this are not cached.
- "bcel.statistics" (since 6.0): Prints statistics on the console when the JVM exits.
Here is a sample Maven invocation with caching disabled:
mvn test -Dbcel.statistics=true -Dbcel.maxcached.size=0 -Dbcel.maxcached=0
Here is a sample Maven invocation with caching enabled:
mvn test -Dbcel.statistics=true -Dbcel.maxcached.size=100000 -Dbcel.maxcached=5000000
- See Also:
Constant
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
ConstantUtf8.Cache
-
Field Summary
Fields Modifier and Type Field Description private static int
considered
private static int
created
private static int
hits
private static int
skipped
private static java.lang.String
SYS_PROP_CACHE_MAX_ENTRIES
private static java.lang.String
SYS_PROP_CACHE_MAX_ENTRY_SIZE
private static java.lang.String
SYS_PROP_STATISTICS
private java.lang.String
value
-
Constructor Summary
Constructors Constructor Description ConstantUtf8(java.io.DataInput dataInput)
Initializes instance from file data.ConstantUtf8(java.lang.String value)
ConstantUtf8(ConstantUtf8 constantUtf8)
Initializes from another object.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
accept(Visitor v)
Called by objects that are traversing the nodes of the tree implicitely defined by the contents of a Java class.static void
clearCache()
Clears the cache.(package private) static void
clearStats()
void
dump(java.io.DataOutputStream file)
Dumps String in Utf8 format to file stream.java.lang.String
getBytes()
static ConstantUtf8
getCachedInstance(java.lang.String value)
Gets a new or cached instance of the given value.static ConstantUtf8
getInstance(java.io.DataInput dataInput)
Gets a new or cached instance of the given value.static ConstantUtf8
getInstance(java.lang.String value)
Gets a new or cached instance of the given value.(package private) static void
printStats()
void
setBytes(java.lang.String bytes)
Deprecated.(since 6.0)java.lang.String
toString()
-
Methods inherited from class org.apache.bcel.classfile.Constant
clone, copy, equals, getComparator, getTag, hashCode, readConstant, setComparator
-
-
-
-
Field Detail
-
considered
private static volatile int considered
-
created
private static volatile int created
-
hits
private static volatile int hits
-
skipped
private static volatile int skipped
-
SYS_PROP_CACHE_MAX_ENTRIES
private static final java.lang.String SYS_PROP_CACHE_MAX_ENTRIES
- See Also:
- Constant Field Values
-
SYS_PROP_CACHE_MAX_ENTRY_SIZE
private static final java.lang.String SYS_PROP_CACHE_MAX_ENTRY_SIZE
- See Also:
- Constant Field Values
-
SYS_PROP_STATISTICS
private static final java.lang.String SYS_PROP_STATISTICS
- See Also:
- Constant Field Values
-
value
private final java.lang.String value
-
-
Constructor Detail
-
ConstantUtf8
public ConstantUtf8(ConstantUtf8 constantUtf8)
Initializes from another object.- Parameters:
constantUtf8
- the value.
-
ConstantUtf8
ConstantUtf8(java.io.DataInput dataInput) throws java.io.IOException
Initializes instance from file data.- Parameters:
dataInput
- Input stream- Throws:
java.io.IOException
-
ConstantUtf8
public ConstantUtf8(java.lang.String value)
- Parameters:
value
- Data
-
-
Method Detail
-
clearCache
public static void clearCache()
Clears the cache.- Since:
- 6.4.0
-
clearStats
static void clearStats()
-
getCachedInstance
public static ConstantUtf8 getCachedInstance(java.lang.String value)
Gets a new or cached instance of the given value.See
ConstantUtf8
class Javadoc for details.- Parameters:
value
- the value.- Returns:
- a new or cached instance of the given value.
- Since:
- 6.0
-
getInstance
public static ConstantUtf8 getInstance(java.io.DataInput dataInput) throws java.io.IOException
Gets a new or cached instance of the given value.See
ConstantUtf8
class Javadoc for details.- Parameters:
dataInput
- the value.- Returns:
- a new or cached instance of the given value.
- Throws:
java.io.IOException
- if an I/O error occurs.- Since:
- 6.0
-
getInstance
public static ConstantUtf8 getInstance(java.lang.String value)
Gets a new or cached instance of the given value.See
ConstantUtf8
class Javadoc for details.- Parameters:
value
- the value.- Returns:
- a new or cached instance of the given value.
- Since:
- 6.0
-
printStats
static void printStats()
-
accept
public void accept(Visitor v)
Called by objects that are traversing the nodes of the tree implicitely defined by the contents of a Java class. I.e., the hierarchy of methods, fields, attributes, etc. spawns a tree of objects.
-
dump
public void dump(java.io.DataOutputStream file) throws java.io.IOException
Dumps String in Utf8 format to file stream.
-
getBytes
public java.lang.String getBytes()
- Returns:
- Data converted to string.
-
setBytes
@Deprecated public void setBytes(java.lang.String bytes)
Deprecated.(since 6.0)- Parameters:
bytes
- the raw bytes of this UTF-8
-
-