Project

General

Profile

« Previous | Next » 

Revision 10123

Added by Jing Tao about 8 years ago

Add methods to determine if the object does exist with the given local id.

View differences:

src/edu/ucsb/nceas/metacat/IdentifierManager.java
24 24

  
25 25
package edu.ucsb.nceas.metacat;
26 26

  
27
import java.io.File;
27 28
import java.math.BigInteger;
28 29
import java.sql.PreparedStatement;
29 30
import java.sql.ResultSet;
......
66 67
import edu.ucsb.nceas.metacat.shared.AccessException;
67 68
import edu.ucsb.nceas.metacat.shared.ServiceException;
68 69
import edu.ucsb.nceas.metacat.util.DocumentUtil;
70
import edu.ucsb.nceas.utilities.FileUtil;
69 71
import edu.ucsb.nceas.utilities.PropertyNotFoundException;
70 72
import edu.ucsb.nceas.utilities.access.AccessControlInterface;
71 73
import edu.ucsb.nceas.utilities.access.XMLAccessDAO;
......
2394 2396
            DBConnectionPool.returnDBConnection(dbConn, serialNumber);
2395 2397
        }
2396 2398
    }
2399
    
2400
    /**
2401
     * Determine if the object file exist for the given localId.
2402
     * @param localId
2403
     * @param isScienceMetadata
2404
     * @return
2405
     * @throws PropertyNotFoundException
2406
     */
2407
    public boolean objectFileExists(String localId, boolean isScienceMetadata) throws PropertyNotFoundException {
2408
        boolean exist =false;
2409
        if (localId != null) {
2410
            String documentPath = getObjectFilePath(localId, isScienceMetadata);
2411
            if(documentPath != null) {
2412
                File file = new File(documentPath);
2413
                exist = file.exists();
2414
            }
2415
        } 
2416
        logMetacat.debug("IdentifierManager.ObjectFileExist - Does the object file for the local id "+localId+" which is science metadata "+isScienceMetadata+" exist in the Metacast file system? The answer is "+exist);
2417
        return exist;   
2418
    }
2419
    
2420
    /**
2421
     *Get the the file path for the given object local id
2422
     * @param localId
2423
     * @param isScienceMetadata
2424
     * @return
2425
     * @throws PropertyNotFoundException
2426
     */
2427
    public String getObjectFilePath(String localId, boolean isScienceMetadata) throws PropertyNotFoundException {
2428
        String documentPath = null;
2429
        if (localId != null) {      
2430
            String documentDir = null;
2431
            // get the correct location on disk
2432
            if (isScienceMetadata) {
2433
                documentDir = PropertyService.getProperty("application.documentfilepath");
2434
            } else {
2435
                documentDir = PropertyService.getProperty("application.datafilepath");
2436
            }
2437
            documentPath = documentDir + FileUtil.getFS() + localId;
2438
        } 
2439
        logMetacat.debug("IdentifierManager.getObjectFilePath - the file path for the object with localId "+localId+" which is scienceMetacat "+isScienceMetadata+", is "+documentPath+". If the value is null, this means we can't find it.");
2440
        return documentPath;   
2441
    }
2397 2442
}
2398 2443

  

Also available in: Unified diff