Skip to content
This repository was archived by the owner on Sep 27, 2022. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import java.io.File;
import java.io.PrintStream;
import java.nio.file.Files;
import java.util.concurrent.locks.ReentrantReadWriteLock;

/**
* Created by Дмитрий on 07.10.14.
Expand All @@ -24,54 +23,48 @@ public boolean exec(Welcome dbConnector, String[] args, PrintStream out, PrintS
}

boolean inProvider = true;
ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
lock.readLock().lock();
try {
StoreableTable map = dbConnector.getActiveTableProvider().getTables().get(args[0]);
if (map == null) {
map = dbConnector.getTables().get(args[0]);
inProvider = false;
StoreableTable map = dbConnector.getActiveTableProvider().getTables().get(args[0]);
if (map == null) {
map = dbConnector.getTables().get(args[0]);
inProvider = false;
}
if (map == null) {
err.println(args[0] + " not exists");
if (batchModeInInteractive) {
return false;
}
if (map == null) {
err.println(args[0] + " not exists");
if (batchModeInInteractive) {
return false;
}
if (batchMode) {
System.exit(-1);
}
return true;
if (batchMode) {
System.exit(-1);
}
return true;
}
if (dbConnector.getActiveTable() == map) {
if (inProvider) {
dbConnector.getActiveTableProvider().getTables().remove(args[0]);
} else {
dbConnector.getTables().remove(args[0]);
}
if (dbConnector.getActiveTable() == map) {
dbConnector.setActiveTable(null);
}
try {
if (dbConnector != null) {
if (inProvider) {
dbConnector.getActiveTableProvider().getTables().remove(args[0]);
} else {
dbConnector.getTables().remove(args[0]);
}
dbConnector.setActiveTable(null);
}
try {
if (dbConnector != null) {
if (inProvider) {
dbConnector.getActiveTableProvider().getTables().remove(args[0]);
} else {
dbConnector.getTables().remove(args[0]);
}
}
if (dbConnector.getActiveTable() == null) {
map.deleteFiles("", true);
Files.delete(new File(map.dbPath + File.separator + "signature.tsv").toPath());
} else {
map.deleteFiles(dbConnector.getActiveTable().getName(), true);
}
Files.delete(map.dbPath);
} catch (Exception e) {
err.println("Exception in drop: can't delete " + map.dbPath.toString()
+ " because " + e.getLocalizedMessage());
System.exit(-1);
if (dbConnector.getActiveTable() == null) {
map.deleteFiles("", true);
Files.delete(new File(map.dbPath + File.separator + "signature.tsv").toPath());
} else {
map.deleteFiles(dbConnector.getActiveTable().getName(), true);
}
} finally {
lock.readLock().unlock();
Files.delete(map.dbPath);
} catch (Exception e) {
err.println("Exception in drop: can't delete " + map.dbPath.toString()
+ " because " + e.getLocalizedMessage());
System.exit(-1);
}
out.println("dropped");
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import ru.fizteh.fivt.students.Kudriavtsev_Dmitry.Proxy.Welcome;

import java.io.PrintStream;
import java.util.StringJoiner;

/**
* Created by Дмитрий on 04.10.14.
Expand All @@ -26,15 +27,11 @@ public boolean exec(Welcome dbConnector, String[] args, PrintStream out, PrintSt
return true;
}
java.util.List<String> keySet = dbConnector.getActiveTable().list();
int count = 0;
StringJoiner strJoin = new StringJoiner(" ,");
for (String key : keySet) {
out.print(key);
if (count != keySet.size() - 1) {
out.print(", ");
++count;
}
strJoin.add(key);
}
out.println();
out.println(strJoin.toString());
return true;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import java.io.File;
import java.io.PrintStream;
import java.text.ParseException;
import java.util.concurrent.locks.ReentrantReadWriteLock;

/**
* Created by Дмитрий on 04.10.14.
Expand Down Expand Up @@ -41,37 +40,31 @@ public boolean exec(Welcome dbConnector, String[] args, PrintStream out, PrintSt
return true;
}
Storeable value;
ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
lock.readLock().lock();
try {
try {
value = dbConnector.getActiveTable().put(args[0],
dbConnector.getActiveTableProvider().deserialize(dbConnector.getActiveTable(), args[1]));
} catch (ParseException e) {
err.println("Parse Exception in deserialize");
return !batchModeInInteractive;
}
if (value != null) {
out.println("overwrite");
for (Object val : ((CurrentStoreable) value).getValues()) {
out.println(val.toString());
}
} else {
out.println("new");
value = dbConnector.getActiveTable().put(args[0],
dbConnector.getActiveTableProvider().deserialize(dbConnector.getActiveTable(), args[1]));
} catch (ParseException e) {
err.println("Parse Exception in deserialize");
return !batchModeInInteractive;
}
if (value != null) {
out.println("overwrite");
for (Object val : ((CurrentStoreable) value).getValues()) {
out.println(val.toString());
}
String newPath = dbConnector.getActiveTable().whereToSave("", args[0]).getKey();
if (new File(newPath).exists() || dbConnector.getActiveTable().getChangedFiles().containsKey(newPath)) {
Integer collisionCount = dbConnector.getActiveTable().getChangedFiles().get(newPath);
if (collisionCount == null) {
collisionCount = dbConnector.getActiveTable().countOfCollisionsInFile(new File(newPath).toPath());
}
++collisionCount;
dbConnector.getActiveTable().getChangedFiles().put(newPath, collisionCount);
} else {
dbConnector.getActiveTable().getChangedFiles().put(newPath, 0);
} else {
out.println("new");
}
String newPath = dbConnector.getActiveTable().whereToSave("", args[0]).path;
if (new File(newPath).exists() || dbConnector.getActiveTable().getChangedFiles().containsKey(newPath)) {
Integer collisionCount = dbConnector.getActiveTable().getChangedFiles().get(newPath);
if (collisionCount == null) {
collisionCount = dbConnector.getActiveTable().countOfCollisionsInFile(new File(newPath).toPath());
}
} finally {
lock.readLock().unlock();
++collisionCount;
dbConnector.getActiveTable().getChangedFiles().put(newPath, collisionCount);
} else {
dbConnector.getActiveTable().getChangedFiles().put(newPath, 0);
}
return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import ru.fizteh.fivt.students.Kudriavtsev_Dmitry.Proxy.Welcome;

import java.io.PrintStream;
import java.util.concurrent.locks.ReentrantReadWriteLock;

/**
* Created by Дмитрий on 04.10.14.
Expand All @@ -26,21 +25,15 @@ public boolean exec(Welcome dbConnector, String[] args, PrintStream out, PrintSt
noTable(err);
return true;
}
ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
lock.readLock().lock();
try {
if (dbConnector.getActiveTable().remove(args[0]) != null) {
out.println("removed");
dbConnector.getActiveTable().getChangedFiles().put(
dbConnector.getActiveTable().whereToSave("", args[0]).getKey(), 0);
} else {
err.println("not found");
if (batchModeInInteractive) {
return false;
}
if (dbConnector.getActiveTable().remove(args[0]) != null) {
out.println("removed");
dbConnector.getActiveTable().getChangedFiles().put(
dbConnector.getActiveTable().whereToSave("", args[0]).path, 0);
} else {
err.println("not found");
if (batchModeInInteractive) {
return false;
}
} finally {
lock.readLock().unlock();
}
return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import java.io.PrintStream;
import java.util.Map;
import java.util.concurrent.locks.ReentrantReadWriteLock;

/**
* Created by Дмитрий on 07.10.14.
Expand Down Expand Up @@ -38,18 +37,12 @@ public boolean exec(Welcome dbConnector, String[] args, PrintStream out, PrintSt
return checkForArgs(err);
}

ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
lock.readLock().lock();
try {
if (dbConnector.getTables().isEmpty() && dbConnector.getActiveTableProvider().getTables().isEmpty()) {
return true;
}

for (Map.Entry<String, StoreableTable> a : dbConnector.getActiveTableProvider().getTables().entrySet()) {
out.println(a.getKey() + " " + a.getValue().size());
}
} finally {
lock.readLock().unlock();
if (dbConnector.getTables().isEmpty() && dbConnector.getActiveTableProvider().getTables().isEmpty()) {
return true;
}

for (Map.Entry<String, StoreableTable> a : dbConnector.getActiveTableProvider().getTables().entrySet()) {
out.println(a.getKey() + " " + a.getValue().size());
}
return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import ru.fizteh.fivt.students.Kudriavtsev_Dmitry.Proxy.Welcome;

import java.io.PrintStream;
import java.util.concurrent.locks.ReentrantReadWriteLock;

/**
* Created by Дмитрий on 31.10.2014.
Expand All @@ -19,17 +18,11 @@ public boolean exec(Welcome dbConnector, String[] args, PrintStream out, PrintSt
return !batchModeInInteractive;
}
int size = 0;
ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
lock.readLock().lock();
try {
for (String s : dbConnector.getTables().keySet()) {
size += dbConnector.getTables().get(s).size();
}
for (String s : dbConnector.getActiveTableProvider().getTables().keySet()) {
size += dbConnector.getActiveTableProvider().getTables().get(s).size();
}
} finally {
lock.readLock().unlock();
for (String s : dbConnector.getTables().keySet()) {
size += dbConnector.getTables().get(s).size();
}
for (String s : dbConnector.getActiveTableProvider().getTables().keySet()) {
size += dbConnector.getActiveTableProvider().getTables().get(s).size();
}
out.println(size);
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import ru.fizteh.fivt.students.Kudriavtsev_Dmitry.Proxy.Welcome;

import java.io.PrintStream;
import java.util.concurrent.locks.ReentrantReadWriteLock;

/**
* Created by Дмитрий on 07.10.14.
Expand All @@ -20,49 +19,43 @@ public boolean exec(Welcome dbConnector, String[] args, PrintStream out, PrintSt
if (!checkArguments(args.length, err)) {
return !batchModeInInteractive;
}
ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
lock.readLock().lock();
try {
if (dbConnector.getActiveTable() != null) {
if (!dbConnector.getActiveTable().getRemoved().isEmpty()
|| !dbConnector.getActiveTable().getNewKey().isEmpty()) {
int count = 0;
for (String s : dbConnector.getActiveTable().getRemoved().keySet()) {
if (dbConnector.getActiveTable().getActiveTable().containsKey(s)) {
++count;
}
if (dbConnector.getActiveTable() != null) {
if (!dbConnector.getActiveTable().getRemoved().isEmpty()
|| !dbConnector.getActiveTable().getNewKey().isEmpty()) {
int count = 0;
for (String s : dbConnector.getActiveTable().getRemoved().keySet()) {
if (dbConnector.getActiveTable().getActiveTable().containsKey(s)) {
++count;
}
count += dbConnector.getActiveTable().getNewKey().size();
out.println(count + " unsaved changes");
return true;
}
count += dbConnector.getActiveTable().getNewKey().size();
out.println(count + " unsaved changes");
return true;
}
StoreableTable map = dbConnector.getActiveTableProvider().getTables().get(args[0]);
if (map == null) {
map = dbConnector.getTables().get(args[0]);
}
StoreableTable map = dbConnector.getActiveTableProvider().getTables().get(args[0]);
if (map == null) {
map = dbConnector.getTables().get(args[0]);
}
if (map == null) {
err.println(args[0] + " not exists");
if (batchModeInInteractive) {
return false;
}
if (map == null) {
err.println(args[0] + " not exists");
if (batchModeInInteractive) {
return false;
}
if (batchMode) {
System.exit(-1);
}
return true;
if (batchMode) {
System.exit(-1);
}
if (dbConnector.getActiveTable() != null) {
dbConnector.getActiveTable().unload(
dbConnector.getActiveTable(), dbConnector.getActiveTable().getName());
if (dbConnector.getActiveTable().dbPath.getFileName().toString().equals(args[0])) {
out.println("using " + args[0]);
return true;
}
return true;
}
if (dbConnector.getActiveTable() != null) {
dbConnector.getActiveTable().unload(
dbConnector.getActiveTable(), dbConnector.getActiveTable().getName());
if (dbConnector.getActiveTable().dbPath.getFileName().toString().equals(args[0])) {
out.println("using " + args[0]);
return true;
}
dbConnector.setActiveTable(map);
} finally {
lock.readLock().unlock();
}
dbConnector.setActiveTable(map);
out.println("using " + args[0]);
return true;
}
Expand Down
Loading