19 package org.sleuthkit.datamodel;
21 import java.io.Serializable;
22 import java.util.Arrays;
23 import java.util.Collections;
24 import java.util.List;
25 import java.util.Objects;
26 import java.util.ResourceBundle;
44 private static final char[]
HEX_ARRAY =
"0123456789ABCDEF".toCharArray();
45 private static final ResourceBundle
bundle = ResourceBundle.getBundle(
"org.sleuthkit.datamodel.Bundle");
60 public static final class Type implements Serializable {
90 this.typeID = type.getTypeID();
91 this.typeName = type.getLabel();
92 this.displayName = type.getDisplayName();
93 this.valueType = type.getValueType();
152 return this.typeName.equals(that.getTypeName())
153 && this.displayName.equals(that.getDisplayName())
154 && this.typeID == that.getTypeID()
155 && this.valueType == that.getValueType();
161 hash = 63 * hash + Objects.hashCode(this.typeID);
162 hash = 63 * hash + Objects.hashCode(this.displayName);
163 hash = 63 * hash + Objects.hashCode(this.typeName);
164 hash = 63 * hash + Objects.hashCode(this.valueType);
170 return "(typeID= " + this.typeID
171 +
", displayName=" + this.displayName
172 +
", typeName=" + this.typeName
173 +
", valueType=" + this.valueType +
")";
224 this.typeName = typeName;
248 return this.typeName;
267 if (valueType.getType() == typeId) {
271 throw new IllegalArgumentException(
"No TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE matching type: " + typeId);
290 if (valueType.getLabel().equals(typeName)) {
294 throw new IllegalArgumentException(
"No TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE matching type: " + typeName);
307 TSK_URL(1,
"TSK_URL",
308 bundle.getString(
"BlackboardAttribute.tskUrl.text"),
310 TSK_DATETIME(2,
"TSK_DATETIME",
311 bundle.getString(
"BlackboardAttribute.tskDatetime.text"),
313 TSK_NAME(3,
"TSK_NAME",
314 bundle.getString(
"BlackboardAttribute.tskName.text"),
316 TSK_PROG_NAME(4,
"TSK_PROG_NAME",
317 bundle.getString(
"BlackboardAttribute.tskProgName.text"),
319 TSK_VALUE(6,
"TSK_VALUE",
320 bundle.getString(
"BlackboardAttribute.tskValue.text"),
322 TSK_FLAG(7,
"TSK_FLAG",
323 bundle.getString(
"BlackboardAttribute.tskFlag.text"),
325 TSK_PATH(8,
"TSK_PATH",
326 bundle.getString(
"BlackboardAttribute.tskPath.text"),
328 TSK_KEYWORD(10,
"TSK_KEYWORD",
329 bundle.getString(
"BlackboardAttribute.tskKeyword.text"),
331 TSK_KEYWORD_REGEXP(11,
"TSK_KEYWORD_REGEXP",
332 bundle.getString(
"BlackboardAttribute.tskKeywordRegexp.text"),
334 TSK_KEYWORD_PREVIEW(12,
"TSK_KEYWORD_PREVIEW",
335 bundle.getString(
"BlackboardAttribute.tskKeywordPreview.text"),
341 TSK_KEYWORD_SET(13,
"TSK_KEYWORD_SET",
342 bundle.getString(
"BlackboardAttribute.tskKeywordSet.text"),
344 TSK_USER_NAME(14,
"TSK_USER_NAME",
345 bundle.getString(
"BlackboardAttribute.tskUserName.text"),
347 TSK_DOMAIN(15,
"TSK_DOMAIN",
348 bundle.getString(
"BlackboardAttribute.tskDomain.text"),
350 TSK_PASSWORD(16,
"TSK_PASSWORD",
351 bundle.getString(
"BlackboardAttribute.tskPassword.text"),
353 TSK_NAME_PERSON(17,
"TSK_NAME_PERSON",
354 bundle.getString(
"BlackboardAttribute.tskNamePerson.text"),
356 TSK_DEVICE_MODEL(18,
"TSK_DEVICE_MODEL",
357 bundle.getString(
"BlackboardAttribute.tskDeviceModel.text"),
359 TSK_DEVICE_MAKE(19,
"TSK_DEVICE_MAKE",
360 bundle.getString(
"BlackboardAttribute.tskDeviceMake.text"),
362 TSK_DEVICE_ID(20,
"TSK_DEVICE_ID",
363 bundle.getString(
"BlackboardAttribute.tskDeviceId.text"),
365 TSK_EMAIL(21,
"TSK_EMAIL",
366 bundle.getString(
"BlackboardAttribute.tskEmail.text"),
368 TSK_HASH_MD5(22,
"TSK_HASH_MD5",
369 bundle.getString(
"BlackboardAttribute.tskHashMd5.text"),
371 TSK_HASH_SHA1(23,
"TSK_HASH_SHA1",
372 bundle.getString(
"BlackboardAttribute.tskHashSha1.text"),
374 TSK_HASH_SHA2_256(24,
"TSK_HASH_SHA2_256",
375 bundle.getString(
"BlackboardAttribute.tskHashSha225.text"),
377 TSK_HASH_SHA2_512(25,
"TSK_HASH_SHA2_512",
378 bundle.getString(
"BlackboardAttribute.tskHashSha2512.text"),
380 TSK_TEXT(26,
"TSK_TEXT",
381 bundle.getString(
"BlackboardAttribute.tskText.text"),
383 TSK_TEXT_FILE(27,
"TSK_TEXT_FILE",
384 bundle.getString(
"BlackboardAttribute.tskTextFile.text"),
386 TSK_TEXT_LANGUAGE(28,
"TSK_TEXT_LANGUAGE",
387 bundle.getString(
"BlackboardAttribute.tskTextLanguage.text"),
389 TSK_ENTROPY(29,
"TSK_ENTROPY",
390 bundle.getString(
"BlackboardAttribute.tskEntropy.text"),
396 TSK_HASHSET_NAME(30,
"TSK_HASHSET_NAME",
397 bundle.getString(
"BlackboardAttribute.tskHashsetName.text"),
403 TSK_INTERESTING_FILE(31,
"TSK_INTERESTING_FILE",
404 bundle.getString(
"BlackboardAttribute.tskInterestingFile.text"),
406 TSK_REFERRER(32,
"TSK_REFERRER",
407 bundle.getString(
"BlackboardAttribute.tskReferrer.text"),
409 TSK_DATETIME_ACCESSED(33,
"TSK_DATETIME_ACCESSED",
410 bundle.getString(
"BlackboardAttribute.tskDateTimeAccessed.text"),
412 TSK_IP_ADDRESS(34,
"TSK_IP_ADDRESS",
413 bundle.getString(
"BlackboardAttribute.tskIpAddress.text"),
415 TSK_PHONE_NUMBER(35,
"TSK_PHONE_NUMBER",
416 bundle.getString(
"BlackboardAttribute.tskPhoneNumber.text"),
418 TSK_PATH_ID(36,
"TSK_PATH_ID",
419 bundle.getString(
"BlackboardAttribute.tskPathId.text"),
421 TSK_SET_NAME(37,
"TSK_SET_NAME",
422 bundle.getString(
"BlackboardAttribute.tskSetName.text"),
428 TSK_ENCRYPTION_DETECTED(38,
"TSK_ENCRYPTION_DETECTED",
429 bundle.getString(
"BlackboardAttribute.tskEncryptionDetected.text"),
431 TSK_MALWARE_DETECTED(39,
"TSK_MALWARE_DETECTED",
432 bundle.getString(
"BlackboardAttribute.tskMalwareDetected.text"),
434 TSK_STEG_DETECTED(40,
"TSK_STEG_DETECTED",
435 bundle.getString(
"BlackboardAttribute.tskStegDetected.text"),
437 TSK_EMAIL_TO(41,
"TSK_EMAIL_TO",
438 bundle.getString(
"BlackboardAttribute.tskEmailTo.text"),
440 TSK_EMAIL_CC(42,
"TSK_EMAIL_CC",
441 bundle.getString(
"BlackboardAttribute.tskEmailCc.text"),
443 TSK_EMAIL_BCC(43,
"TSK_EMAIL_BCC",
444 bundle.getString(
"BlackboardAttribute.tskEmailBcc.text"),
446 TSK_EMAIL_FROM(44,
"TSK_EMAIL_FROM",
447 bundle.getString(
"BlackboardAttribute.tskEmailFrom.text"),
449 TSK_EMAIL_CONTENT_PLAIN(45,
"TSK_EMAIL_CONTENT_PLAIN",
450 bundle.getString(
"BlackboardAttribute.tskEmailContentPlain.text"),
452 TSK_EMAIL_CONTENT_HTML(46,
"TSK_EMAIL_CONTENT_HTML",
453 bundle.getString(
"BlackboardAttribute.tskEmailContentHtml.text"),
455 TSK_EMAIL_CONTENT_RTF(47,
"TSK_EMAIL_CONTENT_RTF",
456 bundle.getString(
"BlackboardAttribute.tskEmailContentRtf.text"),
458 TSK_MSG_ID(48,
"TSK_MSG_ID",
459 bundle.getString(
"BlackboardAttribute.tskMsgId.text"),
461 TSK_MSG_REPLY_ID(49,
"TSK_MSG_REPLY_ID",
462 bundle.getString(
"BlackboardAttribute.tskMsgReplyId.text"),
464 TSK_DATETIME_RCVD(50,
"TSK_DATETIME_RCVD",
465 bundle.getString(
"BlackboardAttribute.tskDateTimeRcvd.text"),
467 TSK_DATETIME_SENT(51,
"TSK_DATETIME_SENT",
468 bundle.getString(
"BlackboardAttribute.tskDateTimeSent.text"),
470 TSK_SUBJECT(52,
"TSK_SUBJECT",
471 bundle.getString(
"BlackboardAttribute.tskSubject.text"),
473 TSK_TITLE(53,
"TSK_TITLE",
474 bundle.getString(
"BlackboardAttribute.tskTitle.text"),
476 TSK_GEO_LATITUDE(54,
"TSK_GEO_LATITUDE",
477 bundle.getString(
"BlackboardAttribute.tskGeoLatitude.text"),
479 TSK_GEO_LONGITUDE(55,
"TSK_GEO_LONGITUDE",
480 bundle.getString(
"BlackboardAttribute.tskGeoLongitude.text"),
482 TSK_GEO_VELOCITY(56,
"TSK_GEO_VELOCITY",
483 bundle.getString(
"BlackboardAttribute.tskGeoVelocity.text"),
485 TSK_GEO_ALTITUDE(57,
"TSK_GEO_ALTITUDE",
486 bundle.getString(
"BlackboardAttribute.tskGeoAltitude.text"),
488 TSK_GEO_BEARING(58,
"TSK_GEO_BEARING",
489 bundle.getString(
"BlackboardAttribute.tskGeoBearing.text"),
491 TSK_GEO_HPRECISION(59,
"TSK_GEO_HPRECISION",
492 bundle.getString(
"BlackboardAttribute.tskGeoHPrecision.text"),
494 TSK_GEO_VPRECISION(60,
"TSK_GEO_VPRECISION",
495 bundle.getString(
"BlackboardAttribute.tskGeoVPrecision.text"),
497 TSK_GEO_MAPDATUM(61,
"TSK_GEO_MAPDATUM",
498 bundle.getString(
"BlackboardAttribute.tskGeoMapDatum.text"),
505 TSK_FILE_TYPE_SIG(62,
"TSK_FILE_TYPE_SIG",
506 bundle.getString(
"BlackboardAttribute.tskFileTypeSig.text"),
508 TSK_FILE_TYPE_EXT(63,
"TSK_FILE_TYPE_EXT",
509 bundle.getString(
"BlackboardAttribute.tskFileTypeExt.text"),
516 TSK_TAGGED_ARTIFACT(64,
"TSK_TAGGED_ARTIFACT",
517 bundle.getString(
"BlackboardAttribute.tskTaggedArtifact.text"),
524 TSK_TAG_NAME(65,
"TSK_TAG_NAME",
525 bundle.getString(
"BlackboardAttribute.tskTagName.text"),
527 TSK_COMMENT(66,
"TSK_COMMENT",
528 bundle.getString(
"BlackboardAttribute.tskComment.text"),
530 TSK_URL_DECODED(67,
"TSK_URL_DECODED",
531 bundle.getString(
"BlackboardAttribute.tskUrlDecoded.text"),
533 TSK_DATETIME_CREATED(68,
"TSK_DATETIME_CREATED",
534 bundle.getString(
"BlackboardAttribute.tskDateTimeCreated.text"),
536 TSK_DATETIME_MODIFIED(69,
"TSK_DATETIME_MODIFIED",
537 bundle.getString(
"BlackboardAttribute.tskDateTimeModified.text"),
539 TSK_PROCESSOR_ARCHITECTURE(70,
"TSK_PROCESSOR_ARCHITECTURE",
540 bundle.getString(
"BlackboardAttribute.tskProcessorArchitecture.text"),
542 TSK_VERSION(71,
"TSK_VERSION",
543 bundle.getString(
"BlackboardAttribute.tskVersion.text"),
545 TSK_USER_ID(72,
"TSK_USER_ID",
546 bundle.getString(
"BlackboardAttribute.tskUserId.text"),
548 TSK_DESCRIPTION(73,
"TSK_DESCRIPTION",
549 bundle.getString(
"BlackboardAttribute.tskDescription.text"),
551 TSK_MESSAGE_TYPE(74,
"TSK_MESSAGE_TYPE",
552 bundle.getString(
"BlackboardAttribute.tskMessageType.text"),
554 TSK_PHONE_NUMBER_HOME(75,
"TSK_PHONE_NUMBER_HOME",
555 bundle.getString(
"BlackboardAttribute.tskPhoneNumberHome.text"),
557 TSK_PHONE_NUMBER_OFFICE(76,
"TSK_PHONE_NUMBER_OFFICE",
558 bundle.getString(
"BlackboardAttribute.tskPhoneNumberOffice.text"),
560 TSK_PHONE_NUMBER_MOBILE(77,
"TSK_PHONE_NUMBER_MOBILE",
561 bundle.getString(
"BlackboardAttribute.tskPhoneNumberMobile.text"),
563 TSK_PHONE_NUMBER_FROM(78,
"TSK_PHONE_NUMBER_FROM",
564 bundle.getString(
"BlackboardAttribute.tskPhoneNumberFrom.text"),
566 TSK_PHONE_NUMBER_TO(79,
"TSK_PHONE_NUMBER_TO",
567 bundle.getString(
"BlackboardAttribute.tskPhoneNumberTo.text"),
569 TSK_DIRECTION(80,
"TSK_DIRECTION",
570 bundle.getString(
"BlackboardAttribute.tskDirection.text"),
572 TSK_EMAIL_HOME(81,
"TSK_EMAIL_HOME",
573 bundle.getString(
"BlackboardAttribute.tskEmailHome.text"),
575 TSK_EMAIL_OFFICE(82,
"TSK_EMAIL_OFFICE",
576 bundle.getString(
"BlackboardAttribute.tskEmailOffice.text"),
578 TSK_DATETIME_START(83,
"TSK_DATETIME_START",
579 bundle.getString(
"BlackboardAttribute.tskDateTimeStart.text"),
581 TSK_DATETIME_END(84,
"TSK_DATETIME_END",
582 bundle.getString(
"BlackboardAttribute.tskDateTimeEnd.text"),
584 TSK_CALENDAR_ENTRY_TYPE(85,
"TSK_CALENDAR_ENTRY_TYPE",
585 bundle.getString(
"BlackboardAttribute.tskCalendarEntryType.text"),
587 TSK_LOCATION(86,
"TSK_LOCATION",
588 bundle.getString(
"BlackboardAttribute.tskLocation.text"),
590 TSK_SHORTCUT(87,
"TSK_SHORTCUT",
591 bundle.getString(
"BlackboardAttribute.tskShortcut.text"),
593 TSK_DEVICE_NAME(88,
"TSK_DEVICE_NAME",
594 bundle.getString(
"BlackboardAttribute.tskDeviceName.text"),
596 TSK_CATEGORY(89,
"TSK_CATEGORY",
597 bundle.getString(
"BlackboardAttribute.tskCategory.text"),
599 TSK_EMAIL_REPLYTO(90,
"TSK_EMAIL_REPLYTO",
600 bundle.getString(
"BlackboardAttribute.tskEmailReplyTo.text"),
602 TSK_SERVER_NAME(91,
"TSK_SERVER_NAME",
603 bundle.getString(
"BlackboardAttribute.tskServerName.text"),
605 TSK_COUNT(92,
"TSK_COUNT",
606 bundle.getString(
"BlackboardAttribute.tskCount.text"),
608 TSK_MIN_COUNT(93,
"TSK_MIN_COUNT",
609 bundle.getString(
"BlackboardAttribute.tskMinCount.text"),
611 TSK_PATH_SOURCE(94,
"TSK_PATH_SOURCE",
612 bundle.getString(
"BlackboardAttribute.tskPathSource.text"),
614 TSK_PERMISSIONS(95,
"TSK_PERMISSIONS",
615 bundle.getString(
"BlackboardAttribute.tskPermissions.text"),
617 TSK_ASSOCIATED_ARTIFACT(96,
"TSK_ASSOCIATED_ARTIFACT",
618 bundle.getString(
"BlackboardAttribute.tskAssociatedArtifact.text"),
620 TSK_ISDELETED(97,
"TSK_ISDELETED",
621 bundle.getString(
"BlackboardAttribute.tskIsDeleted.text"),
623 TSK_GEO_LATITUDE_START(98,
"TSK_GEO_LATITUDE_START",
624 bundle.getString(
"BlackboardAttribute.tskGeoLatitudeStart.text"),
626 TSK_GEO_LATITUDE_END(99,
"TSK_GEO_LATITUDE_END",
627 bundle.getString(
"BlackboardAttribute.tskGeoLatitudeEnd.text"),
629 TSK_GEO_LONGITUDE_START(100,
"TSK_GEO_LONGITUDE_START",
630 bundle.getString(
"BlackboardAttribute.tskGeoLongitudeStart.text"),
632 TSK_GEO_LONGITUDE_END(101,
"TSK_GEO_LONGITUDE_END",
633 bundle.getString(
"BlackboardAttribute.tskGeoLongitudeEnd.text"),
635 TSK_READ_STATUS(102,
"TSK_READ_STATUS",
636 bundle.getString(
"BlackboardAttribute.tskReadStatus.text"),
638 TSK_LOCAL_PATH(103,
"TSK_LOCAL_PATH",
639 bundle.getString(
"BlackboardAttribute.tskLocalPath.text"),
641 TSK_REMOTE_PATH(104,
"TSK_REMOTE_PATH",
642 bundle.getString(
"BlackboardAttribute.tskRemotePath.text"),
644 TSK_TEMP_DIR(105,
"TSK_TEMP_DIR",
645 bundle.getString(
"BlackboardAttribute.tskTempDir.text"),
647 TSK_PRODUCT_ID(106,
"TSK_PRODUCT_ID",
648 bundle.getString(
"BlackboardAttribute.tskProductId.text"),
650 TSK_OWNER(107,
"TSK_OWNER",
651 bundle.getString(
"BlackboardAttribute.tskOwner.text"),
653 TSK_ORGANIZATION(108,
"TSK_ORGANIZATION",
654 bundle.getString(
"BlackboardAttribute.tskOrganization.text"),
656 TSK_CARD_NUMBER(109,
"TSK_CARD_NUMBER",
657 bundle.getString(
"BlackboardAttribute.tskCardNumber.text"),
659 TSK_CARD_EXPIRATION(110,
"TSK_CARD_EXPIRATION",
660 bundle.getString(
"BlackboardAttribute.tskCardExpiration.text"),
662 TSK_CARD_SERVICE_CODE(111,
"TSK_CARD_SERVICE_CODE",
663 bundle.getString(
"BlackboardAttribute.tskCardServiceCode.text"),
665 TSK_CARD_DISCRETIONARY(112,
"TSK_CARD_DISCRETIONARY",
666 bundle.getString(
"BlackboardAttribute.tskCardDiscretionary.text"),
668 TSK_CARD_LRC(113,
"TSK_CARD_LRC",
669 bundle.getString(
"BlackboardAttribute.tskCardLRC.text"),
671 TSK_KEYWORD_SEARCH_DOCUMENT_ID(114,
"TSK_KEYWORD_SEARCH_DOCUMENT_ID",
672 bundle.getString(
"BlackboardAttribute.tskKeywordSearchDocumentID.text"),
674 TSK_CARD_SCHEME(115,
"TSK_CARD_SCHEME",
675 bundle.getString(
"BlackboardAttribute.tskCardScheme.text"),
677 TSK_CARD_TYPE(116,
"TSK_CARD_TYPE",
678 bundle.getString(
"BlackboardAttribute.tskCardType.text"),
680 TSK_BRAND_NAME(117,
"TSK_BRAND_NAME",
681 bundle.getString(
"BlackboardAttribute.tskBrandName.text"),
683 TSK_BANK_NAME(118,
"TSK_BANK_NAME",
684 bundle.getString(
"BlackboardAttribute.tskBankName.text"),
686 TSK_COUNTRY(119,
"TSK_COUNTRY",
687 bundle.getString(
"BlackboardAttribute.tskCountry.text"),
689 TSK_CITY(120,
"TSK_CITY",
690 bundle.getString(
"BlackboardAttribute.tskCity.text"),
692 TSK_ACCOUNT_TYPE(121,
"TSK_ACCOUNT_TYPE",
693 bundle.getString(
"BlackboardAttribute.tskAccountType.text"),
695 TSK_KEYWORD_SEARCH_TYPE(122,
"TSK_KEYWORD_SEARCH_TYPE",
696 bundle.getString(
"BlackboardAttribute.tskKeywordSearchType.text"),
713 this.typeID = typeID;
714 this.typeName = typeName;
715 this.displayName = displayName;
716 this.valueType = valueType;
737 return this.typeName;
746 return this.displayName;
755 return this.valueType;
773 if (attrType.getTypeID() == typeID) {
777 throw new IllegalArgumentException(
"No ATTRIBUTE_TYPE matching type: " + typeID);
795 if (attrType.getLabel().equals(typeName)) {
799 throw new IllegalArgumentException(
"No ATTRIBUTE_TYPE matching type: " + typeName);
818 throw new IllegalArgumentException(
"Value types do not match");
825 this.valueDouble = 0;
826 this.valueString =
"";
827 this.valueBytes =
new byte[0];
845 throw new IllegalArgumentException(
"Type mismatched with value type");
852 this.valueDouble = 0;
853 this.valueString =
"";
854 this.valueBytes =
new byte[0];
876 throw new IllegalArgumentException(
"Value types do not match");
883 this.valueDouble = 0;
884 this.valueString =
"";
885 this.valueBytes =
new byte[0];
906 throw new IllegalArgumentException(
"Type mismatched with value type");
913 this.valueDouble = 0;
914 this.valueString =
"";
915 this.valueBytes =
new byte[0];
933 throw new IllegalArgumentException(
"Value types do not match");
941 this.valueString =
"";
942 this.valueBytes =
new byte[0];
961 throw new IllegalArgumentException(
"Type mismatched with value type");
969 this.valueString =
"";
970 this.valueBytes =
new byte[0];
988 throw new IllegalArgumentException(
"Value types do not match");
995 this.valueDouble = 0;
996 if (valueString == null) {
997 this.valueString =
"";
1001 this.valueBytes =
new byte[0];
1019 throw new IllegalArgumentException(
"Type mismatched with value type");
1021 this.artifactID = 0;
1026 this.valueDouble = 0;
1027 if (valueString == null) {
1028 this.valueString =
"";
1032 this.valueBytes =
new byte[0];
1050 throw new IllegalArgumentException(
"Value types do not match");
1052 this.artifactID = 0;
1058 this.valueDouble = 0;
1059 this.valueString =
"";
1060 if (valueBytes == null) {
1061 this.valueBytes =
new byte[0];
1081 throw new IllegalArgumentException(
"Type mismatched with value type");
1083 this.artifactID = 0;
1089 this.valueDouble = 0;
1090 this.valueString =
"";
1091 if (valueBytes == null) {
1092 this.valueBytes =
new byte[0];
1174 return Arrays.copyOf(valueBytes, valueBytes.length);
1183 if (null != sources && !this.sources.isEmpty()) {
1184 List<String> modules = Arrays.asList(sources.split(
","));
1187 return Collections.emptyList();
1199 this.sources = sleuthkitCase.addSourceToArtifactAttribute(
this, source);
1220 hash = 97 * hash + (int) (this.artifactID ^ (this.artifactID >>> 32));
1229 if (getClass() != obj.getClass()) {
1238 return "BlackboardAttribute{" +
"artifactID=" + artifactID +
", attributeType=" +
attributeType.
toString() +
", moduleName=" + sources +
", context=" + context +
", valueInt=" + valueInt +
", valueLong=" + valueLong +
", valueDouble=" + valueDouble +
", valueString=" + valueString +
", valueBytes=" + Arrays.toString(valueBytes) +
", Case=" + sleuthkitCase +
'}';
1293 int valueInt,
long valueLong,
double valueDouble, String valueString, byte[] valueBytes,
1303 if (valueString == null) {
1304 this.valueString =
"";
1308 if (valueBytes == null) {
1309 this.valueBytes =
new byte[0];
1322 void setCaseDatabase(SleuthkitCase sleuthkitCase) {
1331 void setArtifactId(
long artifactID) {
1343 String getSourcesCSV() {
1354 static String bytesToHexString(byte[] bytes) {
1356 char[] hexChars =
new char[bytes.length * 2];
1357 for (
int j = 0; j < bytes.length; j++) {
1358 int v = bytes[j] & 0xFF;
1359 hexChars[j * 2] = HEX_ARRAY[v >>> 4];
1360 hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F];
1362 return new String(hexChars);
1373 return text.replace((
char) 0x00, (
char) 0x1A);
1393 public BlackboardAttribute(
int attributeTypeID, String moduleName,
int valueInt)
throws IllegalArgumentException {
1417 this(attributeTypeID, moduleName,
valueInt);
1440 long valueLong)
throws IllegalArgumentException {
1465 this(attributeTypeID, moduleName,
valueLong);
1487 double valueDouble)
throws IllegalArgumentException {
1510 double valueDouble) {
1532 public BlackboardAttribute(
int attributeTypeID, String moduleName, String valueString)
throws IllegalArgumentException {
1555 String valueString) {
1577 public BlackboardAttribute(
int attributeTypeID, String moduleName, byte[] valueBytes)
throws IllegalArgumentException {
1600 byte[] valueBytes) {
1601 this(attributeTypeID, moduleName,
valueBytes);
1617 setArtifactId(artifactID);
1633 setCaseDatabase(sleuthkitCase);
1656 String getContextString() {
BlackboardAttribute(int attributeTypeID, String moduleName, String context, byte[] valueBytes)
void setCase(SleuthkitCase sleuthkitCase)
BlackboardAttribute.Type attributeType
Type(int typeID, String typeName, String displayName, TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE valueType)
String getAttributeTypeDisplayName()
static String epochToTime(long epoch)
TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE getValueType()
static ATTRIBUTE_TYPE fromID(int typeID)
static final long serialVersionUID
void setArtifactID(long artifactID)
String getAttributeTypeName()
String replaceNulls(String text)
BlackboardAttribute(Type attributeType, String source, long valueLong)
BlackboardAttribute(Type attributeType, String source, int valueInt)
static final char[] HEX_ARRAY
BlackboardAttribute(int attributeTypeID, String moduleName, String context, int valueInt)
ATTRIBUTE_TYPE(int typeID, String typeName, String displayName, TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE valueType)
BlackboardArtifact getBlackboardArtifact(long artifactID)
TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE(long type, String typeName)
static TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE fromLabel(String typeName)
TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE getValueType()
BlackboardAttribute(int attributeTypeID, String moduleName, int valueInt)
BlackboardAttribute(int attributeTypeID, String moduleName, String valueString)
SleuthkitCase sleuthkitCase
String getDisplayString()
BlackboardAttribute(int attributeTypeID, String moduleName, double valueDouble)
boolean equals(Object obj)
BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, String valueString)
TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE getValueType()
BlackboardAttribute(Type attributeType, String source, byte[] valueBytes)
static TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE fromType(long typeId)
BlackboardAttribute(int attributeTypeID, String moduleName, String context, double valueDouble)
BlackboardAttribute.Type getAttributeType()
boolean equals(Object that)
final TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE valueType
static ATTRIBUTE_TYPE fromLabel(String typeName)
BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, long valueLong)
BlackboardArtifact getParentArtifact()
BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, int valueInt)
BlackboardAttribute(Type attributeType, String source, double valueDouble)
BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, double valueDouble)
BlackboardAttribute(int attributeTypeID, String moduleName, String context, long valueLong)
BlackboardAttribute(int attributeTypeID, String moduleName, String context, String valueString)
static final ResourceBundle bundle
BlackboardAttribute(int attributeTypeID, String moduleName, long valueLong)
Type(BlackboardAttribute.ATTRIBUTE_TYPE type)
BlackboardAttribute(int attributeTypeID, String moduleName, byte[] valueBytes)
BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, byte[] valueBytes)
void addSource(String source)
List< String > getSources()
boolean sameType(BlackboardAttribute.Type that)
final TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE valueType
BlackboardAttribute(Type attributeType, String source, String valueString)