/* * Copyright (c) 2012 Diamond Light Source Ltd. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package uk.ac.diamond.scisoft.analysis.io; import java.io.File; import java.io.Serializable; import java.util.Date; import org.eclipse.january.metadata.IExtendedMetadata; import org.eclipse.january.metadata.IMetadata; import org.eclipse.january.metadata.Metadata; public class ExtendedMetadata extends Metadata implements IExtendedMetadata { private static final long serialVersionUID = IMetadata.serialVersionUID; private String creator = null; private String filename = null; private String owner = null; private long filesize = -1; private String path; private Date lastModified = null; private Date date; public ExtendedMetadata() { } /** * This constructor will take a reference to a file and populate some of the metadata. This * should be used in conjunction with populating the rest of the metadata */ public ExtendedMetadata(File f) { super(); initialize(f); } @Override public void initialize(File f) { setFile(f); } void setFile(File f) { if (f != null) { filesize = f.length(); filename = f.getName(); lastModified = new Date(f.lastModified()); path = f.getAbsolutePath(); setFilePath(path); } } void setCreationDate(Date date) { this.date = date; } @Override public Date getCreation() { return date; } @Override public Date getLastModified() { return lastModified; } @Override public String getCreator() { return creator; } @Override public String getFileName() { return filename; } @Override public String getFileOwner() { return owner; } @Override public long getFileSize() { return filesize; } @Override public String getFullPath() { return path; } @Override public String getScanCommand() { Serializable scanCmd = null; try { scanCmd = getMetaValue("cmd"); if (scanCmd == null) scanCmd = getMetaValue("command"); if (scanCmd == null) scanCmd = getMetaValue("scancommand"); } catch (Exception e) { } return scanCmd == null ? null : scanCmd.toString(); } @Override public IMetadata clone() { ExtendedMetadata c = (ExtendedMetadata) super.clone(); if (filesize < 0 && path != null) { c.setFile(new File(path)); } c.date = date; return c; } }