38public class Waypoint {
45 final private AbstractFile
image;
56 static final BlackboardAttribute.ATTRIBUTE_TYPE[] ALREADY_HANDLED_ATTRIBUTES = {
57 BlackboardAttribute.ATTRIBUTE_TYPE.TSK_NAME,
58 BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE,
59 BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LATITUDE,
60 BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE,
61 BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME,
62 BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_CREATED,
63 BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START,
64 BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START,
65 BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END,
66 BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END,};
100 }
catch (TskCoreException ex) {
101 throw new GeoLocationDataException(String.format(
"Failed to get contend for artifact id (%d)",
artifact.getId()), ex);
203 static Map<BlackboardAttribute.ATTRIBUTE_TYPE, BlackboardAttribute> getAttributesFromArtifactAsMap(BlackboardArtifact
artifact)
throws GeoLocationDataException {
204 Map<BlackboardAttribute.ATTRIBUTE_TYPE, BlackboardAttribute> attributeMap =
new HashMap<>();
206 List<BlackboardAttribute> attributeList =
artifact.getAttributes();
207 for (BlackboardAttribute attribute : attributeList) {
209 BlackboardAttribute.ATTRIBUTE_TYPE type = BlackboardAttribute.ATTRIBUTE_TYPE.fromID(attribute.getAttributeType().getTypeID());
210 attributeMap.put(type, attribute);
211 }
catch(IllegalArgumentException ex) {
216 }
catch (TskCoreException ex) {
217 throw new GeoLocationDataException(
"Unable to get attributes from artifact", ex);
234 static List<Waypoint.Property> createGeolocationProperties(Map<BlackboardAttribute.ATTRIBUTE_TYPE, BlackboardAttribute> attributeMap)
throws GeoLocationDataException {
235 List<Waypoint.Property> list =
new ArrayList<>();
237 if(attributeMap !=
null) {
239 Set<BlackboardAttribute.ATTRIBUTE_TYPE> keys =
new HashSet<>(attributeMap.keySet());
241 for (BlackboardAttribute.ATTRIBUTE_TYPE type : ALREADY_HANDLED_ATTRIBUTES) {
245 for (BlackboardAttribute.ATTRIBUTE_TYPE type : keys) {
247 if (type.getValueType() == BlackboardAttribute.TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.JSON) {
250 String key = type.getDisplayName();
251 String value = attributeMap.get(type).getDisplayString();
253 list.add(
new Waypoint.Property(key, value));
267 public final static class Property {