package com.igormaznitsa.jjjvm.impl; import java.io.DataInputStream; import java.io.IOException; import java.lang.reflect.AccessibleObject; import java.security.AccessController; import java.security.PrivilegedAction; public abstract class JJJVMImplUtils { private JJJVMImplUtils() { } public static void makeAccessible(final AccessibleObject obj) { if (obj != null && !obj.isAccessible()) { AccessController.doPrivileged(new PrivilegedAction() { public Object run() { obj.setAccessible(true); return null; } }); } } public static void assertNotNull(final String text, final Object value) { if (value == null) { throw new NullPointerException(text); } } public static void skip(final DataInputStream stream, final int bytesToSkip) throws IOException { if (stream.skipBytes(bytesToSkip) != bytesToSkip) { throw new IOException("Can't skip " + bytesToSkip + " byte(s)"); } } }