Commit cd8a5094 authored by 0Tyler's avatar 0Tyler

defaultData

parent de22d29d
......@@ -7,28 +7,21 @@
</component>
<component name="ChangeListManager">
<list default="true" id="d3a5f2c9-d22f-4974-88fb-d506b4e5feaf" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/cloud/src/main/resources/document/溫溼度感測器檢測報告.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/cloud/src/main/resources/document/粉塵濃度感測器檢測報告.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DeviceController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DeviceController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyContent.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyContent.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyChoiceRepository.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyChoiceRepository.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyChoiceService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyChoiceService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java" beforeDir="false" afterPath="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/.gradle/buildOutputCleanup/buildOutputCleanup.lock" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/buildOutputCleanup/buildOutputCleanup.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/out/production/classes/META-INF/iotgateway.gateway.main.kotlin_module" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/out/production/classes/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.class" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/out/production/classes/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/out/production/classes/edu/prlab/tyler/iotgateway/gateway/repositories/DeviceIndexRepository.class" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/out/production/classes/edu/prlab/tyler/iotgateway/gateway/repositories/DeviceIndexRepository.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/out/production/classes/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.class" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/out/production/classes/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/out/production/classes/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.class" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/out/production/classes/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/out/test/classes/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/out/test/classes/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/out/test/classes/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.class" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/out/test/classes/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/out/" />
<ignored path="$PROJECT_DIR$/build/" />
......@@ -152,11 +145,11 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="389">
<caret line="65" column="5" lean-forward="true" selection-start-line="65" selection-start-column="5" selection-end-line="65" selection-end-column="5" />
<state relative-caret-position="1033">
<caret line="69" column="25" lean-forward="true" selection-start-line="69" selection-start-column="25" selection-end-line="69" selection-end-column="25" />
<folding>
<element signature="imports" expanded="true" />
</folding>
......@@ -164,87 +157,89 @@
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyChoice.java">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="22" column="18" lean-forward="true" selection-start-line="22" selection-start-column="18" selection-end-line="22" selection-end-column="18" />
<state relative-caret-position="165">
<caret line="33" column="29" selection-start-line="33" selection-start-column="29" selection-end-line="33" selection-end-column="29" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyContent.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="468">
<caret line="34" column="20" selection-start-line="34" selection-start-column="20" selection-end-line="34" selection-end-column="20" />
<state relative-caret-position="326">
<caret line="87" column="62" selection-start-line="87" selection-start-column="41" selection-end-line="87" selection-end-column="62" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicy.java">
<entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162">
<caret line="21" column="13" selection-start-line="21" selection-start-column="13" selection-end-line="21" selection-end-column="13" />
<state relative-caret-position="129">
<caret line="62" column="72" selection-start-line="62" selection-start-column="72" selection-end-line="62" selection-end-column="72" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/stream/Collectors.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="365">
<caret line="1209" column="30" selection-start-line="1209" selection-start-column="30" selection-end-line="1209" selection-end-column="30" />
<folding>
<element signature="e#33990#33991#0" expanded="true" />
<element signature="e#34045#34046#0" expanded="true" />
</folding>
<state relative-caret-position="111">
<caret line="28" column="54" selection-start-line="28" selection-start-column="54" selection-end-line="28" selection-end-column="54" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyChoiceResponse.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
<caret line="10" column="4" selection-start-line="10" selection-start-column="4" selection-end-line="10" selection-end-column="4" />
<state relative-caret-position="111">
<caret line="61" column="28" selection-start-line="61" selection-start-column="28" selection-end-line="61" selection-end-column="28" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java">
<entry file="file://$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="25" column="1" lean-forward="true" selection-start-line="25" selection-start-column="1" selection-end-line="25" selection-end-column="1" />
<state relative-caret-position="503">
<caret line="58" column="38" selection-start-line="58" selection-start-column="38" selection-end-line="58" selection-end-column="38" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/net/SocketInputStream.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
<caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
<state relative-caret-position="1530">
<caret line="115" selection-start-line="115" selection-end-line="115" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272">
<caret line="42" column="41" selection-start-line="42" selection-start-column="41" selection-end-line="42" selection-end-column="41" />
<state relative-caret-position="270">
<caret line="21" selection-start-line="21" selection-end-line="21" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/27.1-jre/5dfa313690a903560bf27478345780a607bf1e9b/guava-27.1-jre-sources.jar!/com/google/common/collect/Streams.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="95">
<caret line="356" column="45" selection-start-line="356" selection-start-column="33" selection-end-line="356" selection-end-column="45" />
<state relative-caret-position="324">
<caret line="26" selection-start-line="26" selection-end-line="26" />
</state>
</provider>
</entry>
......@@ -261,9 +256,6 @@
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>SensitiveUser</find>
<find>PrivacyChoiceIndexRepository</find>
<find>TypeReference</find>
<find>DeviceIndex</find>
<find>getPrivacyPolicyChoices</find>
<find>username</find>
......@@ -291,6 +283,9 @@
<find>collection</find>
<find>HashMap</find>
<find>List&lt;Boolean&gt;</find>
<find>\\</find>
<find>getname</find>
<find>.udn</find>
</findStrings>
<replaceStrings>
<replace>cloud</replace>
......@@ -303,6 +298,7 @@
<replace>service</replace>
<replace>List</replace>
<replace>HashMap&lt;Integer, Boolean&gt;</replace>
<replace>/</replace>
</replaceStrings>
</component>
<component name="Git.Settings">
......@@ -311,7 +307,6 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/UserService.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Device.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicy.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/RemoteService.java" />
......@@ -327,7 +322,6 @@
<option value="$PROJECT_DIR$/gateway/settings.gradle" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/document.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/CloudApplication.java" />
<option value="$PROJECT_DIR$/cloud/build.gradle" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/storage/StorageService.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyPolicyReportRepository.java" />
<option value="$PROJECT_DIR$/cloud/src/main/resources/application.properties" />
......@@ -335,11 +329,8 @@
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/CrudService.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DocumentRepository.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/ThrowingFunction.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java" />
<option value="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/GatewayContractTester.java" />
<option value="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/DeviceContractTester.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/DeviceIndexRepository.java" />
......@@ -352,16 +343,21 @@
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.java" />
<option value="$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyContent.java" />
<option value="$PROJECT_DIR$/gateway/build.gradle" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyResponse.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/DeviceIndex.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java" />
<option value="$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/PrivacyChoiceIndex.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/DocumentController.java" />
<option value="$PROJECT_DIR$/cloud/build.gradle" />
<option value="$PROJECT_DIR$/gateway/build.gradle" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java" />
<option value="$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java" />
</list>
</option>
</component>
......@@ -379,6 +375,7 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
......@@ -526,6 +523,23 @@
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="util" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="document" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
......@@ -550,6 +564,41 @@
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="contract" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
......@@ -692,7 +741,6 @@
<select />
</subPane>
</pane>
<pane id="Scope" />
<pane id="PackagesPane" />
</panes>
</component>
......@@ -751,9 +799,28 @@
</RuleState>
</list>
</option>
<option name="contentProportion" value="0.18939394" />
<option name="contentProportion" value="0.18181819" />
</component>
<component name="RunManager" selected="JUnit.GatewayHttpApiTest">
<configuration name="iotgateway:cloud [bootJar]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$/cloud" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value="bootJar" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
<method v="2" />
</configuration>
<configuration name="iotgateway:cloud [build]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<ExternalSystemSettings>
<option name="executionName" />
......@@ -773,7 +840,7 @@
<GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
<method v="2" />
</configuration>
<configuration name="iotgateway:cloud [test]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<configuration name="iotgateway:cloud [clean]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$/cloud" />
......@@ -784,7 +851,7 @@
</option>
<option name="taskNames">
<list>
<option value="test" />
<option value="clean" />
</list>
</option>
<option name="vmOptions" />
......@@ -792,21 +859,6 @@
<GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
<method v="2" />
</configuration>
<configuration name="CloudHttpApiTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="iotgateway.cloud.test" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="edu.prlab.tyler.iotgateway.cloud.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="PACKAGE_NAME" value="edu.prlab.tyler.iotgateway.cloud" />
<option name="MAIN_CLASS_NAME" value="edu.prlab.tyler.iotgateway.cloud.CloudHttpApiTest" />
<option name="TEST_OBJECT" value="class" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="ContractTester" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="iotgateway.contract.test" />
<extension name="coverage">
......@@ -865,23 +917,23 @@
</method>
</configuration>
<list>
<item itemvalue="Gradle.iotgateway:cloud [test]" />
<item itemvalue="Gradle.iotgateway:cloud [bootJar]" />
<item itemvalue="Gradle.iotgateway:cloud [clean]" />
<item itemvalue="Gradle.iotgateway:cloud [build]" />
<item itemvalue="JUnit.CloudHttpApiTest" />
<item itemvalue="JUnit.DeviceContractTester" />
<item itemvalue="JUnit.GatewayHttpApiTest" />
<item itemvalue="JUnit.ContractTester" />
<item itemvalue="Multirun.iotgateway" />
<item itemvalue="Spring Boot.GatewayApplication" />
<item itemvalue="Spring Boot.CloudApplication" />
<item itemvalue="Spring Boot.ContractApplication" />
<item itemvalue="JUnit.GatewayHttpApiTest" />
</list>
<recent_temporary>
<list>
<item itemvalue="JUnit.GatewayHttpApiTest" />
<item itemvalue="JUnit.CloudHttpApiTest" />
<item itemvalue="JUnit.DeviceContractTester" />
<item itemvalue="JUnit.ContractTester" />
<item itemvalue="Gradle.iotgateway:cloud [build]" />
<item itemvalue="Gradle.iotgateway:cloud [test]" />
<item itemvalue="Gradle.iotgateway:cloud [clean]" />
<item itemvalue="Gradle.iotgateway:cloud [bootJar]" />
</list>
</recent_temporary>
</component>
......@@ -902,7 +954,9 @@
<workItem from="1557365602468" duration="84502000" />
<workItem from="1557987857812" duration="17623000" />
<workItem from="1558076620952" duration="30942000" />
<workItem from="1558531083647" duration="61544000" />
<workItem from="1558531083647" duration="61839000" />
<workItem from="1559030426004" duration="26881000" />
<workItem from="1559534946076" duration="2078000" />
</task>
<task id="LOCAL-00001" summary="git init">
<created>1556204675975</created>
......@@ -1058,43 +1112,50 @@
<option name="project" value="LOCAL" />
<updated>1558604238984</updated>
</task>
<option name="localTasksCounter" value="23" />
<task id="LOCAL-00023" summary="getPrivacyPolicyReportResponse">
<created>1559028497214</created>
<option name="number" value="00023" />
<option name="presentableId" value="LOCAL-00023" />
<option name="project" value="LOCAL" />
<updated>1559028497214</updated>
</task>
<option name="localTasksCounter" value="24" />
<servers />
</component>
<component name="TestHistory">
<history-entry file="GatewayHttpApiTest - 2019.05.27 at 16h 02m 38s.xml">
<history-entry file="GatewayHttpApiTest - 2019.05.31 at 17h 51m 59s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry>
<history-entry file="GatewayHttpApiTest - 2019.05.27 at 16h 06m 24s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
<history-entry file="ContractTester - 2019.05.31 at 17h 52m 49s.xml">
<configuration name="ContractTester" configurationId="JUnit" />
</history-entry>
<history-entry file="GatewayHttpApiTest - 2019.05.27 at 16h 07m 01s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
<history-entry file="ContractTester - 2019.05.31 at 17h 53m 13s.xml">
<configuration name="ContractTester" configurationId="JUnit" />
</history-entry>
<history-entry file="GatewayHttpApiTest - 2019.05.27 at 16h 31m 05s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
<history-entry file="ContractTester - 2019.05.31 at 17h 55m 55s.xml">
<configuration name="ContractTester" configurationId="JUnit" />
</history-entry>
<history-entry file="GatewayHttpApiTest - 2019.05.28 at 13h 54m 15s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
<history-entry file="ContractTester - 2019.05.31 at 17h 56m 34s.xml">
<configuration name="ContractTester" configurationId="JUnit" />
</history-entry>
<history-entry file="GatewayHttpApiTest - 2019.05.28 at 14h 07m 53s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
<history-entry file="ContractTester - 2019.05.31 at 18h 06m 47s.xml">
<configuration name="ContractTester" configurationId="JUnit" />
</history-entry>
<history-entry file="GatewayHttpApiTest - 2019.05.28 at 14h 36m 33s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
<history-entry file="ContractTester - 2019.05.31 at 18h 08m 58s.xml">
<configuration name="ContractTester" configurationId="JUnit" />
</history-entry>
<history-entry file="GatewayHttpApiTest - 2019.05.28 at 14h 36m 57s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
<history-entry file="ContractTester - 2019.05.31 at 18h 11m 42s.xml">
<configuration name="ContractTester" configurationId="JUnit" />
</history-entry>
<history-entry file="GatewayHttpApiTest - 2019.05.28 at 14h 43m 43s.xml">
<history-entry file="GatewayHttpApiTest - 2019.06.03 at 12h 25m 28s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry>
<history-entry file="GatewayHttpApiTest - 2019.05.28 at 15h 24m 06s.xml">
<history-entry file="GatewayHttpApiTest - 2019.06.03 at 12h 28m 42s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry>
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="292526000" />
<option name="totallyTimeSpent" value="321780000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
......@@ -1107,19 +1168,18 @@
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
<editor active="true" />
<layout>
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.19189766" />
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.1988273" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Designer" order="2" />
<window_info id="UI Designer" order="3" />
<window_info id="Favorites" order="4" side_tool="true" />
<window_info id="Web" order="5" side_tool="true" />
<window_info anchor="bottom" id="Run Dashboard" order="0" sideWeight="0.49946696" weight="0.30734965" />
<window_info anchor="bottom" id="Run Dashboard" order="0" sideWeight="0.49946696" visible="true" weight="0.422049" />
<window_info anchor="bottom" id="Messages" order="1" sideWeight="0.49733475" weight="0.2806236" />
<window_info anchor="bottom" id="Message" order="2" />
<window_info anchor="bottom" id="Find" order="3" sideWeight="0.4989339" weight="0.43541202" />
<window_info active="true" anchor="bottom" id="Run" order="4" sideWeight="0.49840087" visible="true" weight="0.19042316" />
<window_info anchor="bottom" id="Find" order="3" sideWeight="0.4989339" weight="0.3596882" />
<window_info anchor="bottom" id="Run" order="4" sideWeight="0.49840087" weight="0.5935412" />
<window_info anchor="bottom" id="Debug" order="5" weight="0.2962138" />
<window_info anchor="bottom" id="Cvs" order="6" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="7" weight="0.4" />
......@@ -1137,7 +1197,7 @@
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="Maven" order="3" />
<window_info anchor="right" id="Palette" order="4" />
<window_info anchor="right" id="Gradle" order="5" visible="true" weight="0.1076759" />
<window_info anchor="right" id="Gradle" order="5" visible="true" weight="0.0858209" />
<window_info anchor="right" id="Database" order="6" weight="0.17430703" />
<window_info anchor="right" id="Palette&#9;" order="7" />
<window_info anchor="right" id="Bean Validation" order="8" weight="0.32932165" />
......@@ -1164,7 +1224,8 @@
<MESSAGE value="RemoteService" />
<MESSAGE value="document controller" />
<MESSAGE value="gateway:DeviceService:addfilter &amp; gateway:PrivacyService:addfilter" />
<option name="LAST_COMMIT_MESSAGE" value="gateway:DeviceService:addfilter &amp; gateway:PrivacyService:addfilter" />
<MESSAGE value="getPrivacyPolicyReportResponse" />
<option name="LAST_COMMIT_MESSAGE" value="getPrivacyPolicyReportResponse" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
......@@ -1191,409 +1252,397 @@
</breakpoint-manager>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DocumentRepository.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyChoiceService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="9" column="17" selection-start-line="9" selection-start-column="17" selection-end-line="9" selection-end-column="17" />
<state relative-caret-position="342">
<caret line="27" column="5" selection-start-line="27" selection-start-column="5" selection-end-line="27" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyPolicyReportService.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/PrivacyChoiceIndex.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="432">
<caret line="29" selection-start-line="29" selection-end-line="29" />
<state relative-caret-position="198">
<caret line="18" column="20" lean-forward="true" selection-start-line="18" selection-start-column="20" selection-end-line="18" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyChoiceRepository.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.6/2908ec27909c1929a9f2e031e4ae27e54d268860/lombok-1.18.6-sources.jar!/lombok/Builder.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126">
<caret line="7" column="17" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="199">
<caret line="114" column="17" selection-start-line="114" selection-start-column="8" selection-end-line="114" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/UserController.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.6/2908ec27909c1929a9f2e031e4ae27e54d268860/lombok-1.18.6-sources.jar!/lombok/Data.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="414">
<caret line="31" column="5" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" />
<state relative-caret-position="306">
<caret line="40" column="15" selection-start-line="40" selection-start-column="15" selection-end-line="40" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.6/2908ec27909c1929a9f2e031e4ae27e54d268860/lombok-1.18.6-sources.jar!/lombok/EqualsAndHashCode.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="357">
<caret line="222" selection-start-line="222" selection-end-line="222" />
<state relative-caret-position="181">
<caret line="59" column="85" selection-start-line="59" selection-start-column="77" selection-end-line="59" selection-end-column="85" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/build.gradle">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/Collection.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="408">
<caret line="579" column="15" selection-start-line="579" selection-start-column="15" selection-end-line="579" selection-end-column="15" />
<folding>
<element signature="e#26957#26958#0" expanded="true" />
<element signature="e#27022#27023#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/27.1-jre/5dfa313690a903560bf27478345780a607bf1e9b/guava-27.1-jre-sources.jar!/com/google/common/collect/MapMaker.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="99">
<caret line="39" selection-start-line="39" selection-end-line="39" />
<state relative-caret-position="-108">
<caret line="88" column="19" selection-start-line="88" selection-start-column="19" selection-end-line="88" selection-end-column="19" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DeviceController.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/TreeMap.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="448">
<caret line="63" column="5" lean-forward="true" selection-start-line="63" selection-start-column="5" selection-end-line="63" selection-end-column="5" />
<state relative-caret-position="272">
<caret line="110" column="13" selection-start-line="110" selection-start-column="13" selection-end-line="110" selection-end-column="13" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#5767#5768#0" expanded="true" />
<element signature="e#5800#5801#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/stream/Stream.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="320">
<caret line="43" column="5" lean-forward="true" selection-start-line="43" selection-start-column="5" selection-end-line="43" selection-end-column="5" />
<state relative-caret-position="261">
<caret line="806" column="13" selection-start-line="806" selection-start-column="13" selection-end-line="806" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayApplicationTests.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/auth/SensitiveUser.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
<state relative-caret-position="162">
<caret line="19" column="26" selection-start-line="19" selection-start-column="13" selection-end-line="19" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/27.1-jre/5dfa313690a903560bf27478345780a607bf1e9b/guava-27.1-jre-sources.jar!/com/google/common/collect/Iterables.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/HashMap.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="217">
<caret line="987" column="36" lean-forward="true" selection-start-line="987" selection-start-column="36" selection-end-line="987" selection-end-column="36" />
<state relative-caret-position="251">
<caret line="783" column="16" selection-start-line="783" selection-start-column="16" selection-end-line="783" selection-end-column="16" />
<folding>
<element signature="e#33819#33820#0" expanded="true" />
<element signature="e#33861#33862#0" expanded="true" />
<element signature="e#19327#19328#0" expanded="true" />
<element signature="e#19410#19411#0" expanded="true" />
<element signature="e#31056#31057#0" expanded="true" />
<element signature="e#31094#31095#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/DeviceIndex.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/Integer.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="16" column="7" lean-forward="true" selection-start-line="16" selection-start-column="7" selection-end-line="16" selection-end-column="7" />
<state relative-caret-position="209">
<caret line="51" column="19" selection-start-line="51" selection-start-column="19" selection-end-line="51" selection-end-column="19" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/auth/User.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/27.1-jre/5dfa313690a903560bf27478345780a607bf1e9b/guava-27.1-jre-sources.jar!/com/google/common/collect/ImmutableBiMap.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="302">
<caret line="22" column="19" selection-start-line="22" selection-start-column="19" selection-end-line="22" selection-end-column="19" />
<state relative-caret-position="209">
<caret line="69" column="44" selection-start-line="69" selection-start-column="44" selection-end-line="69" selection-end-column="44" />
<folding>
<element signature="e#2853#2854#0" expanded="true" />
<element signature="e#2907#2908#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/String.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/Long.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="311">
<caret line="989" column="24" lean-forward="true" selection-start-line="989" selection-start-column="24" selection-end-line="989" selection-end-column="24" />
<state relative-caret-position="276">
<caret line="990" column="15" selection-start-line="990" selection-start-column="15" selection-end-line="990" selection-end-column="15" />
<folding>
<element signature="e#37238#37239#0" expanded="true" />
<element signature="e#37271#37272#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/config/DefaultData.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/27.1-jre/5dfa313690a903560bf27478345780a607bf1e9b/guava-27.1-jre-sources.jar!/com/google/common/collect/ImmutableMap.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
<state relative-caret-position="-8804">
<caret line="64" column="22" selection-start-line="64" selection-start-column="22" selection-end-line="64" selection-end-column="22" />
<folding>
<element signature="e#5105#5106#0" expanded="true" />
<element signature="e#5147#5148#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/config/RemoteConfig.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyChoice.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
<state relative-caret-position="288">
<caret line="22" column="18" selection-start-line="22" selection-start-column="18" selection-end-line="22" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/UserService.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyContent.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="278">
<caret line="28" column="14" lean-forward="true" selection-start-line="28" selection-start-column="14" selection-end-line="28" selection-end-column="14" />
<state relative-caret-position="468">
<caret line="34" column="20" selection-start-line="34" selection-start-column="20" selection-end-line="34" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/CloudApplication.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicy.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
<state relative-caret-position="162">
<caret line="21" column="13" selection-start-line="21" selection-start-column="13" selection-end-line="21" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/GatewayApplication.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/stream/Collectors.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
<state relative-caret-position="20394">
<caret line="1209" column="30" selection-start-line="1209" selection-start-column="30" selection-end-line="1209" selection-end-column="30" />
<folding>
<element signature="e#33990#33991#0" expanded="true" />
<element signature="e#34045#34046#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-commons/2.1.6.RELEASE/d6c2a24d22131dd891c73ebc3c9ab3ee00fcbb8f/spring-data-commons-2.1.6.RELEASE-sources.jar!/org/springframework/data/repository/CrudRepository.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="158">
<caret line="53" column="16" selection-start-line="53" selection-start-column="16" selection-end-line="53" selection-end-column="16" />
<state relative-caret-position="234">
<caret line="21" column="25" selection-start-line="21" selection-start-column="25" selection-end-line="21" selection-end-column="25" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/PrivacyChoiceIndexRepository.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/27.1-jre/5dfa313690a903560bf27478345780a607bf1e9b/guava-27.1-jre-sources.jar!/com/google/common/collect/Streams.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="7" column="75" lean-forward="true" selection-start-line="7" selection-start-column="75" selection-end-line="7" selection-end-column="75" />
<state relative-caret-position="5580">
<caret line="354" column="5" selection-start-line="354" selection-start-column="5" selection-end-line="354" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/DocumentController.java" />
<entry file="file://$PROJECT_DIR$/cloud/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1638">
<caret line="115" lean-forward="true" selection-start-line="115" selection-end-line="115" />
<state relative-caret-position="197">
<caret line="50" column="1" selection-start-line="50" selection-start-column="1" selection-end-line="50" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java">
<entry file="file://$PROJECT_DIR$/gateway/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252">
<caret line="125" column="58" selection-start-line="125" selection-start-column="22" selection-end-line="125" selection-end-column="58" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="362">
<caret line="48" column="18" selection-start-line="48" selection-start-column="18" selection-end-line="48" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.1.6.RELEASE/aa74700198d24e1ed8b3c8ad663ad50733658ac6/spring-core-5.1.6.RELEASE-sources.jar!/org/springframework/core/io/Resource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="311">
<caret line="35" column="18" selection-start-line="35" selection-start-column="18" selection-end-line="35" selection-end-column="18" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="293">
<caret line="48" column="16" selection-start-line="48" selection-start-column="16" selection-end-line="48" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.1.6.RELEASE/aa74700198d24e1ed8b3c8ad663ad50733658ac6/spring-core-5.1.6.RELEASE-sources.jar!/org/springframework/core/io/ByteArrayResource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162">
<caret line="15" column="13" selection-start-line="15" selection-start-column="13" selection-end-line="15" selection-end-column="13" />
<state relative-caret-position="-445">
<caret line="42" column="13" selection-start-line="42" selection-start-column="13" selection-end-line="42" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyChoiceService.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/io/FileInputStream.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="342">
<caret line="27" column="5" selection-start-line="27" selection-start-column="5" selection-end-line="27" selection-end-column="5" />
<state relative-caret-position="89">
<caret line="137" column="8" selection-start-line="137" selection-start-column="8" selection-end-line="137" selection-end-column="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/PrivacyChoiceIndex.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/UserController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="18" column="20" lean-forward="true" selection-start-line="18" selection-start-column="20" selection-end-line="18" selection-end-column="20" />
<state relative-caret-position="414">
<caret line="31" column="5" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.6/2908ec27909c1929a9f2e031e4ae27e54d268860/lombok-1.18.6-sources.jar!/lombok/Builder.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyChoiceResponse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="199">
<caret line="114" column="17" selection-start-line="114" selection-start-column="8" selection-end-line="114" selection-end-column="17" />
<state relative-caret-position="72">
<caret line="10" column="4" selection-start-line="10" selection-start-column="4" selection-end-line="10" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.6/2908ec27909c1929a9f2e031e4ae27e54d268860/lombok-1.18.6-sources.jar!/lombok/Data.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/auth/User.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="40" column="15" selection-start-line="40" selection-start-column="15" selection-end-line="40" selection-end-column="15" />
<caret line="22" column="19" selection-start-line="22" selection-start-column="19" selection-end-line="22" selection-end-column="19" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.6/2908ec27909c1929a9f2e031e4ae27e54d268860/lombok-1.18.6-sources.jar!/lombok/EqualsAndHashCode.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/io/File.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="181">
<caret line="59" column="85" selection-start-line="59" selection-start-column="77" selection-end-line="59" selection-end-column="85" />
<state relative-caret-position="-77">
<caret line="452" column="25" selection-start-line="452" selection-start-column="18" selection-end-line="452" selection-end-column="25" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/Collection.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DeviceController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="408">
<caret line="579" column="15" selection-start-line="579" selection-start-column="15" selection-end-line="579" selection-end-column="15" />
<state relative-caret-position="273">
<caret line="50" column="26" selection-start-line="50" selection-start-column="19" selection-end-line="50" selection-end-column="26" />
<folding>
<element signature="e#26957#26958#0" expanded="true" />
<element signature="e#27022#27023#0" expanded="true" />
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/27.1-jre/5dfa313690a903560bf27478345780a607bf1e9b/guava-27.1-jre-sources.jar!/com/google/common/collect/MapMaker.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-108">
<caret line="88" column="19" selection-start-line="88" selection-start-column="19" selection-end-line="88" selection-end-column="19" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/TreeMap.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272">
<caret line="110" column="13" selection-start-line="110" selection-start-column="13" selection-end-line="110" selection-end-column="13" />
<folding>
<element signature="e#5767#5768#0" expanded="true" />
<element signature="e#5800#5801#0" expanded="true" />
</folding>
<state relative-caret-position="486">
<caret line="43" column="5" selection-start-line="43" selection-start-column="5" selection-end-line="43" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/stream/Stream.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/CrudService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="261">
<caret line="806" column="13" selection-start-line="806" selection-start-column="13" selection-end-line="806" selection-end-column="13" />
<state relative-caret-position="72">
<caret line="6" column="22" selection-start-line="6" selection-start-column="22" selection-end-line="6" selection-end-column="22" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/auth/SensitiveUser.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DeviceService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162">
<caret line="19" column="26" selection-start-line="19" selection-start-column="13" selection-end-line="19" selection-end-column="26" />
<state relative-caret-position="288">
<caret line="23" lean-forward="true" selection-start-line="23" selection-end-line="23" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/config/DefaultData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="439">
<caret line="73" column="5" selection-start-line="73" selection-start-column="5" selection-end-line="73" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="90">
<caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/HashMap.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/GatewayApplication.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="251">
<caret line="783" column="16" selection-start-line="783" selection-start-column="16" selection-end-line="783" selection-end-column="16" />
<folding>
<element signature="e#19327#19328#0" expanded="true" />
<element signature="e#19410#19411#0" expanded="true" />
<element signature="e#31056#31057#0" expanded="true" />
<element signature="e#31094#31095#0" expanded="true" />
</folding>
<state relative-caret-position="108">
<caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/Integer.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/io/IOException.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="209">
<caret line="51" column="19" selection-start-line="51" selection-start-column="19" selection-end-line="51" selection-end-column="19" />
<state relative-caret-position="270">
<caret line="38" column="6" selection-start-line="38" selection-start-column="6" selection-end-line="38" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/27.1-jre/5dfa313690a903560bf27478345780a607bf1e9b/guava-27.1-jre-sources.jar!/com/google/common/collect/ImmutableBiMap.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/CloudApplication.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="209">
<caret line="69" column="44" selection-start-line="69" selection-start-column="44" selection-end-line="69" selection-end-column="44" />
<state relative-caret-position="90">
<caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
<folding>
<element signature="e#2853#2854#0" expanded="true" />
<element signature="e#2907#2908#0" expanded="true" />
<element signature="e#399#400#0" expanded="true" />
<element signature="e#466#467#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="522">
<caret line="37" selection-start-line="37" selection-end-line="37" />
<caret line="41" column="46" selection-start-line="41" selection-start-column="31" selection-end-line="41" selection-end-column="46" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/Long.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="276">
<caret line="990" column="15" selection-start-line="990" selection-start-column="15" selection-end-line="990" selection-end-column="15" />
<folding>
<element signature="e#37238#37239#0" expanded="true" />
<element signature="e#37271#37272#0" expanded="true" />
</folding>
<state relative-caret-position="72">
<caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/27.1-jre/5dfa313690a903560bf27478345780a607bf1e9b/guava-27.1-jre-sources.jar!/com/google/common/collect/ImmutableMap.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/net/SocketInputStream.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-8804">
<caret line="64" column="22" selection-start-line="64" selection-start-column="22" selection-end-line="64" selection-end-column="22" />
<folding>
<element signature="e#5105#5106#0" expanded="true" />
<element signature="e#5147#5148#0" expanded="true" />
</folding>
<state relative-caret-position="1530">
<caret line="115" selection-start-line="115" selection-end-line="115" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyChoiceResponse.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
<caret line="10" column="4" selection-start-line="10" selection-start-column="4" selection-end-line="10" selection-end-column="4" />
<state relative-caret-position="270">
<caret line="21" selection-start-line="21" selection-end-line="21" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/27.1-jre/5dfa313690a903560bf27478345780a607bf1e9b/guava-27.1-jre-sources.jar!/com/google/common/collect/Streams.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="95">
<caret line="356" column="45" selection-start-line="356" selection-start-column="33" selection-end-line="356" selection-end-column="45" />
<state relative-caret-position="324">
<caret line="26" selection-start-line="26" selection-end-line="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java">
<entry file="file://$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272">
<caret line="42" column="41" selection-start-line="42" selection-start-column="41" selection-end-line="42" selection-end-column="41" />
<state relative-caret-position="503">
<caret line="58" column="38" selection-start-line="58" selection-start-column="38" selection-end-line="58" selection-end-column="38" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/stream/Collectors.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="365">
<caret line="1209" column="30" selection-start-line="1209" selection-start-column="30" selection-end-line="1209" selection-end-column="30" />
<state relative-caret-position="1033">
<caret line="69" column="25" lean-forward="true" selection-start-line="69" selection-start-column="25" selection-end-line="69" selection-end-column="25" />
<folding>
<element signature="e#33990#33991#0" expanded="true" />
<element signature="e#34045#34046#0" expanded="true" />
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="25" column="1" lean-forward="true" selection-start-line="25" selection-start-column="1" selection-end-line="25" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
<caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
<state relative-caret-position="326">
<caret line="87" column="62" selection-start-line="87" selection-start-column="41" selection-end-line="87" selection-end-column="62" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyChoice.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="22" column="18" lean-forward="true" selection-start-line="22" selection-start-column="18" selection-end-line="22" selection-end-column="18" />
<state relative-caret-position="111">
<caret line="28" column="54" selection-start-line="28" selection-start-column="54" selection-end-line="28" selection-end-column="54" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyContent.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="468">
<caret line="34" column="20" selection-start-line="34" selection-start-column="20" selection-end-line="34" selection-end-column="20" />
<state relative-caret-position="111">
<caret line="61" column="28" selection-start-line="61" selection-start-column="28" selection-end-line="61" selection-end-column="28" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicy.java">
<entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162">
<caret line="21" column="13" selection-start-line="21" selection-start-column="13" selection-end-line="21" selection-end-column="13" />
<state relative-caret-position="129">
<caret line="62" column="72" selection-start-line="62" selection-start-column="72" selection-end-line="62" selection-end-column="72" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="389">
<caret line="65" column="5" lean-forward="true" selection-start-line="65" selection-start-column="5" selection-end-line="65" selection-end-column="5" />
<state relative-caret-position="165">
<caret line="33" column="29" selection-start-line="33" selection-start-column="29" selection-end-line="33" selection-end-column="29" />
<folding>
<element signature="imports" expanded="true" />
</folding>
......
......@@ -50,7 +50,7 @@ jar {
enabled = true
}
bootJar {
enabled = false
enabled = true
classifier = 'boot'
manifest {
attributes 'Start-Class': 'edu.prlab.tyler.iotgateway.cloud.CloudApplication'
......
......@@ -11,11 +11,18 @@ import edu.prlab.tyler.iotgateway.cloud.services.DeviceService;
import edu.prlab.tyler.iotgateway.cloud.services.DocumentService;
import edu.prlab.tyler.iotgateway.cloud.services.PrivacyPolicyReportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.io.Resource;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Component;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Optional;
import static java.util.Arrays.asList;
@Component
......@@ -34,22 +41,28 @@ public class DefaultData implements ApplicationRunner {
this.documentService = documentService;
}
@Value("classpath:document/粉塵濃度感測器檢測報告.pdf")
Resource dustResource;
@Value("classpath:document/溫溼度感測器檢測報告.pdf")
Resource tempResource;
@Override
public void run(ApplicationArguments args) {
//心跳血氧機
Device oxygenDevice = Device.builder()
.udn("a1252c49-4188-4e6d-a32e-66604c664fb8")
.name("指尖式血氧機")
.name("心跳血氧機")
.type(Device.Type.Sensor)
.manufacturer(Manufacturer.builder()
.name("Facelake")
.name("Maxim Integrated")
.serialNumber("3176927193")
.url("http://facelake.com")
.url("https://www.maximintegrated.com/en.html")
.build())
.model(Model.builder()
.name("指尖式血氧機")
.description("本設備是為符合不同領域及照護應用而設計,並把這些特色融入小如指節的分析儀中,可在數秒內量測出準確可靠的血氧及心跳值。")
.url("https://www.amazon.com/Pulse-Oximeter-Blood-Oxygen-Monitor/dp/B00HXXO332")
.name("心跳血氧機")
.description("本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況")
.url("https://www.maximintegrated.com/en/products/sensors/MAX30100.html")
.build())
.upc("B00HXXO332")
.location("25.013068, 121.541651")
......@@ -58,9 +71,9 @@ public class DefaultData implements ApplicationRunner {
deviceService.add(oxygenDevice);
PrivacyPolicy oxygenPrivacyPolicy = PrivacyPolicy.builder()
PrivacyPolicy oxygenPrivacyPolicy1 = PrivacyPolicy.builder()
.id("abe5ca7b-780e-4857-87e6-014870fe0a3e")
.description("本APP會蒐集使用者周遭溫度作為第三方資料之地區環境分析資料。")
.description("本APP會蒐集使用者心跳作為第三方之分析資料。")
.collector(Collector.builder()
.name("AirRadio")
.email("[email protected]")
......@@ -74,14 +87,14 @@ public class DefaultData implements ApplicationRunner {
.type(Remedy.Type.LAW)
.build()))
.statements(asList(Statement.builder()
.consequence("a1252c49-4188-4e6d-a32e-66604c664fb9")
.consequence("a1252c49-4188-4e6d-a32e-66604c664fl4")
.purposes(asList(Purpose.builder()
.type(Purpose.Type.PSEUDO_ANALYSIS)
.description("本APP會蒐集使用者周遭溫度作為第三方資料之地區環境分析資料。")
.description("本APP會蒐集使用者心跳作為第三方之分析資料。")
.build()))
.data(asList(Datum.builder()
.type(Datum.Type.OTHER_CATEGORY)
.description("室溫資料")
.description("心跳健康資料")
.build()))
.recipients(asList(Recipient.builder()
.entity("AirRadio")
......@@ -89,14 +102,14 @@ public class DefaultData implements ApplicationRunner {
.build()))
.retention(Retention.STATED_PURPOSE)
.build(), Statement.builder()
.consequence("a1252c49-4188-4e6d-a32e-66604c664fb9")
.consequence("a1252c49-4188-4e6d-a32e-66604c664f45")
.purposes(asList(Purpose.builder()
.type(Purpose.Type.PSEUDO_ANALYSIS)
.description("本APP會蒐集使用者周遭溫度作為第三方資料之地區環境分析資料。")
.description("本APP會蒐集使用者心跳作為第三方之分析資料。")
.build()))
.data(asList(Datum.builder()
.type(Datum.Type.OTHER_CATEGORY)
.description("室溫資料")
.description("心跳健康資料")
.build()))
.recipients(asList(Recipient.builder()
.entity("AirRadio")
......@@ -107,34 +120,84 @@ public class DefaultData implements ApplicationRunner {
))
.build();
Document document = documentService.add(new MockMultipartFile("file", "test.txt",
"text/plain", "This is fake IOT Device testing file.".getBytes()))
PrivacyPolicy oxygenPrivacyPolicy2 = PrivacyPolicy.builder()
.id("abe5ca7b-780e-4857-87e6-014870fe0a3e")
.description("本APP會蒐集使用者血氧作為第三方之分析資料。")
.collector(Collector.builder()
.name("AirRadio")
.email("[email protected]")
.phone("0987654177")
.build())
.access(Access.NON_IDENT)
.dispute(Dispute.builder()
.relatedOrganization("地方法院")
.type(Dispute.Type.LAW).build())
.remedies(asList(Remedy.builder()
.type(Remedy.Type.LAW)
.build()))
.statements(asList(Statement.builder()
.consequence("a1252c49-4188-4e6d-a32e-66604c664f48")
.purposes(asList(Purpose.builder()
.type(Purpose.Type.PSEUDO_ANALYSIS)
.description("本APP會蒐集使用者血氧作為第三方之分析資料。")
.build()))
.data(asList(Datum.builder()
.type(Datum.Type.OTHER_CATEGORY)
.description("血氧資料")
.build()))
.recipients(asList(Recipient.builder()
.entity("AirRadio")
.type(Recipient.Type.OURS)
.build()))
.retention(Retention.STATED_PURPOSE)
.build(), Statement.builder()
.consequence("a1252c49-4188-4e6d-a32e-66604c664f89")
.purposes(asList(Purpose.builder()
.type(Purpose.Type.PSEUDO_ANALYSIS)
.description("本APP會蒐集使用者血氧作為第三方之分析資料。")
.build()))
.data(asList(Datum.builder()
.type(Datum.Type.OTHER_CATEGORY)
.description("血氧資料")
.build()))
.recipients(asList(Recipient.builder()
.entity("AirRadio")
.type(Recipient.Type.OURS)
.build()))
.retention(Retention.STATED_PURPOSE)
.build()
))
.build();
Document document = resourceToMultipartFile(tempResource)
.flatMap(documentService::add)
.orElse(Document.builder().build());
PrivacyPolicyReport oxygenPrivacyPolicyReport = PrivacyPolicyReport.builder()
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a")
.version("1.0")
.description("本APP會蒐集使用者周遭溫度、濕度及空氣品質作為第三方資料之地區環境分析資料。")
.description("本APP會蒐集使用者心跳、血氧作為第三方之分析資料。")
.device(oxygenDevice)
.policies(asList(oxygenPrivacyPolicy))
.policies(asList(oxygenPrivacyPolicy1, oxygenPrivacyPolicy2))
.document(document)
.build();
privacyPolicyReportService.add(oxygenPrivacyPolicyReport);
//紫外線傳感器
Device sensorDevice = Device.builder()
.udn("40ceb1e7-6834-4e6a-9305-57348a2b8d0c")
.name("AirRadio多功能空氣品質感測器")
.name("UVM-30A紫外線傳感器")
.type(Device.Type.Sensor)
.manufacturer(Manufacturer.builder()
.name("AirRadio")
.name("台灣物聯科技")
.serialNumber("1234532545")
.url("http://www.airradio.cn/")
.url("https://www.taiwaniot.com.tw/")
.build())
.model(Model.builder()
.name("AirRadio Multi-functional air quality monitor")
.description("彩屏顯示、APP應用、多參數可選、本地歷史記錄、微信綁定、大屏顯示、遠程韌體升級、新版鐳射感測器、橫豎屏切換、綜合滿足用戶的多種需求。")
.url("https://www.amazon.com/AirRadio-Multi-functional-Humidity-Temperature-detector/dp/B0744D6C8X?pd_rd_wg=EKVyv&pd_rd_r=6cc9cf6f-635c-4be8-b973-ccc269ad6312&pd_rd_w=CGN5l&ref_=pd_gw_simh&pf_rd_r=7K2X6MZBXT0Y27KV4M6Z&pf_rd_p=b841581f-e864-5164-afa6-4c18a8348879")
.name("UVM-30A紫外線傳感器")
.description("專為需要高可靠性和精確性測量紫外線指數(UVI)的場合所設計,且適合測量太陽光紫外線強度總量,適用於小尺寸裝置、行動電話等便攜產品。")
.url("https://www.taiwaniot.com.tw/product/uvm-30a%E7%B4%AB%E5%A4%96%E7%B7%9A%E5%82%B3%E6%84%9F%E5%99%A8%E6%A8%A1%E7%B5%84/")
.build())
.upc("B0744D6C8X")
.location("25.013068, 121.541651")
......@@ -145,7 +208,7 @@ public class DefaultData implements ApplicationRunner {
PrivacyPolicy sensorPrivacyPolicy1 = PrivacyPolicy.builder()
.id("abe5ca7b-780e-4857-87e6-014870fe0a3e")
.description("本APP會蒐集使用者周遭度作為第三方資料之地區環境分析資料。")
.description("本APP會蒐集使用者周遭紫外線強度作為第三方資料之地區環境分析資料。")
.collector(Collector.builder()
.name("AirRadio")
.email("[email protected]")
......@@ -161,11 +224,11 @@ public class DefaultData implements ApplicationRunner {
.consequence("a1252c49-4188-4e6d-a32e-66604c664fb9")
.purposes(asList(Purpose.builder()
.type(Purpose.Type.PSEUDO_ANALYSIS)
.description("本APP會蒐集使用者周遭度作為第三方資料之地區環境分析資料。")
.description("本APP會蒐集使用者周遭紫外線強度作為第三方資料之地區環境分析資料。")
.build()))
.data(asList(Datum.builder()
.type(Datum.Type.OTHER_CATEGORY)
.description("室溫資料")
.description("紫外線強度資料")
.build()))
.recipients(asList(Recipient.builder()
.entity("AirRadio")
......@@ -175,9 +238,44 @@ public class DefaultData implements ApplicationRunner {
.build()))
.build();
PrivacyPolicy sensorPrivacyPolicy2 = PrivacyPolicy.builder()
.id("abe5ca7b-780e-4857-87e6-014870fe0a3f")
.description("本APP會蒐集使用者周遭溫度作為第三方資料之地區環境分析資料。")
PrivacyPolicyReport sensorPrivacyPolicyReport = PrivacyPolicyReport.builder()
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a")
.version("1.0")
.description("本APP會蒐集使用者周遭紫外線強度作為第三方資料之地區環境分析資料。")
.device(sensorDevice)
.policies(asList(sensorPrivacyPolicy1))
.document(document)
.build();
privacyPolicyReportService.add(sensorPrivacyPolicyReport);
//粉塵感測器
Device dustDevice = Device.builder()
.udn("40ceb1e7-6834-4e6a-9305-57348a2b8asc")
.name("G7 PMS7003 粉塵濃度感測器")
.type(Device.Type.Sensor)
.manufacturer(Manufacturer.builder()
.name("台灣物聯科技")
.serialNumber("1234532545")
.url("https://www.taiwaniot.com.tw/")
.build())
.model(Model.builder()
.name("G7 PMS7003 粉塵濃度感測器")
.description("最新推出G7,全稱 PMS7003,厚度僅12mm,專為便攜式檢測產品設計。" +
"可兼容G1和G5,更小更薄,進出氣口在同一側,全金屬外殼。" +
"PM1.0、PM2.5、PM10濃度以及顆粒物個數等12個參數輸出。")
.url("https://www.taiwaniot.com.tw/product/%E6%94%80%E8%97%A4-g7-pms7003-pm1-0-pm2-5-pm10-%E7%B2%89%E5%A1%B5%E6%BF%83%E5%BA%A6%E6%84%9F%E6%B8%AC%E5%99%A8/")
.build())
.upc("B0744D6C8X")
.location("25.013068, 121.541651")
.status(Device.Status.Disconnected)
.build();
deviceService.add(dustDevice);
PrivacyPolicy dustPrivacyPolicy1 = PrivacyPolicy.builder()
.id("abe5ca7b-780e-4857-87e6-014870fe0a1j")
.description("本APP會蒐集使用者周遭空氣品質作為第三方資料之地區環境分析資料。")
.collector(Collector.builder()
.name("AirRadio")
.email("[email protected]")
......@@ -190,14 +288,14 @@ public class DefaultData implements ApplicationRunner {
.remedies(asList(Remedy.builder()
.type(Remedy.Type.LAW).build()))
.statements(asList(Statement.builder()
.consequence("a1252c49-4188-4e6d-a32e-66604c664fba")
.consequence("a1252c49-4188-4e6d-a32e-66604c66s1r9")
.purposes(asList(Purpose.builder()
.type(Purpose.Type.PSEUDO_ANALYSIS)
.description("本APP會蒐集使用者周遭溫度作為第三方資料之地區環境分析資料。")
.description("本APP會蒐集使用者周遭空氣品質作為第三方資料之地區環境分析資料。")
.build()))
.data(asList(Datum.builder()
.type(Datum.Type.OTHER_CATEGORY)
.description("室溫資料")
.description("空氣品質資料")
.build()))
.recipients(asList(Recipient.builder()
.entity("AirRadio")
......@@ -207,9 +305,47 @@ public class DefaultData implements ApplicationRunner {
.build()))
.build();
PrivacyPolicy sensorPrivacyPolicy3 = PrivacyPolicy.builder()
.id("abe5ca7b-780e-4857-87e6-014870fe0a3g")
.description("本APP會蒐集使用者周遭溫度作為第三方資料之地區環境分析資料。")
document = resourceToMultipartFile(dustResource)
.flatMap(documentService::add)
.orElse(Document.builder().build());
PrivacyPolicyReport dustPrivacyPolicyReport = PrivacyPolicyReport.builder()
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a")
.version("1.0")
.description("本APP會蒐集使用者周遭空氣品質作為第三方資料之地區環境分析資料。")
.device(dustDevice)
.policies(asList(dustPrivacyPolicy1))
.document(document)
.build();
privacyPolicyReportService.add(dustPrivacyPolicyReport);
//溫度模組
Device tempDevice = Device.builder()
.udn("40ceb1e7-6834-4e6a-9305-57348as38asc")
.name("DHT22 溫濕度模組")
.type(Device.Type.Sensor)
.manufacturer(Manufacturer.builder()
.name("台灣物聯科技")
.serialNumber("1234532545")
.url("https://www.taiwaniot.com.tw/")
.build())
.model(Model.builder()
.name("DHT22 溫濕度模組")
.description("DHT22溫濕度感測器是一款含有已校準數位信號輸出的溫濕度複合感測器," +
"它應用專用的數位模組採集技術和溫濕度傳感技術,來確保產品具有極高的可靠性與卓越的長期穩定性")
.url("https://www.taiwaniot.com.tw/product/dht22-%E6%BA%AB%E5%BA%A6%E6%A8%A1%E7%B5%84-%E6%BF%95%E5%BA%A6%E6%A8%A1%E7%B5%84-%E6%BA%AB%E6%BF%95%E5%BA%A6%E6%A8%A1%E7%B5%84-dht22/")
.build())
.upc("B0744D6C8X")
.location("25.013068, 121.541651")
.status(Device.Status.Disconnected)
.build();
deviceService.add(tempDevice);
PrivacyPolicy tempPrivacyPolicy1 = PrivacyPolicy.builder()
.id("abe5ca7b-780e-4857-87e6-014870fe00e1")
.description("本APP會蒐集使用者周遭溫度、濕度作為第三方資料之地區環境分析資料。")
.collector(Collector.builder()
.name("AirRadio")
.email("[email protected]")
......@@ -222,36 +358,129 @@ public class DefaultData implements ApplicationRunner {
.remedies(asList(Remedy.builder()
.type(Remedy.Type.LAW).build()))
.statements(asList(Statement.builder()
.consequence("a1252c49-4188-4e6d-a32e-66604c664fba")
.consequence("a1252c49-4188-4e6d-a32e-66604c6621f9")
.purposes(asList(Purpose.builder()
.type(Purpose.Type.PSEUDO_ANALYSIS)
.description("本APP會蒐集使用者周遭溫度作為第三方資料之地區環境分析資料。")
.build()))
.data(asList(Datum.builder()
.type(Datum.Type.OTHER_CATEGORY)
.description("室溫資料")
.description("溫度資料")
.build()))
.recipients(asList(Recipient.builder()
.entity("AirRadio")
.type(Recipient.Type.OURS)
.build()))
.retention(Retention.STATED_PURPOSE)
.build()))
.build();
.build(), Statement.builder()
.consequence("a1252c49-4188-4e6d-a32e-6204c63s1r9")
.purposes(asList(Purpose.builder()
.type(Purpose.Type.PSEUDO_ANALYSIS)
.description("本APP會蒐集使用者周遭濕度作為第三方資料之地區環境分析資料。")
.build()))
.data(asList(Datum.builder()
.type(Datum.Type.OTHER_CATEGORY)
.description("濕度資料")
.build()))
.recipients(asList(Recipient.builder()
.entity("AirRadio")
.type(Recipient.Type.OURS)
.build()))
.retention(Retention.STATED_PURPOSE)
.build()
)).build();
document = documentService.add(new MockMultipartFile("file", "test.txt",
"text/plain", "This is fake IOT Device testing file.".getBytes()))
document = resourceToMultipartFile(tempResource)
.flatMap(documentService::add)
.orElse(Document.builder().build());
PrivacyPolicyReport sensorPrivacyPolicyReport = PrivacyPolicyReport.builder()
PrivacyPolicyReport tempPrivacyPolicyReport = PrivacyPolicyReport.builder()
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a")
.version("1.0")
.description("本APP會蒐集使用者周遭溫度、濕度及空氣品質作為第三方資料之地區環境分析資料。")
.device(sensorDevice)
.policies(asList(sensorPrivacyPolicy1, sensorPrivacyPolicy2, sensorPrivacyPolicy3))
.description("本APP會蒐集使用者周遭周遭溫度、濕度作為第三方資料之地區環境分析資料。")
.device(tempDevice)
.policies(asList(tempPrivacyPolicy1))
.document(document)
.build();
privacyPolicyReportService.add(sensorPrivacyPolicyReport);
privacyPolicyReportService.add(tempPrivacyPolicyReport);
//氣體感測器
Device gasDevice = Device.builder()
.udn("40ceb1e7-6834-4e6a-9305-57348ast5asc")
.name("MQ-4 氣體感測器")
.type(Device.Type.Sensor)
.manufacturer(Manufacturer.builder()
.name("台灣物聯科技")
.serialNumber("1234532545")
.url("https://www.taiwaniot.com.tw/")
.build())
.model(Model.builder()
.name("DHT22 溫濕度模組")
.description("MQ-4氣體感測器所使用的氣敏材料是在清潔空氣中電導率較低的二氧化錫 (SnO2)。" +
"MQ-4氣體感測器對甲烷的靈敏度高,對丙烷、丁烷也有較好的靈敏度。" +
"這種感測器可檢測多種可燃性氣體,特別是天然氣,是一款適合多種應用的低成本感測器。")
.url("https://www.taiwaniot.com.tw/product/mq-4-ch4-%E5%A4%A9%E7%84%B6%E6%B0%A3%E3%80%81%E7%94%B2%E7%83%B7%E6%84%9F%E6%B8%AC%E5%99%A8%E6%A8%A1%E7%B5%84/")
.build())
.upc("B0744D6C8X")
.location("25.013068, 121.541651")
.status(Device.Status.Disconnected)
.build();
deviceService.add(gasDevice);
PrivacyPolicy gasPrivacyPolicy1 = PrivacyPolicy.builder()
.id("abe5ca7b-780e-4857-87e6-014642fe00e1")
.description("本APP會蒐集使用者周遭氣體作為第三方資料之地區環境分析資料。")
.collector(Collector.builder()
.name("AirRadio")
.email("[email protected]")
.phone("0987654177")
.build())
.access(Access.NON_IDENT)
.dispute(Dispute.builder()
.relatedOrganization("地方法院")
.type(Dispute.Type.LAW).build())
.remedies(asList(Remedy.builder()
.type(Remedy.Type.LAW).build()))
.statements(asList(Statement.builder()
.consequence("a1252c49-4188-4e6d-a32e-66604c6621f9")
.purposes(asList(Purpose.builder()
.type(Purpose.Type.PSEUDO_ANALYSIS)
.description("本APP會蒐集使用者周遭氣體作為第三方資料之地區環境分析資料。")
.build()))
.data(asList(Datum.builder()
.type(Datum.Type.OTHER_CATEGORY)
.description("氣體資料")
.build()))
.recipients(asList(Recipient.builder()
.entity("AirRadio")
.type(Recipient.Type.OURS)
.build()))
.retention(Retention.STATED_PURPOSE)
.build()))
.build();
PrivacyPolicyReport gasPrivacyPolicyReport = PrivacyPolicyReport.builder()
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a")
.version("1.0")
.description("本APP會蒐集使用者周遭周遭氣體作為第三方資料之地區環境分析資料。")
.device(gasDevice)
.policies(asList(gasPrivacyPolicy1))
.document(document)
.build();
privacyPolicyReportService.add(gasPrivacyPolicyReport);
}
private Optional<MockMultipartFile> resourceToMultipartFile(Resource resource) {
try {
File file = resource.getFile();
return Optional.of(new MockMultipartFile(file.getName(), file.getName(),
"application/pdf", new FileInputStream(file)));
} catch (IOException e) {
e.printStackTrace();
}
return Optional.empty();
}
}
\ No newline at end of file
......@@ -5,6 +5,7 @@ import edu.prlab.tyler.iotgateway.cloud.services.DocumentService;
import edu.prlab.tyler.iotgateway.cloud.services.PrivacyPolicyReportService;
import edu.prlab.tyler.iotgateway.cloud.util.CodeTools;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.core.io.Resource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
......@@ -35,15 +36,14 @@ public class DocumentController {
//透過裝置ID取得檔案
@GetMapping("/{udn}")
public ResponseEntity<ByteArrayResource> findFile(@PathVariable String udn) {
public ResponseEntity<Resource> findFile(@PathVariable String udn) {
return privacyPolicyReportService.readByDevice(udn)
.map(privacyReport -> privacyReport.getDocument().getId())
.flatMap(id -> documentService.readFile(id))
.map(document -> ResponseEntity.ok()
.contentType(MediaType.parseMediaType(document.getFileType()))
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename* = UTF-8''" + CodeTools.encode(document.getFileName()))
.body(new ByteArrayResource(document.getBytes())))
.body((Resource) new ByteArrayResource(document.getBytes())))
.orElseGet(() -> ResponseEntity.noContent().build());
}
}
......@@ -46,7 +46,7 @@ jar {
enabled = true
}
bootJar {
enabled = false
enabled = true
classifier = 'boot'
manifest {
attributes 'Start-Class': 'edu.prlab.tyler.iotgateway.gateway.GatewayApplication'
......
......@@ -2,7 +2,6 @@ package edu.prlab.tyler.iotgateway.gateway.controllers;
import edu.prlab.tyler.iotgateway.cloud.pojo.device.Device;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyChoice;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicyReport;
import edu.prlab.tyler.iotgateway.gateway.model.PrivacyChoiceResponse;
import edu.prlab.tyler.iotgateway.gateway.model.PrivacyPolicyReportResponse;
import edu.prlab.tyler.iotgateway.gateway.services.DeviceService;
......
......@@ -19,8 +19,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
@Service
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment