/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
class UnsafeFieldAccessorFactory {
if (isStatic) {
// This code path does not guarantee that the field's
// declaring class has been initialized, but it must be
// before performing reflective operations.
if (!isQualified) {
return new UnsafeStaticBooleanFieldAccessorImpl(field);
return new UnsafeStaticByteFieldAccessorImpl(field);
return new UnsafeStaticShortFieldAccessorImpl(field);
return new UnsafeStaticCharacterFieldAccessorImpl(field);
return new UnsafeStaticIntegerFieldAccessorImpl(field);
return new UnsafeStaticLongFieldAccessorImpl(field);
return new UnsafeStaticFloatFieldAccessorImpl(field);
return new UnsafeStaticDoubleFieldAccessorImpl(field);
} else {
return new UnsafeStaticObjectFieldAccessorImpl(field);
}
} else {
} else {
}
}
} else {
if (!isQualified) {
return new UnsafeBooleanFieldAccessorImpl(field);
return new UnsafeByteFieldAccessorImpl(field);
return new UnsafeShortFieldAccessorImpl(field);
return new UnsafeCharacterFieldAccessorImpl(field);
return new UnsafeIntegerFieldAccessorImpl(field);
return new UnsafeLongFieldAccessorImpl(field);
return new UnsafeFloatFieldAccessorImpl(field);
return new UnsafeDoubleFieldAccessorImpl(field);
} else {
return new UnsafeObjectFieldAccessorImpl(field);
}
} else {
} else {
}
}
}
}
}