-
Notifications
You must be signed in to change notification settings - Fork 5
Пользователи, проекты и файлы
###Иллюстрации работы с проектами
###Хранение информации
изменения, связанные с появлением разделения на проекты, не отражены
Для реализации хранения пользовательских файлов в памяти приложения на данный момент используются два класса, представленные на диаграмме ниже.
FileRepository - класс, реализующий интерфейс IFileRepository. Сторонний пользователь может использовать функцию addNewFile для загрузки файлов на сервер и функции GetFileByID, GetFiles для получения файлов из репозитория для работы с ними. Ниже подробнее описана работа этих функций.
Для загрузки файлов на сервер нужно использовать вызов типа:
FileRepository.repo.addNewFile(part, fileName, "guest");
где part - это переменная типа Part из HttpServletRequest, fileName - имя файла, извлечённое из реквеста, типа String, а "guest" или какая-то другая переменная типа String - имя пользователя.
В этом случае управление передаётся функции addNewFile, которая обращается к функции createCorrectName для создания токена, записывает файл (в виде ByteArrayInputStream) в репозиторий и возвращает строку с названием файла, однозначно определяющим его в репозитории (токеном).
Токен формируется из имени файла и индекса при помощи приватных функций createCorrectName и isNameCorrect. Он состоит из имени файла, извлечённого из реквеста при загрузке, и, при необходимости, индекса. Например, три загруженных файла с именем "data" в репозитории будут иметь имена "data", "data_1" и "data_2".
На данный момент реализовано три типа обращения к репозиторию с целью получения файлов
- по токену
- по имени, данному файлу пользователем, и имени пользователя
- по имени, данному файлу пользователем
Примеры вызовов, соответствующих данным обращениям:
ByteArrayInputStream file = FileRepository.repo.getFileByID(token);
ArrayList<ByteArrayInputStream> allFilesForUser = FileRepository.repo.getFiles(filename, login);
ArrayList<ByteArrayInputStream> allFiles = FileRepository.repo.getFiles(filename);
В первом случае, если файл с указанным токеном существует, фунция возвращает единственный объект типа ByteArrayInputStream, соответствующий ему. Во втором случае проверяется ArrayList files в репозитории, и возвращается ArrayList объектов, которые соответствуют указанному имени среди файлов данного пользователя. Третья функция возвращает ArrayList из всех объектов, имевших перед загрузкой данное имя - при введении многопользовательского режима она, скорее всего, будет удалена, используйте с осторожностью.
- Project structure
- Heroku
- Coding Guidelines
- [Java](Coding Guidelines)
- Html
- Логирование (Java)
- Analyzers: [TEMPLATE]
- Общая схема вычисляемых функций
- Линейный коэффициент корреляции
- Уравнение линейной регрессии
- Анализ временных рядов
- Анализ одномерных временных рядов: вычисление тренда, сезонной и шумовой компонент несколькими способами
- Критерий Стьюдента
- Analyzers: Kolmogorov Smirnov Test for two samples
- Анализ главных компонент (Principal Component Analysis, PCA)
- Показатель Ляпунова для временных рядов
- Navigation
- REST API
- Классы - источники данных
- Добавление нового источника данных
- [Analyzers](Architecture of analize function)
- Analyzers (version 2)
- Пользователи, проекты и файлы
- Java R classic integration
- Renjin (R in JVM)
- R integration architecture
- R scripts
- RConfiguration
- Полезные функции в R
- Angular 2 in JavaScript
- Learning resources, etc.
- Angular 2 приложение проектов
- Точка входа для более быстрой разработки Angular 2 приложения
- Interpolation
- [Charts comparison](displaying graphs control)
- What is Servlet?
- Ace-editor
- Библиотека CoreArray
- Сборка CoreArray
- Сравнение скоростей способов доступа к CoreArray
- Переделка Gdsfmt под java
- Разбор структуры файла из центра биоинформатики