Commit de22d29d authored by 0Tyler's avatar 0Tyler

getPrivacyPolicyReportResponse

parent 1a3f8353
...@@ -7,17 +7,27 @@ ...@@ -7,17 +7,27 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="d3a5f2c9-d22f-4974-88fb-d506b4e5feaf" name="Default Changelist" comment=""> <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 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$/.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/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/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/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/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$/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/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/util/CodeTools.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.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$/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$/gateway/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build.gradle" afterDir="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/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/repositories/DeviceIndexRepository.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/DeviceIndexRepository.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.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/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" /> <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> </list>
<ignored path="$PROJECT_DIR$/out/" /> <ignored path="$PROJECT_DIR$/out/" />
...@@ -142,11 +152,11 @@ ...@@ -142,11 +152,11 @@
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="true">
<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/services/PrivacyService.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="483"> <state relative-caret-position="389">
<caret line="66" column="55" selection-start-line="66" selection-start-column="55" selection-end-line="66" selection-end-column="55" /> <caret line="65" column="5" lean-forward="true" selection-start-line="65" selection-start-column="5" selection-end-line="65" selection-end-column="5" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
...@@ -155,67 +165,68 @@ ...@@ -155,67 +165,68 @@
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="810"> <state relative-caret-position="288">
<caret line="57" column="122" lean-forward="true" selection-start-line="57" selection-start-column="122" selection-end-line="57" selection-end-column="122" /> <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> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="328"> <state relative-caret-position="468">
<caret line="119" column="38" selection-start-line="119" selection-start-column="38" selection-end-line="119" selection-end-column="38" /> <caret line="34" column="20" selection-start-line="34" selection-start-column="20" selection-end-line="34" selection-end-column="20" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="true"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72"> <state relative-caret-position="162">
<caret line="92" column="58" lean-forward="true" selection-start-line="92" selection-start-column="58" selection-end-line="92" selection-end-column="58" /> <caret line="21" column="13" selection-start-line="21" selection-start-column="13" selection-end-line="21" selection-end-column="13" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <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"> <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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288"> <state relative-caret-position="365">
<caret line="22" column="18" lean-forward="true" selection-start-line="22" selection-start-column="18" selection-end-line="22" selection-end-column="18" /> <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> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <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/model/PrivacyChoiceResponse.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="303"> <state relative-caret-position="72">
<caret line="27" column="16" selection-start-line="27" selection-start-column="12" selection-end-line="27" selection-end-column="16" /> <caret line="10" column="4" selection-start-line="10" selection-start-column="4" selection-end-line="10" selection-end-column="4" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1440"> <state relative-caret-position="255">
<caret line="125" column="8" lean-forward="true" selection-start-line="125" selection-start-column="8" selection-end-line="125" selection-end-column="8" /> <caret line="25" column="1" lean-forward="true" selection-start-line="25" selection-start-column="1" selection-end-line="25" selection-end-column="1" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186"> <state relative-caret-position="72">
<caret line="180" column="34" selection-start-line="180" selection-start-column="30" selection-end-line="180" selection-end-column="34" /> <caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
</state> </state>
</provider> </provider>
</entry> </entry>
...@@ -223,17 +234,17 @@ ...@@ -223,17 +234,17 @@
<file pinned="false" current-in-tab="false"> <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$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="342"> <state relative-caret-position="272">
<caret line="47" column="30" selection-start-line="47" selection-start-column="30" selection-end-line="47" selection-end-column="30" /> <caret line="42" column="41" selection-start-line="42" selection-start-column="41" selection-end-line="42" selection-end-column="41" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="492"> <state relative-caret-position="95">
<caret line="37" lean-forward="true" selection-start-line="37" selection-end-line="37" /> <caret line="356" column="45" selection-start-line="356" selection-start-column="33" selection-end-line="356" selection-end-column="45" />
</state> </state>
</provider> </provider>
</entry> </entry>
...@@ -250,17 +261,6 @@ ...@@ -250,17 +261,6 @@
</component> </component>
<component name="FindInProjectRecents"> <component name="FindInProjectRecents">
<findStrings> <findStrings>
<find>transactionReceipt</find>
<find>ClientTransactionManager</find>
<find>DeviceManager</find>
<find>Wallet</find>
<find>getGas</find>
<find>gas</find>
<find>personalunlock</find>
<find>the</find>
<find>PrivacyPolicyReport</find>
<find>exchange</find>
<find>readByUDN</find>
<find>SensitiveUser</find> <find>SensitiveUser</find>
<find>PrivacyChoiceIndexRepository</find> <find>PrivacyChoiceIndexRepository</find>
<find>TypeReference</find> <find>TypeReference</find>
...@@ -280,6 +280,17 @@ ...@@ -280,6 +280,17 @@
<find>DeviceIndexRepository</find> <find>DeviceIndexRepository</find>
<find>existsByAccount</find> <find>existsByAccount</find>
<find>user</find> <find>user</find>
<find>Collectors</find>
<find>readPrivacyChoices</find>
<find>getPrivacyPolicyChoicesByAccount</find>
<find>setPrivacyPolicyChoice</find>
<find>PrivacyChoiceResponse</find>
<find>choice</find>
<find>Policy</find>
<find>hash</find>
<find>collection</find>
<find>HashMap</find>
<find>List&lt;Boolean&gt;</find>
</findStrings> </findStrings>
<replaceStrings> <replaceStrings>
<replace>cloud</replace> <replace>cloud</replace>
...@@ -290,6 +301,8 @@ ...@@ -290,6 +301,8 @@
<replace>DeviceContract</replace> <replace>DeviceContract</replace>
<replace>Account</replace> <replace>Account</replace>
<replace>service</replace> <replace>service</replace>
<replace>List</replace>
<replace>HashMap&lt;Integer, Boolean&gt;</replace>
</replaceStrings> </replaceStrings>
</component> </component>
<component name="Git.Settings"> <component name="Git.Settings">
...@@ -298,12 +311,6 @@ ...@@ -298,12 +311,6 @@
<component name="IdeDocumentHistory"> <component name="IdeDocumentHistory">
<option name="CHANGED_PATHS"> <option name="CHANGED_PATHS">
<list> <list>
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/privacy/PrivacyContent.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/repositories/PrivacyChoiceIndexRepository.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/auth/User.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/auth/SensitiveUser.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/UserRepository.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/UserService.java" /> <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/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/pojo/privacy/PrivacyPolicy.java" />
...@@ -318,37 +325,43 @@ ...@@ -318,37 +325,43 @@
<option value="$PROJECT_DIR$/contract/build.gradle" /> <option value="$PROJECT_DIR$/contract/build.gradle" />
<option value="$PROJECT_DIR$/build.gradle" /> <option value="$PROJECT_DIR$/build.gradle" />
<option value="$PROJECT_DIR$/gateway/settings.gradle" /> <option value="$PROJECT_DIR$/gateway/settings.gradle" />
<option value="$PROJECT_DIR$/gateway/build.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/pojo/document.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyChoiceRepository.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyChoiceService.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/CloudApplication.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/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/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/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyPolicyReportRepository.java" />
<option value="$PROJECT_DIR$/cloud/src/main/resources/application.properties" /> <option value="$PROJECT_DIR$/cloud/src/main/resources/application.properties" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTool.java" /> <option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTool.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java" />
<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/services/CrudService.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.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/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/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/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/config/DefaultData.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DeviceController.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.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/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/util/ThrowingFunction.java" />
<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/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/GatewayContractTester.java" />
<option value="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/DeviceContractTester.java" /> <option value="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/DeviceContractTester.java" />
<option value="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/DeviceIndexRepository.java" /> <option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/DeviceIndexRepository.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java" /> <option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java" /> <option value="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.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/controllers/DeviceController.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyPolicyReportService.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyChoiceRepository.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyChoiceService.java" />
<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/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/services/PrivacyService.java" />
</list> </list>
</option> </option>
</component> </component>
...@@ -426,7 +439,7 @@ ...@@ -426,7 +439,7 @@
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" /> <item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" /> <item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" /> <item name="controllers" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
...@@ -437,86 +450,93 @@ ...@@ -437,86 +450,93 @@
<item name="java" type="462c0819:PsiDirectoryNode" /> <item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" /> <item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" /> <item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="privacy" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" /> <item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="auth" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" /> <item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" /> <item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="device" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" /> <item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" /> <item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" /> <item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="privacy" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="cloud" 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="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="privacy" type="462c0819:PsiDirectoryNode" />
<item name="p3p" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" /> <item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" /> <item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="repositories" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" /> <item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" /> <item name="java" type="462c0819:PsiDirectoryNode" />
<item name="contract" type="462c0819:PsiDirectoryNode" /> <item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="services" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" /> <item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" /> <item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="util" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" /> <item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" /> <item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" /> <item name="java" type="462c0819:PsiDirectoryNode" />
...@@ -524,11 +544,11 @@ ...@@ -524,11 +544,11 @@
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" /> <item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" /> <item name="java" type="462c0819:PsiDirectoryNode" />
<item name="contract" type="462c0819:PsiDirectoryNode" /> <item name="cloud" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
...@@ -585,6 +605,16 @@ ...@@ -585,6 +605,16 @@
<item name="gateway" type="462c0819:PsiDirectoryNode" /> <item name="gateway" type="462c0819:PsiDirectoryNode" />
<item name="controllers" type="462c0819:PsiDirectoryNode" /> <item name="controllers" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="gateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="gateway" type="462c0819:PsiDirectoryNode" />
<item name="model" type="462c0819:PsiDirectoryNode" />
</path>
<path> <path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" /> <item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
...@@ -848,8 +878,8 @@ ...@@ -848,8 +878,8 @@
<recent_temporary> <recent_temporary>
<list> <list>
<item itemvalue="JUnit.GatewayHttpApiTest" /> <item itemvalue="JUnit.GatewayHttpApiTest" />
<item itemvalue="JUnit.DeviceContractTester" />
<item itemvalue="JUnit.CloudHttpApiTest" /> <item itemvalue="JUnit.CloudHttpApiTest" />
<item itemvalue="JUnit.DeviceContractTester" />
<item itemvalue="Gradle.iotgateway:cloud [build]" /> <item itemvalue="Gradle.iotgateway:cloud [build]" />
<item itemvalue="Gradle.iotgateway:cloud [test]" /> <item itemvalue="Gradle.iotgateway:cloud [test]" />
</list> </list>
...@@ -872,7 +902,7 @@ ...@@ -872,7 +902,7 @@
<workItem from="1557365602468" duration="84502000" /> <workItem from="1557365602468" duration="84502000" />
<workItem from="1557987857812" duration="17623000" /> <workItem from="1557987857812" duration="17623000" />
<workItem from="1558076620952" duration="30942000" /> <workItem from="1558076620952" duration="30942000" />
<workItem from="1558531083647" duration="16287000" /> <workItem from="1558531083647" duration="61544000" />
</task> </task>
<task id="LOCAL-00001" summary="git init"> <task id="LOCAL-00001" summary="git init">
<created>1556204675975</created> <created>1556204675975</created>
...@@ -1021,43 +1051,50 @@ ...@@ -1021,43 +1051,50 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1558351290198</updated> <updated>1558351290198</updated>
</task> </task>
<option name="localTasksCounter" value="22" /> <task id="LOCAL-00022" summary="gateway:DeviceService:addfilter &amp; gateway:PrivacyService:addfilter">
<created>1558604238984</created>
<option name="number" value="00022" />
<option name="presentableId" value="LOCAL-00022" />
<option name="project" value="LOCAL" />
<updated>1558604238984</updated>
</task>
<option name="localTasksCounter" value="23" />
<servers /> <servers />
</component> </component>
<component name="TestHistory"> <component name="TestHistory">
<history-entry file="CloudHttpApiTest - 2019.05.22 at 21h 55m 06s.xml"> <history-entry file="GatewayHttpApiTest - 2019.05.27 at 16h 02m 38s.xml">
<configuration name="CloudHttpApiTest" configurationId="JUnit" /> <configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry> </history-entry>
<history-entry file="DeviceContractTester - 2019.05.23 at 14h 41m 23s.xml"> <history-entry file="GatewayHttpApiTest - 2019.05.27 at 16h 06m 24s.xml">
<configuration name="DeviceContractTester" configurationId="JUnit" /> <configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry> </history-entry>
<history-entry file="DeviceContractTester - 2019.05.23 at 14h 42m 56s.xml"> <history-entry file="GatewayHttpApiTest - 2019.05.27 at 16h 07m 01s.xml">
<configuration name="DeviceContractTester" configurationId="JUnit" /> <configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry> </history-entry>
<history-entry file="GatewayContractTester - 2019.05.23 at 15h 17m 09s.xml"> <history-entry file="GatewayHttpApiTest - 2019.05.27 at 16h 31m 05s.xml">
<configuration name="GatewayContractTester" configurationId="JUnit" /> <configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry> </history-entry>
<history-entry file="GatewayContractTester - 2019.05.23 at 15h 17m 53s.xml"> <history-entry file="GatewayHttpApiTest - 2019.05.28 at 13h 54m 15s.xml">
<configuration name="GatewayContractTester" configurationId="JUnit" /> <configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry> </history-entry>
<history-entry file="DeviceContractTester - 2019.05.23 at 15h 36m 13s.xml"> <history-entry file="GatewayHttpApiTest - 2019.05.28 at 14h 07m 53s.xml">
<configuration name="DeviceContractTester" configurationId="JUnit" /> <configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry> </history-entry>
<history-entry file="ContractTester - 2019.05.23 at 15h 38m 16s.xml"> <history-entry file="GatewayHttpApiTest - 2019.05.28 at 14h 36m 33s.xml">
<configuration name="ContractTester" configurationId="JUnit" /> <configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry> </history-entry>
<history-entry file="GatewayHttpApiTest - 2019.05.23 at 17h 14m 20s.xml"> <history-entry file="GatewayHttpApiTest - 2019.05.28 at 14h 36m 57s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" /> <configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry> </history-entry>
<history-entry file="GatewayHttpApiTest - 2019.05.23 at 17h 32m 02s.xml"> <history-entry file="GatewayHttpApiTest - 2019.05.28 at 14h 43m 43s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" /> <configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry> </history-entry>
<history-entry file="GatewayHttpApiTest - 2019.05.23 at 17h 32m 39s.xml"> <history-entry file="GatewayHttpApiTest - 2019.05.28 at 15h 24m 06s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" /> <configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry> </history-entry>
</component> </component>
<component name="TimeTrackingManager"> <component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="247269000" /> <option name="totallyTimeSpent" value="292526000" />
</component> </component>
<component name="TodoView"> <component name="TodoView">
<todo-panel id="selected-file"> <todo-panel id="selected-file">
...@@ -1070,18 +1107,19 @@ ...@@ -1070,18 +1107,19 @@
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" /> <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
<editor active="true" />
<layout> <layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.2228145" /> <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.19189766" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Designer" order="2" /> <window_info id="Designer" order="2" />
<window_info id="UI Designer" order="3" /> <window_info id="UI Designer" order="3" />
<window_info id="Favorites" order="4" side_tool="true" /> <window_info id="Favorites" order="4" side_tool="true" />
<window_info id="Web" order="5" 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.41759464" /> <window_info anchor="bottom" id="Run Dashboard" order="0" sideWeight="0.49946696" weight="0.30734965" />
<window_info anchor="bottom" id="Messages" order="1" sideWeight="0.49733475" weight="0.2806236" /> <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="Message" order="2" />
<window_info anchor="bottom" id="Find" order="3" sideWeight="0.4989339" weight="0.43541202" /> <window_info anchor="bottom" id="Find" order="3" sideWeight="0.4989339" weight="0.43541202" />
<window_info anchor="bottom" id="Run" order="4" sideWeight="0.49840087" visible="true" weight="0.33296213" /> <window_info active="true" anchor="bottom" id="Run" order="4" sideWeight="0.49840087" visible="true" weight="0.19042316" />
<window_info anchor="bottom" id="Debug" order="5" weight="0.2962138" /> <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="Cvs" order="6" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="7" weight="0.4" /> <window_info anchor="bottom" id="Inspection" order="7" weight="0.4" />
...@@ -1125,7 +1163,8 @@ ...@@ -1125,7 +1163,8 @@
<MESSAGE value="getPrivacyPolicyChoices function change" /> <MESSAGE value="getPrivacyPolicyChoices function change" />
<MESSAGE value="RemoteService" /> <MESSAGE value="RemoteService" />
<MESSAGE value="document controller" /> <MESSAGE value="document controller" />
<option name="LAST_COMMIT_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" />
</component> </component>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager> <breakpoint-manager>
...@@ -1152,273 +1191,258 @@ ...@@ -1152,273 +1191,258 @@
</breakpoint-manager> </breakpoint-manager>
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java"> <entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DocumentRepository.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="324"> <state relative-caret-position="90">
<caret line="18" column="20" lean-forward="true" selection-start-line="18" selection-start-column="20" selection-end-line="18" selection-end-column="20" /> <caret line="9" column="17" selection-start-line="9" selection-start-column="17" selection-end-line="9" selection-end-column="17" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java"> <entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyPolicyReportService.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="486"> <state relative-caret-position="432">
<caret line="35" column="30" selection-start-line="35" selection-start-column="30" selection-end-line="35" selection-end-column="30" /> <caret line="29" selection-start-line="29" selection-end-line="29" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/function/Function.java"> <entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyChoiceRepository.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306"> <state relative-caret-position="126">
<caret line="40" column="17" selection-start-line="40" selection-start-column="17" selection-end-line="40" selection-end-column="17" /> <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> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/io/UnsupportedEncodingException.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="414"> <state relative-caret-position="414">
<caret line="48" column="11" selection-start-line="48" selection-start-column="11" selection-end-line="48" selection-end-column="11" /> <caret line="31" column="5" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" />
<folding>
<element signature="e#830#831#0" expanded="true" />
<element signature="e#854#855#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/CrudService.java"> <entry file="file://$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306"> <state relative-caret-position="357">
<caret line="25" column="1" lean-forward="true" selection-start-line="25" selection-start-column="1" selection-end-line="25" selection-end-column="1" /> <caret line="222" selection-start-line="222" selection-end-line="222" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DeviceService.java"> <entry file="file://$PROJECT_DIR$/gateway/build.gradle">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288"> <state relative-caret-position="99">
<caret line="23" lean-forward="true" selection-start-line="23" selection-end-line="23" /> <caret line="39" selection-start-line="39" selection-end-line="39" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270"> <state relative-caret-position="448">
<caret line="23" column="33" selection-start-line="23" selection-start-column="33" selection-end-line="23" selection-end-column="33" /> <caret line="63" column="5" lean-forward="true" selection-start-line="63" selection-start-column="5" selection-end-line="63" selection-end-column="5" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyChoiceService.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="252">
<caret line="22" selection-start-line="22" selection-end-line="22" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyPolicyReportService.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180"> <state relative-caret-position="320">
<caret line="15" selection-start-line="15" selection-end-line="15" /> <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> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-web/5.1.6.RELEASE/dfb9e2cce0376ed468b6988b88a08fa7fb43f355/spring-web-5.1.6.RELEASE-sources.jar!/org/springframework/http/ResponseEntity.java"> <entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayApplicationTests.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="137"> <state relative-caret-position="108">
<caret line="72" column="13" selection-start-line="72" selection-start-column="13" selection-end-line="72" selection-end-column="13" /> <caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-web/5.1.6.RELEASE/dfb9e2cce0376ed468b6988b88a08fa7fb43f355/spring-web-5.1.6.RELEASE-sources.jar!/org/springframework/http/CacheControl.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/Iterables.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255"> <state relative-caret-position="217">
<caret line="126" column="42" selection-start-line="126" selection-start-column="30" selection-end-line="126" selection-end-column="42" /> <caret line="987" column="36" lean-forward="true" selection-start-line="987" selection-start-column="36" selection-end-line="987" selection-end-column="36" />
<folding>
<element signature="e#33819#33820#0" expanded="true" />
<element signature="e#33861#33862#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DeviceController.java"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/DeviceIndex.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-474"> <state relative-caret-position="180">
<caret line="14" column="13" selection-start-line="14" selection-start-column="13" selection-end-line="14" selection-end-column="13" /> <caret line="16" column="7" lean-forward="true" selection-start-line="16" selection-start-column="7" selection-end-line="16" selection-end-column="7" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="504"> <state relative-caret-position="302">
<caret line="43" column="1" lean-forward="true" selection-start-line="43" selection-start-column="1" selection-end-line="43" selection-end-column="1" /> <caret line="22" column="19" selection-start-line="22" selection-start-column="19" selection-end-line="22" selection-end-column="19" />
<folding>
<element signature="e#550#551#0" expanded="true" />
<element signature="e#588#589#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/net/URLEncoder.java"> <entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/String.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="182"> <state relative-caret-position="311">
<caret line="199" column="25" selection-start-line="199" selection-start-column="25" selection-end-line="199" selection-end-column="25" /> <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> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/Throwable.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1492"> <state relative-caret-position="90">
<caret line="113" column="13" selection-start-line="113" selection-start-column="13" selection-end-line="113" selection-end-column="13" /> <caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/ThrowingFunction.java"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/config/RemoteConfig.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306"> <state relative-caret-position="90">
<caret line="17" lean-forward="true" selection-start-line="17" selection-end-line="17" /> <caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
</state> </state>
</provider> </provider>
</entry> </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/UserService.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180"> <state relative-caret-position="278">
<caret line="10" column="31" selection-start-line="10" selection-start-column="25" selection-end-line="10" selection-end-column="31" /> <caret line="28" column="14" lean-forward="true" selection-start-line="28" selection-start-column="14" selection-end-line="28" selection-end-column="14" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/ContractApplication.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90"> <state relative-caret-position="90">
<caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" /> <caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/DeviceContract.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1099"> <state relative-caret-position="108">
<caret line="40" column="50" lean-forward="true" selection-start-line="40" selection-start-column="50" selection-end-line="40" selection-end-column="50" /> <caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/GatewayContract.java"> <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">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="215"> <state relative-caret-position="158">
<caret line="35" column="13" selection-start-line="35" selection-start-column="13" selection-end-line="35" selection-end-column="13" /> <caret line="53" column="16" selection-start-line="53" selection-start-column="16" selection-end-line="53" selection-end-column="16" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/contract/src/main/resources/application.properties"> <entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/PrivacyChoiceIndexRepository.java">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="572"> <state relative-caret-position="90">
<caret line="47" lean-forward="true" selection-start-line="47" selection-end-line="47" /> <caret line="7" column="75" lean-forward="true" selection-start-line="7" selection-start-column="75" selection-end-line="7" selection-end-column="75" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/core/4.0.4/f5bd332fb36b9e947967c930de1177a404ca1b2d/core-4.0.4-sources.jar!/org/web3j/tx/ClientTransactionManager.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126"> <state relative-caret-position="1638">
<caret line="13" column="54" selection-start-line="13" selection-start-column="54" selection-end-line="13" selection-end-column="54" /> <caret line="115" lean-forward="true" selection-start-line="115" selection-end-line="115" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/GatewayContractTester.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="388"> <state relative-caret-position="252">
<caret line="31" selection-start-line="31" selection-end-line="31" /> <caret line="125" column="58" selection-start-line="125" selection-start-column="22" selection-end-line="125" selection-end-column="58" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/core/4.0.4/f5bd332fb36b9e947967c930de1177a404ca1b2d/core-4.0.4-sources.jar!/org/web3j/protocol/core/Response.java"> <entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1061"> <state relative-caret-position="311">
<caret line="16" column="21" lean-forward="true" selection-start-line="16" selection-start-column="21" selection-end-line="16" selection-end-column="21" /> <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> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/core/4.0.4/f5bd332fb36b9e947967c930de1177a404ca1b2d/core-4.0.4-sources.jar!/org/web3j/protocol/core/methods/response/EthGetTransactionReceipt.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126"> <state relative-caret-position="162">
<caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" /> <caret line="15" column="13" selection-start-line="15" selection-start-column="13" selection-end-line="15" selection-end-column="13" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/core/4.0.4/f5bd332fb36b9e947967c930de1177a404ca1b2d/core-4.0.4-sources.jar!/org/web3j/protocol/core/methods/response/TransactionReceipt.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-990"> <state relative-caret-position="342">
<caret line="26" column="28" selection-start-line="26" selection-start-column="19" selection-end-line="26" selection-end-column="28" /> <caret line="27" column="5" selection-start-line="27" selection-start-column="5" selection-end-line="27" selection-end-column="5" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudApplicationTests.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108"> <state relative-caret-position="198">
<caret line="13" column="13" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" /> <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> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/PrivacyChoiceIndex.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162"> <state relative-caret-position="199">
<caret line="16" column="13" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" /> <caret line="114" column="17" selection-start-line="114" selection-start-column="8" selection-end-line="114" selection-end-column="17" />
</state> </state>
</provider> </provider>
</entry> </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="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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="210"> <state relative-caret-position="306">
<caret line="35" column="20" selection-start-line="35" selection-start-column="20" selection-end-line="35" selection-end-column="20" /> <caret line="40" column="15" selection-start-line="40" selection-start-column="15" selection-end-line="40" selection-end-column="15" />
</state> </state>
</provider> </provider>
</entry> </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/org.projectlombok/lombok/1.18.6/2908ec27909c1929a9f2e031e4ae27e54d268860/lombok-1.18.6-sources.jar!/lombok/EqualsAndHashCode.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90"> <state relative-caret-position="181">
<caret line="7" column="17" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" /> <caret line="59" column="85" selection-start-line="59" selection-start-column="77" selection-end-line="59" selection-end-column="85" />
</state> </state>
</provider> </provider>
</entry> </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/util/Collection.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162"> <state relative-caret-position="408">
<caret line="15" column="20" lean-forward="true" selection-start-line="15" selection-start-column="20" selection-end-line="15" selection-end-column="20" /> <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> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayApplicationTests.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/MapMaker.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108"> <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" /> <caret line="88" column="19" selection-start-line="88" selection-start-column="19" selection-end-line="88" selection-end-column="19" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/config/RemoteConfig.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90"> <state relative-caret-position="272">
<caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" /> <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> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/config/DefaultData.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90"> <state relative-caret-position="261">
<caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" /> <caret line="806" column="13" selection-start-line="806" selection-start-column="13" selection-end-line="806" selection-end-column="13" />
</state> </state>
</provider> </provider>
</entry> </entry>
...@@ -1429,114 +1453,150 @@ ...@@ -1429,114 +1453,150 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/UserController.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="414"> <state relative-caret-position="439">
<caret line="31" column="5" lean-forward="true" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" /> <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> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/auth/User.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288"> <state relative-caret-position="251">
<caret line="21" lean-forward="true" selection-start-line="21" selection-end-line="21" /> <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> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/DeviceIndexRepository.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90"> <state relative-caret-position="209">
<caret line="7" column="17" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" /> <caret line="51" column="19" selection-start-line="51" selection-start-column="19" selection-end-line="51" selection-end-column="19" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/UserRepository.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108"> <state relative-caret-position="209">
<caret line="8" column="27" selection-start-line="8" selection-start-column="12" selection-end-line="8" selection-end-column="27" /> <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> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/UserService.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="267"> <state relative-caret-position="522">
<caret line="23" column="74" selection-start-line="23" selection-start-column="16" selection-end-line="23" selection-end-column="74" /> <caret line="37" selection-start-line="37" selection-end-line="37" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="492"> <state relative-caret-position="276">
<caret line="37" lean-forward="true" selection-start-line="37" selection-end-line="37" /> <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> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="342"> <state relative-caret-position="-8804">
<caret line="47" column="30" selection-start-line="47" selection-start-column="30" selection-end-line="47" selection-end-column="30" /> <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> </state>
</provider> </provider>
</entry> </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/model/PrivacyChoiceResponse.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288"> <state relative-caret-position="72">
<caret line="22" column="18" lean-forward="true" selection-start-line="22" selection-start-column="18" selection-end-line="22" selection-end-column="18" /> <caret line="10" column="4" selection-start-line="10" selection-start-column="4" selection-end-line="10" selection-end-column="4" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyContent.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="303"> <state relative-caret-position="95">
<caret line="27" column="16" selection-start-line="27" selection-start-column="12" selection-end-line="27" selection-end-column="16" /> <caret line="356" column="45" selection-start-line="356" selection-start-column="33" selection-end-line="356" selection-end-column="45" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186"> <state relative-caret-position="272">
<caret line="180" column="34" selection-start-line="180" selection-start-column="30" selection-end-line="180" selection-end-column="34" /> <caret line="42" column="41" selection-start-line="42" selection-start-column="41" selection-end-line="42" selection-end-column="41" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1440"> <state relative-caret-position="365">
<caret line="125" column="8" lean-forward="true" selection-start-line="125" selection-start-column="8" selection-end-line="125" selection-end-column="8" /> <caret line="1209" column="30" selection-start-line="1209" selection-start-column="30" selection-end-line="1209" selection-end-column="30" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="e#33990#33991#0" expanded="true" />
<element signature="e#34045#34046#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </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/model/PrivacyPolicyReportResponse.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="483"> <state relative-caret-position="255">
<caret line="66" column="55" selection-start-line="66" selection-start-column="55" selection-end-line="66" selection-end-column="55" /> <caret line="25" column="1" lean-forward="true" selection-start-line="25" selection-start-column="1" selection-end-line="25" selection-end-column="1" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="328"> <state relative-caret-position="72">
<caret line="119" column="38" selection-start-line="119" selection-start-column="38" selection-end-line="119" selection-end-column="38" /> <caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="810"> <state relative-caret-position="288">
<caret line="57" column="122" lean-forward="true" selection-start-line="57" selection-start-column="122" selection-end-line="57" selection-end-column="122" /> <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> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72"> <state relative-caret-position="468">
<caret line="92" column="58" lean-forward="true" selection-start-line="92" selection-start-column="58" selection-end-line="92" selection-end-column="58" /> <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/pojo/privacy/PrivacyPolicy.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>
</provider>
</entry>
<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="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" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
......
...@@ -56,9 +56,9 @@ public class DeviceController { ...@@ -56,9 +56,9 @@ public class DeviceController {
} }
//透過UDN讀取PrivacyPolicyReport //透過UDN讀取PrivacyPolicyReport
@GetMapping("/privacy/{UDN}") @GetMapping("/privacy/{udn}")
public ResponseEntity<PrivacyPolicyReport> readPrivacyPolicyReportByDevice(@PathVariable(value = "UDN") String UDN) { public ResponseEntity<PrivacyPolicyReport> readPrivacyPolicyReportByDevice(@PathVariable(value = "udn") String udn) {
return privacyPolicyReportService.readByDevice(UDN) return privacyPolicyReportService.readByDevice(udn)
.map(ResponseEntity::ok) .map(ResponseEntity::ok)
.orElseGet(()->ResponseEntity.noContent().build()); .orElseGet(()->ResponseEntity.noContent().build());
} }
......
package edu.prlab.tyler.iotgateway.cloud.controllers; package edu.prlab.tyler.iotgateway.cloud.controllers;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyChoice; import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyChoice;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyContent;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicy;
import edu.prlab.tyler.iotgateway.cloud.services.PrivacyChoiceService; import edu.prlab.tyler.iotgateway.cloud.services.PrivacyChoiceService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
......
...@@ -20,7 +20,6 @@ public class PrivacyContent { ...@@ -20,7 +20,6 @@ public class PrivacyContent {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id; private long id;
@OneToOne(cascade = CascadeType.ALL) @OneToOne(cascade = CascadeType.ALL)
......
package edu.prlab.tyler.iotgateway.cloud.repositories; package edu.prlab.tyler.iotgateway.cloud.repositories;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyChoice; import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyChoice;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyContent;
import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.Optional;
@Repository @Repository
public interface PrivacyChoiceRepository extends CrudRepository<PrivacyChoice, Long> { public interface PrivacyChoiceRepository extends CrudRepository<PrivacyChoice, Long> {
Optional<Iterable<PrivacyChoice>> findPrivacyChoicesByPrivacyContent(PrivacyContent privacyContent);
} }
package edu.prlab.tyler.iotgateway.cloud.services; package edu.prlab.tyler.iotgateway.cloud.services;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyChoice; import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyChoice;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicy;
import edu.prlab.tyler.iotgateway.cloud.repositories.PrivacyChoiceRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -9,16 +11,19 @@ import java.util.Optional; ...@@ -9,16 +11,19 @@ import java.util.Optional;
import java.util.stream.StreamSupport; import java.util.stream.StreamSupport;
@Service @Service
public class PrivacyChoiceService extends CrudService<PrivacyChoice, Long>{ public class PrivacyChoiceService extends CrudService<PrivacyChoice, Long> {
private PrivacyChoiceRepository privacyChoiceRepository;
@Autowired @Autowired
public PrivacyChoiceService(CrudRepository<PrivacyChoice, Long> repository) { public PrivacyChoiceService(CrudRepository<PrivacyChoice, Long> repository,
PrivacyChoiceRepository privacyChoiceRepository) {
super(repository); super(repository);
this.privacyChoiceRepository = privacyChoiceRepository;
} }
public Iterable<PrivacyChoice> readPrivacyChoiceByDevice(String udn) { public Iterable<PrivacyChoice> readPrivacyChoiceByDevice(String udn) {
return ()-> StreamSupport.stream(readll().spliterator(),false) return () -> StreamSupport.stream(readll().spliterator(), false)
.filter(choice->choice.getPrivacyContent().getDevice().getUdn().equals(udn)) .filter(choice -> choice.getPrivacyContent().getDevice().getUdn().equals(udn))
.iterator(); .iterator();
} }
} }
...@@ -220,5 +220,6 @@ public class CloudHttpApiTest { ...@@ -220,5 +220,6 @@ public class CloudHttpApiTest {
new TypeReference<Iterable<PrivacyChoice>>(){}); new TypeReference<Iterable<PrivacyChoice>>(){});
Assert.assertNotNull(privacyChoices); Assert.assertNotNull(privacyChoices);
} }
} }
...@@ -71,27 +71,6 @@ public class ContractTester { ...@@ -71,27 +71,6 @@ public class ContractTester {
String privacyPolicy = deviceContract.privacypolicy().send(); String privacyPolicy = deviceContract.privacypolicy().send();
Assert.assertNotNull(privacyPolicy); Assert.assertNotNull(privacyPolicy);
System.out.println(privacyPolicy); System.out.println(privacyPolicy);
//TODO CANNOT BIND
//Gateway
// GatewayContract gatewayContract = GatewayContract.deploy(quorum, manager, DEFAULT_GAS_PROVIDER).send();
// Assert.assertNotNull(gatewayContract);
// gateWayContractAddress = gatewayContract.getContractAddress();
// System.out.println("gatewayContract Address:" + gateWayContractAddress);
//
// receipt = deviceContract.setBuyer(gatewayContract.getContractAddress()).send();
// Assert.assertNotNull(receipt);
//
// Quorum quorum1 = Quorum.build(new HttpService(rpcUrl));
// String userAddress1 = quorum1.ethAccounts().send().getAccounts().get(quorum1.ethAccounts().send().getAccounts().size() - 1);
// ClientTransactionManager manager1 = new ClientTransactionManager(quorum1, userAddress1);
//
// System.out.println("deviceContractAddress" + deviceContractAddress);
// DeviceContract deviceContract1 = DeviceContract.load(deviceContractAddress, quorum1, manager1, DEFAULT_GAS_PROVIDER);
// System.out.println("deviceContractAddress" + gateWayContractAddress);
// receipt = deviceContract1.bindReq(gateWayContractAddress).send();
// Assert.assertNotNull(receipt);
// //
// String bindedString = deviceContract1.getBondDevice().send(); // String bindedString = deviceContract1.getBondDevice().send();
// Assert.assertNotNull(bindedString); // Assert.assertNotNull(bindedString);
...@@ -120,9 +99,20 @@ public class ContractTester { ...@@ -120,9 +99,20 @@ public class ContractTester {
Assert.assertNotNull(receipt); Assert.assertNotNull(receipt);
System.out.println(receipt); System.out.println(receipt);
//綁定裝置
System.out.println("綁定裝置");
receipt = gatewayContract.bindRequest(deviceContractAddress).send(); receipt = gatewayContract.bindRequest(deviceContractAddress).send();
Assert.assertNotNull(receipt); Assert.assertNotNull(receipt);
System.out.println(receipt); System.out.println(receipt);
//取得綁定裝置個數
BigInteger deviceNum = gatewayContract.numDevices().send();
Assert.assertNotNull(deviceNum);
System.out.println(deviceNum);
//取得第i個裝置的Address
String deviceAddress = gatewayContract.getDeviceAddress(BigInteger.ONE).send();
Assert.assertNotNull(deviceAddress);
System.out.println(deviceAddress);
} }
} }
...@@ -2,6 +2,7 @@ buildscript { ...@@ -2,6 +2,7 @@ buildscript {
ext { ext {
springBootVersion = '2.1.4.RELEASE' springBootVersion = '2.1.4.RELEASE'
mapstructVersion = '1.3.0.Final' mapstructVersion = '1.3.0.Final'
guavaVersion = '27.1-jre'
} }
repositories { repositories {
mavenCentral() mavenCentral()
...@@ -34,6 +35,7 @@ dependencies { ...@@ -34,6 +35,7 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-web'
implementation "org.mapstruct:mapstruct:${mapstructVersion}" implementation "org.mapstruct:mapstruct:${mapstructVersion}"
implementation "com.google.guava:guava:${guavaVersion}"
implementation project(":cloud") implementation project(":cloud")
compileOnly 'org.projectlombok:lombok' compileOnly 'org.projectlombok:lombok'
......
...@@ -4,12 +4,15 @@ import edu.prlab.tyler.iotgateway.cloud.pojo.device.Device; ...@@ -4,12 +4,15 @@ 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.PrivacyChoice;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicyReport; import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicyReport;
import edu.prlab.tyler.iotgateway.gateway.model.PrivacyChoiceResponse; import edu.prlab.tyler.iotgateway.gateway.model.PrivacyChoiceResponse;
import edu.prlab.tyler.iotgateway.gateway.model.PrivacyPolicyReportResponse;
import edu.prlab.tyler.iotgateway.gateway.services.DeviceService; import edu.prlab.tyler.iotgateway.gateway.services.DeviceService;
import edu.prlab.tyler.iotgateway.gateway.services.PrivacyService; import edu.prlab.tyler.iotgateway.gateway.services.PrivacyService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Optional;
@RestController @RestController
public class GatewayController { public class GatewayController {
...@@ -44,10 +47,11 @@ public class GatewayController { ...@@ -44,10 +47,11 @@ public class GatewayController {
.orElseGet(() -> ResponseEntity.noContent().build()); .orElseGet(() -> ResponseEntity.noContent().build());
} }
//透過裝置UDN取得裝置資訊與隱私政策 //透過裝置UDN取得裝置資訊與隱私政策
@GetMapping("/privacy/{udn}") @GetMapping("/privacy/{udn}/{account}")
public ResponseEntity<PrivacyPolicyReport> readPrivacyPolicyReportByDevice(@PathVariable(value = "udn") String udn) { public ResponseEntity<PrivacyPolicyReportResponse> readPrivacyPolicyReportByDevice(@PathVariable String udn, @PathVariable String account) {
return privacyService.getRelatedPrivacyPolicies(udn) return privacyService.getRelatedPrivacyPolicyByUdn(udn, account)
.map(ResponseEntity::ok) .map(ResponseEntity::ok)
.orElseGet(() -> ResponseEntity.noContent().build()); .orElseGet(() -> ResponseEntity.noContent().build());
} }
...@@ -64,8 +68,9 @@ public class GatewayController { ...@@ -64,8 +68,9 @@ public class GatewayController {
//根據使用者取得在此gateway上該使用者的隱私選擇列表 //根據使用者取得在此gateway上該使用者的隱私選擇列表
@GetMapping("/choice/{account}") @GetMapping("/choice/{account}")
public ResponseEntity<Iterable<PrivacyChoiceResponse>> readPrivacyChoiceRecordsByUser(@PathVariable String account) { public ResponseEntity<Iterable<PrivacyChoiceResponse>> readPrivacyChoiceRecordsByUser(@PathVariable String account) {
return privacyService.getPrivacyPolicyChoicesByAccount(account) return Optional.of(privacyService.getPrivacyPolicyChoicesByAccount(account))
.map(ResponseEntity::ok) .map(ResponseEntity::ok)
.orElseGet(() -> ResponseEntity.noContent().build()); .orElseGet(() -> ResponseEntity.noContent().build());
} }
} }
package edu.prlab.tyler.iotgateway.gateway.model;
import edu.prlab.tyler.iotgateway.cloud.pojo.Document;
import edu.prlab.tyler.iotgateway.cloud.pojo.device.Device;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicy;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicyReport;
import lombok.*;
import lombok.experimental.SuperBuilder;
import java.util.HashMap;
import java.util.List;
@Getter
@Setter
@EqualsAndHashCode
@NoArgsConstructor
public class PrivacyPolicyReportResponse extends PrivacyPolicyReport {
private HashMap<Integer, Boolean> choices ;
@Builder(builderMethodName = "responseBuilder")
public PrivacyPolicyReportResponse(String id, String version, String description, Device device, List<PrivacyPolicy> policies, Document document, HashMap<Integer, Boolean> choices) {
super(id, version, description, device, policies, document);
this.choices = choices;
}
}
package edu.prlab.tyler.iotgateway.gateway.services; package edu.prlab.tyler.iotgateway.gateway.services;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
import com.google.common.collect.Streams;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyChoice; import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyChoice;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicyReport; import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicy;
import edu.prlab.tyler.iotgateway.gateway.model.PrivacyChoiceResponse; import edu.prlab.tyler.iotgateway.gateway.model.PrivacyChoiceResponse;
import edu.prlab.tyler.iotgateway.gateway.model.PrivacyPolicyReportResponse;
import edu.prlab.tyler.iotgateway.gateway.pojo.PrivacyChoiceIndex; import edu.prlab.tyler.iotgateway.gateway.pojo.PrivacyChoiceIndex;
import edu.prlab.tyler.iotgateway.gateway.repositories.PrivacyChoiceIndexRepository; import edu.prlab.tyler.iotgateway.gateway.repositories.PrivacyChoiceIndexRepository;
import edu.prlab.tyler.iotgateway.gateway.repositories.UserRepository; import edu.prlab.tyler.iotgateway.gateway.repositories.UserRepository;
...@@ -10,8 +15,12 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -10,8 +15,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;
import java.util.stream.StreamSupport; import java.util.stream.StreamSupport;
@Service @Service
...@@ -28,41 +37,76 @@ public class PrivacyService { ...@@ -28,41 +37,76 @@ public class PrivacyService {
this.remoteService = remoteService; this.remoteService = remoteService;
} }
public Optional<PrivacyPolicyReport> getRelatedPrivacyPolicies(String udn) { // TODO 如果此User有表達過則回傳表達隱私政策與其表達,
return remoteService.readRelatedPrivacyPolicies(udn); public Optional<PrivacyPolicyReportResponse> getRelatedPrivacyPolicyByUdn(String udn, String account) {
return remoteService.readRelatedPrivacyPolicyReport(udn)
.flatMap(report -> Optional.ofNullable(this.findChoicesByPolicies(report.getPolicies(), udn, account))
.map(this::choicesToMap)
.map(choices -> PrivacyPolicyReportResponse.responseBuilder()
.id(report.getId())
.version(report.getVersion())
.description(report.getDescription())
.device(report.getDevice())
.policies(report.getPolicies())
.choices(choices)
.build()));
}
private List<Boolean> findChoicesByPolicies(List<PrivacyPolicy> privacyPolicies, String udn, String account) {
return privacyPolicies.stream()
.map(policy -> this.findPrivacyChoiceByPrivacyPolicy(policy, udn, account))
.map(choices -> (Iterables.isEmpty(choices)) ? Boolean.valueOf(false) : Iterables.getLast(choices).isAccepted())
.collect(Collectors.toList());
}
private HashMap<Integer, Boolean> choicesToMap(List<Boolean> choices) {
return Streams.mapWithIndex(choices.stream(),
(choice, index) -> Maps.newHashMap(ImmutableMap.of(Long.valueOf(index).intValue(), choice)))
.collect(HashMap::new, HashMap::putAll, HashMap::putAll);
}
private Iterable<PrivacyChoice> findPrivacyChoiceByPrivacyPolicy(PrivacyPolicy privacyPolicy, String udn, String account) {
return () -> StreamSupport.stream(remoteService.readPrivacyChoices().spliterator(), false)
.filter(choice -> choice.getPrivacyContent().getPolicy().getId().equals(privacyPolicy.getId()) &
choice.getPrivacyContent().getUser().getAccount().equals(account) &
choice.getPrivacyContent().getDevice().getUdn().equals(udn))
.collect(Collectors.toList()).iterator();
} }
public Optional<PrivacyChoiceResponse> setPrivacyChoice(PrivacyChoice privacyChoice) { public Optional<PrivacyChoiceResponse> setPrivacyChoice(PrivacyChoice privacyChoice) {
System.out.println("setPrivacyPolicyChoice : " + privacyChoice.toString());
return Optional.of(privacyChoice) return Optional.of(privacyChoice)
.flatMap(choice -> remoteService.setPrivacyChoice(choice)) .flatMap(choice -> remoteService.setPrivacyChoice(choice))
.flatMap(choice -> Optional.of(privacyChoiceIndexRepository.save(PrivacyChoiceIndex.builder() .flatMap(choice -> this.addPrivacyChoiceIndex(PrivacyChoiceIndex.builder()
.id(choice.getId()) .id(choice.getId())
.localDateTime(LocalDateTime.now()) .localDateTime(LocalDateTime.now())
.build())) .build())
.map(choiceIndex -> PrivacyChoiceResponse.builder() .map(choiceIndex -> PrivacyChoiceResponse.builder()
.id(choice.getId()) .id(choice.getId())
.localDateTime(LocalDateTime.now()) .localDateTime(choiceIndex.getLocalDateTime())
.privacyChoice(choice) .privacyChoice(choice)
.build())); .build()));
} }
private Optional<PrivacyChoiceIndex> addPrivacyChoiceIndex(PrivacyChoiceIndex choiceIndex) {
return Optional.ofNullable(privacyChoiceIndexRepository.save(choiceIndex));
}
// public Optional<Iterable<PrivacyChoice>> getPrivacyPolicyChoices() { // public Optional<Iterable<PrivacyChoice>> getPrivacyPolicyChoices() {
// return Optional.ofNullable(template.exchange(cloudAddress + "/choice", HttpMethod.GET, null, // return Optional.ofNullable(template.exchange(cloudAddress + "/choice", HttpMethod.GET, null,
// new ParameterizedTypeReference<Iterable<PrivacyChoice>>() { }).getBody()); // new ParameterizedTypeReference<Iterable<PrivacyChoice>>() { }).getBody());
// } // }
public Optional<Iterable<PrivacyChoiceResponse>> getPrivacyPolicyChoicesByAccount(String account) { public Iterable<PrivacyChoiceResponse> getPrivacyPolicyChoicesByAccount(String account) {
return remoteService.readPrivacyChoices() return () -> StreamSupport.stream(remoteService.readPrivacyChoices().spliterator(), false)
.map(choices -> StreamSupport.stream(choices.spliterator(), false) .filter(choice -> choice.getPrivacyContent().getUser().getAccount().equals(account))
.filter(privacyChoice -> privacyChoice.getPrivacyContent().getUser().getAccount().equals(account)) .map(choice -> privacyChoiceIndexRepository.findById(choice.getId())
.map(choice -> privacyChoiceIndexRepository.findById(choice.getId()) .map(choiceIndex -> PrivacyChoiceResponse.builder()
.map(choiceIndex -> PrivacyChoiceResponse.builder() .id(choiceIndex.getId())
.id(choiceIndex.getId()) .localDateTime(choiceIndex.getLocalDateTime())
.localDateTime(choiceIndex.getLocalDateTime()) .privacyChoice(choice)
.privacyChoice(choice) .build())
.build()) .orElseGet(() -> new PrivacyChoiceResponse()))
.orElseGet(() -> new PrivacyChoiceResponse())) .collect(Collectors.toList())
.collect(Collectors.toList())); .iterator();
} }
} }
...@@ -40,7 +40,7 @@ public class RemoteService { ...@@ -40,7 +40,7 @@ public class RemoteService {
}).getBody(), "Read devices error"); }).getBody(), "Read devices error");
} }
public Optional<PrivacyPolicyReport> readRelatedPrivacyPolicies(String udn) { public Optional<PrivacyPolicyReport> readRelatedPrivacyPolicyReport(String udn) {
return tryCatch(() -> template.exchange(cloudAddress + "/privacy/" + udn, HttpMethod.GET, null, return tryCatch(() -> template.exchange(cloudAddress + "/privacy/" + udn, HttpMethod.GET, null,
PrivacyPolicyReport.class).getBody(), "Read privacyPolicyReport error"); PrivacyPolicyReport.class).getBody(), "Read privacyPolicyReport error");
} }
...@@ -50,10 +50,11 @@ public class RemoteService { ...@@ -50,10 +50,11 @@ public class RemoteService {
new HttpEntity(choice), PrivacyChoice.class).getBody(), "Set privacyChoice error"); new HttpEntity(choice), PrivacyChoice.class).getBody(), "Set privacyChoice error");
} }
public Optional<Iterable<PrivacyChoice>> readPrivacyChoices() { public Iterable<PrivacyChoice> readPrivacyChoices() {
return tryCatch(() -> template.exchange(cloudAddress + "/choice", HttpMethod.GET, null, return tryCatch(() -> template.exchange(cloudAddress + "/choice", HttpMethod.GET, null,
new ParameterizedTypeReference<Iterable<PrivacyChoice>>() { new ParameterizedTypeReference<Iterable<PrivacyChoice>>() {
}).getBody(), "Read privacyChoice error"); }).getBody(), "Read privacyChoice error")
.orElse(null);
} }
public <T> Optional<T> tryCatch(Supplier<T> supplier, String errorMessage) { public <T> Optional<T> tryCatch(Supplier<T> supplier, String errorMessage) {
......
...@@ -7,6 +7,7 @@ import edu.prlab.tyler.iotgateway.cloud.pojo.device.Device; ...@@ -7,6 +7,7 @@ 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.PrivacyChoice;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyContent; import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyContent;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicyReport; import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicyReport;
import edu.prlab.tyler.iotgateway.gateway.model.PrivacyPolicyReportResponse;
import edu.prlab.tyler.iotgateway.gateway.pojo.auth.SensitiveUser; import edu.prlab.tyler.iotgateway.gateway.pojo.auth.SensitiveUser;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Before; import org.junit.Before;
...@@ -66,7 +67,7 @@ public class GatewayHttpApiTest { ...@@ -66,7 +67,7 @@ public class GatewayHttpApiTest {
.andDo(print()) .andDo(print())
.andExpect(status().isOk()) .andExpect(status().isOk())
.andReturn(); .andReturn();
Device device= mapper.readValue(result.getResponse().getContentAsString(), Device.class); Device device = mapper.readValue(result.getResponse().getContentAsString(), Device.class);
Assert.assertNotNull(device); Assert.assertNotNull(device);
//取得裝置清單 //取得裝置清單
...@@ -83,12 +84,12 @@ public class GatewayHttpApiTest { ...@@ -83,12 +84,12 @@ public class GatewayHttpApiTest {
//拿取隱私政策 //拿取隱私政策
result = mvc.perform(MockMvcRequestBuilders result = mvc.perform(MockMvcRequestBuilders
.get("/privacy/" + "a1252c49-4188-4e6d-a32e-66604c664fb8") .get("/privacy/" + "a1252c49-4188-4e6d-a32e-66604c664fb8/" + "test")
.accept(MediaType.APPLICATION_JSON_UTF8)) .accept(MediaType.APPLICATION_JSON_UTF8))
.andDo(print()) .andDo(print())
.andExpect(status().isOk()) .andExpect(status().isOk())
.andReturn(); .andReturn();
PrivacyPolicyReport report = mapper.readValue(result.getResponse().getContentAsString(), PrivacyPolicyReport.class); PrivacyPolicyReport report = mapper.readValue(result.getResponse().getContentAsString(), PrivacyPolicyReportResponse.class);
Assert.assertNotNull(report); Assert.assertNotNull(report);
//表達隱私偏好 //表達隱私偏好
...@@ -115,9 +116,18 @@ public class GatewayHttpApiTest { ...@@ -115,9 +116,18 @@ public class GatewayHttpApiTest {
Assert.assertNotNull(result); Assert.assertNotNull(result);
result = mvc.perform(MockMvcRequestBuilders
.get("/privacy/" + "a1252c49-4188-4e6d-a32e-66604c664fb8/" + "test")
.accept(MediaType.APPLICATION_JSON_UTF8))
.andDo(print())
.andExpect(status().isOk())
.andReturn();
report = mapper.readValue(result.getResponse().getContentAsString(), PrivacyPolicyReportResponse.class);
Assert.assertNotNull(report);
//取得所有隱私偏好 //取得所有隱私偏好
result = mvc.perform(MockMvcRequestBuilders result = mvc.perform(MockMvcRequestBuilders
.get("/choice"+"/test1") .get("/choice/" + privacyChoice.getPrivacyContent().getUser().getAccount())
.accept(MediaType.APPLICATION_JSON_UTF8)) .accept(MediaType.APPLICATION_JSON_UTF8))
.andDo(print()) .andDo(print())
.andExpect(status().isOk()) .andExpect(status().isOk())
......
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