bgabriel998/SoftwareDevProject

View on GitHub
doc/JavaDoc/ch/epfl/sdp/peakar/points/POICache.html

Summary

Maintainability
Test Coverage
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_242-release) on Fri Jun 04 18:15:39 CEST 2021 -->
<title>POICache</title>
<meta name="date" content="2021-06-04">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="POICache";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":10,"i5":10,"i6":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../ch/epfl/sdp/peakar/points/LineOfSight.html" title="class in ch.epfl.sdp.peakar.points"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../ch/epfl/sdp/peakar/points/POICacheContent.html" title="class in ch.epfl.sdp.peakar.points"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?ch/epfl/sdp/peakar/points/POICache.html" target="_top">Frames</a></li>
<li><a href="POICache.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">ch.epfl.sdp.peakar.points</div>
<h2 title="Class POICache" class="title">Class POICache</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>ch.epfl.sdp.peakar.points.POICache</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">POICache</span>
extends java.lang.Object</pre>
<div class="block">Class used to cache list of POIs in the surrounding
 The list of POI is converted to JSON, the corresponding bounding box
 is added to the JSON and everything is saved in the cache folder
 of the android device</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../ch/epfl/sdp/peakar/points/POICache.html#deleteCacheFile-java.io.File-">deleteCacheFile</a></span>(java.io.File&nbsp;cacheDir)</code>
<div class="block">Deletes cache file from cache folder
 /!\ this function should be used only to cleanup the cache
 when the POI detection range has changed</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.util.ArrayList&lt;<a href="../../../../../ch/epfl/sdp/peakar/points/POIPoint.html" title="class in ch.epfl.sdp.peakar.points">POIPoint</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../ch/epfl/sdp/peakar/points/POICache.html#getCachedPOIPoints-java.io.File-">getCachedPOIPoints</a></span>(java.io.File&nbsp;cacheDir)</code>
<div class="block">Returns the list of POI points from the cache</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>androidx.core.util.Pair&lt;int[][],java.lang.Double&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../ch/epfl/sdp/peakar/points/POICache.html#getCachedTopography-java.io.File-">getCachedTopography</a></span>(java.io.File&nbsp;cacheDir)</code>
<div class="block">Return the cached topography map</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../ch/epfl/sdp/peakar/points/POICache.html" title="class in ch.epfl.sdp.peakar.points">POICache</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../ch/epfl/sdp/peakar/points/POICache.html#getInstance--">getInstance</a></span>()</code>
<div class="block">Get singleton</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../ch/epfl/sdp/peakar/points/POICache.html#isCacheFilePresent-java.io.File-">isCacheFilePresent</a></span>(java.io.File&nbsp;cacheDir)</code>
<div class="block">Checks if cache file is present in device Cache folder</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../ch/epfl/sdp/peakar/points/POICache.html#isUserInBoundingBox-ch.epfl.sdp.peakar.points.UserPoint-java.io.File-">isUserInBoundingBox</a></span>(<a href="../../../../../ch/epfl/sdp/peakar/points/UserPoint.html" title="class in ch.epfl.sdp.peakar.points">UserPoint</a>&nbsp;userPoint,
                   java.io.File&nbsp;cacheDir)</code>
<div class="block">Check if the user is located inside the middle part of the bounding box
 Using cached bounding box, a shrink-ed bounding box is computed.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../ch/epfl/sdp/peakar/points/POICache.html#savePOIDataToCache-java.util.ArrayList-org.osmdroid.util.BoundingBox-androidx.core.util.Pair-java.io.File-">savePOIDataToCache</a></span>(java.util.ArrayList&lt;<a href="../../../../../ch/epfl/sdp/peakar/points/POIPoint.html" title="class in ch.epfl.sdp.peakar.points">POIPoint</a>&gt;&nbsp;cachedPOIPoints,
                  org.osmdroid.util.BoundingBox&nbsp;cachedBoundingBox,
                  androidx.core.util.Pair&lt;int[][],java.lang.Double&gt;&nbsp;cachedTopography,
                  java.io.File&nbsp;cacheDir)</code>
