⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbmodtimes.java

📁 Java的面向对象数据库系统的源代码
💻 JAVA
字号:
// You can redistribute this software and/or modify it under the terms of
// the Ozone Core License version 1 published by ozone-db.org.
//
// The original code and portions created by SMB are
// Copyright (C) 1997-@year@ by SMB GmbH. All rights reserved.
//
// $Id: DbModTimes.java,v 1.6 2002/12/29 11:15:56 per_nyfelt Exp $

package org.ozoneDB.core.DbRemote;

import org.ozoneDB.DxLib.*;
import org.ozoneDB.ObjectNotFoundException;
import org.ozoneDB.core.*;
import org.ozoneDB.util.LogWriter;

import java.io.*;


/**
 * Determine the modification times of the specified database objects.
 *
 *
 * @author <a href="http://www.softwarebuero.de/">SMB</a>
 * @version $Revision: 1.6 $Date: 2002/12/29 11:15:56 $
 */
public final class DbModTimes extends DbCommand implements Externalizable {

    private DxArrayBag objectIDs;


    public DbModTimes() {
        objectIDs = new DxArrayBag();
    }


    public void addObjectID( ObjectID id ) {
        objectIDs.add( id );
    }


    public void perform( Transaction ta ) throws Exception {
        env.logWriter.newEntry( this, "DbModTimes.perform()", LogWriter.DEBUG );

        // check (and wait) if a thread runs exclusively; because no
        // transaction is involved we have to do this here
        env.transactionManager.checkExclusion();

        DxMap map = new DxHashMap( objectIDs.count() );
        for (int i = 0; i < objectIDs.count(); i++) {
            ObjectID id = (ObjectID)objectIDs.elementAtIndex( i );

            env.logWriter.newEntry( this, "    id:" + id, LogWriter.DEBUG );

            ObjectContainer container = env.storeManager.containerForID( ta, id );
            if (container == null) {
                throw new ObjectNotFoundException( "No such object." );
            }

            try {
            Long modTime = new Long( container.modTime() );

            map.addForKey( modTime, id );
            } finally {
            	container.unpin();
            }
        }

        result = map;
    }


    public void writeExternal( ObjectOutput out ) throws IOException {
        out.writeObject( objectIDs );
    }


    public synchronized void readExternal( ObjectInput in ) throws IOException, ClassNotFoundException {
        objectIDs = (DxArrayBag)in.readObject();
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -