@Override public void getRevisionFile(File originalFile, File revisionFile) { assert originalFile != null; if (originalFile == null) { LocalHistory.LOG.log( Level.FINE, "revision {0} requested for null file", se.getDate().getTime()); // NOI18N return; } LocalHistory.LOG.log( Level.FINE, "revision {0} requested for file {1}", new Object[] {se.getDate().getTime(), originalFile.getAbsolutePath()}); // NOI18N try { // we won't use the member store entry as that might have been // set for e.g. a stored .form while this is the according .java // file beeing requested. In case the storage can't find a revision it // returns the next nearest in time long ts = se.getTimestamp(); StoreEntry storeEntry = LocalHistory.getInstance().getLocalHistoryStore().getStoreEntry(originalFile, ts); if (storeEntry != null) { FileUtils.copy(storeEntry.getStoreFileInputStream(), revisionFile); } else { LocalHistory.LOG.log( Level.WARNING, "No entry in Local History for file {0} {1} {2}", new Object[] {originalFile, new Date(ts), ts}); // NOI18N } } catch (IOException e) { LocalHistory.LOG.log( Level.WARNING, "Error while retrieving history for file {0} stored as {1}", new Object[] {se.getFile(), se.getStoreFile()}); // NOI18N } }
@Override protected void perform(final HistoryEntry entry, final Set<File> files) { LocalHistory.getInstance() .getParallelRequestProcessor() .post( new Runnable() { @Override public void run() { for (File file : files) { StoreEntry se = LocalHistory.getInstance() .getLocalHistoryStore() .getStoreEntry(file, entry.getDateTime().getTime()); if (se != null) { perform(se); } } } }); }
@Override public HistoryEntry[] getHistory(File[] files, Date fromDate) { if (files == null || files.length == 0) { LocalHistory.LOG.log( Level.FINE, "LocalHistory requested for no files {0}", files != null ? files.length : null); return new HistoryEntry[0]; } logFiles(files); Map<Long, HistoryEntry> storeEntries = new HashMap<Long, HistoryEntry>(); for (File f : files) { StoreEntry[] ses = LocalHistory.getInstance().getLocalHistoryStore().getStoreEntries(f); for (StoreEntry se : ses) { if (!storeEntries.keySet().contains(se.getTimestamp())) { HistoryEntry e = new HistoryEntry( files, se.getDate(), se.getLabel(), "", // username NOI18N "", // username short NOI18N NbBundle.getMessage( LocalHistoryProvider.class, "LBL_Local"), // revision NOI18N NbBundle.getMessage( LocalHistoryProvider.class, "LBL_Local"), // revision short NOI18N getActions(), new RevisionProviderImpl(se), new MessageEditImpl(se)); storeEntries.put(se.getTimestamp(), e); } } } logEntries(storeEntries.values()); return storeEntries.values().toArray(new HistoryEntry[storeEntries.size()]); }
public LocalHistoryProvider() { LocalHistory.getInstance().getLocalHistoryStore().addVersioningListener(this); }
@Override void perform(StoreEntry se) { LocalHistory.getInstance() .getLocalHistoryStore() .deleteEntry(se.getFile(), se.getTimestamp()); }
@Override public void setMessage(String message) throws IOException { LocalHistory.getInstance() .getLocalHistoryStore() .setLabel(se.getFile(), se.getTimestamp(), message); }