/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2002, 2015 Oracle and/or its affiliates. All rights reserved. * */ package com.sleepycat.persist.impl; import java.lang.reflect.Array; import java.util.Map; import com.sleepycat.compat.DbCompat; import com.sleepycat.persist.model.EntityModel; /** * Format for a non-persistent class that is only used for declared field * types and arrays. Currently used only for Object and interface types. * * @author Mark Hayes */ class NonPersistentFormat extends Format { private static final long serialVersionUID = -7488355830875148784L; NonPersistentFormat(Catalog catalog, Class type) { super(catalog, type); } @Override void initialize(Catalog catalog, EntityModel model, int initVersion) { } @Override void collectRelatedFormats(Catalog catalog, Map<String, Format> newFormats) { } @Override Object newArray(int len) { return Array.newInstance(getType(), len); } @Override public Object newInstance(EntityInput input, boolean rawAccess) { throw DbCompat.unexpectedState ("Cannot instantiate non-persistent class: " + getClassName()); } @Override public Object readObject(Object o, EntityInput input, boolean rawAccess) { throw DbCompat.unexpectedState(); } @Override void writeObject(Object o, EntityOutput output, boolean rawAccess) { throw DbCompat.unexpectedState(); } @Override void skipContents(RecordInput input) { throw DbCompat.unexpectedState(); } @Override boolean evolve(Format newFormat, Evolver evolver) { evolver.useOldFormat(this, newFormat); return true; } }