<div class="block">Save downloaded POIs, bounding box and topography map to cache file</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getInstance--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInstance</h4>
<pre>public static&nbsp;<a href="../../../../../ch/epfl/sdp/peakar/points/POICache.html" title="class in ch.epfl.sdp.peakar.points">POICache</a>&nbsp;getInstance()</pre>
<div class="block">Get singleton</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>POICache instance</dd>
</dl>
</li>
</ul>
<a name="savePOIDataToCache-java.util.ArrayList-org.osmdroid.util.BoundingBox-androidx.core.util.Pair-java.io.File-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>savePOIDataToCache</h4>
<pre>public&nbsp;void&nbsp;savePOIDataToCache(java.util.ArrayList&lt;<a href="../../../../../ch/epfl/sdp/peakar/points/POIPoint.html" title="class in ch.epfl.sdp.peakar.points">POIPoint</a>&gt;&nbsp;cachedPOIPoints,
                               org.osmdroid.util.BoundingBox&nbsp;cachedBoundingBox,
                               androidx.core.util.Pair&lt;int[][],java.lang.Double&gt;&nbsp;cachedTopography,
                               java.io.File&nbsp;cacheDir)</pre>
<div class="block">Save downloaded POIs, bounding box and topography map to cache file</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cachedPOIPoints</code> - POI points to cache</dd>
<dd><code>cachedBoundingBox</code> - bounding box to cache</dd>
<dd><code>cachedTopography</code> - topography map to cache (3D MAP)</dd>
<dd><code>cacheDir</code> - path to cache directory</dd>
</dl>
</li>
</ul>
<a name="isUserInBoundingBox-ch.epfl.sdp.peakar.points.UserPoint-java.io.File-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isUserInBoundingBox</h4>
<pre>public&nbsp;boolean&nbsp;isUserInBoundingBox(<a href="../../../../../ch/epfl/sdp/peakar/points/UserPoint.html" title="class in ch.epfl.sdp.peakar.points">UserPoint</a>&nbsp;userPoint,
                                   java.io.File&nbsp;cacheDir)</pre>
<div class="block">Check if the user is located inside the middle part of the bounding box
 Using cached bounding box, a shrink-ed bounding box is computed.
 The methods then checks if the user position is somewhere inside this
 smaller bounding box</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>userPoint</code> - user location</dd>
<dd><code>cacheDir</code> - path to cache directory</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the user is in the middle of the cached bounding box
          false if not</dd>
</dl>
</li>
</ul>
<a name="isCacheFilePresent-java.io.File-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCacheFilePresent</h4>
<pre>public&nbsp;boolean&nbsp;isCacheFilePresent(java.io.File&nbsp;cacheDir)</pre>
<div class="block">Checks if cache file is present in device Cache folder</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cacheDir</code> - path to cache folder</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if file is present. False if no file found</dd>
</dl>
</li>
</ul>
<a name="getCachedPOIPoints-java.io.File-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCachedPOIPoints</h4>
<pre>public&nbsp;java.util.ArrayList&lt;<a href="../../../../../ch/epfl/sdp/peakar/points/POIPoint.html" title="class in ch.epfl.sdp.peakar.points">POIPoint</a>&gt;&nbsp;getCachedPOIPoints(java.io.File&nbsp;cacheDir)</pre>
<div class="block">Returns the list of POI points from the cache</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cacheDir</code> - path to cache folder</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>list of POI Points</dd>
</dl>
</li>
</ul>
<a name="getCachedTopography-java.io.File-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCachedTopography</h4>
<pre>public&nbsp;androidx.core.util.Pair&lt;int[][],java.lang.Double&gt;&nbsp;getCachedTopography(java.io.File&nbsp;cacheDir)</pre>
<div class="block">Return the cached topography map</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cacheDir</code> - path to cache directory</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>topography map</dd>
</dl>
</li>
</ul>
<a name="deleteCacheFile-java.io.File-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>deleteCacheFile</h4>
<pre>public&nbsp;void&nbsp;deleteCacheFile(java.io.File&nbsp;cacheDir)</pre>
<div class="block">Deletes cache file from cache folder
 /!\ this function should be used only to cleanup the cache
 when the POI detection range has changed</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cacheDir</code> - path to cache directory</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../ch/epfl/sdp/peakar/points/LineOfSight.html" title="class in ch.epfl.sdp.peakar.points"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../ch/epfl/sdp/peakar/points/POICacheContent.html" title="class in ch.epfl.sdp.peakar.points"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?ch/epfl/sdp/peakar/points/POICache.html" target="_top">Frames</a></li>
<li><a href="POICache.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>