summaryrefslogtreecommitdiff
path: root/media/java/android/mtp/MtpObjectInfo.java
diff options
context:
space:
mode:
Diffstat (limited to 'media/java/android/mtp/MtpObjectInfo.java')
-rw-r--r--media/java/android/mtp/MtpObjectInfo.java157
1 files changed, 156 insertions, 1 deletions
diff --git a/media/java/android/mtp/MtpObjectInfo.java b/media/java/android/mtp/MtpObjectInfo.java
index 5bbfe9a6888f..64aa99705b01 100644
--- a/media/java/android/mtp/MtpObjectInfo.java
+++ b/media/java/android/mtp/MtpObjectInfo.java
@@ -43,7 +43,7 @@ public final class MtpObjectInfo {
private long mDateModified;
private String mKeywords;
- // only instantiated via JNI
+ // only instantiated via JNI or via a builder
private MtpObjectInfo() {
}
@@ -252,4 +252,159 @@ public final class MtpObjectInfo {
public final String getKeywords() {
return mKeywords;
}
+
+ /**
+ * Builds a new object info instance.
+ */
+ public static class Builder {
+ private MtpObjectInfo mObjectInfo;
+
+ public Builder() {
+ mObjectInfo = new MtpObjectInfo();
+ mObjectInfo.mHandle = -1;
+ }
+
+ /**
+ * Creates a builder on a copy of an existing object info.
+ * All fields, except the object handle will be copied.
+ *
+ * @param objectInfo object info of an existing entry
+ */
+ public Builder(MtpObjectInfo objectInfo) {
+ mObjectInfo = new MtpObjectInfo();
+ mObjectInfo.mHandle = -1;
+ mObjectInfo.mAssociationDesc = objectInfo.mAssociationDesc;
+ mObjectInfo.mAssociationType = objectInfo.mAssociationType;
+ mObjectInfo.mCompressedSize = objectInfo.mCompressedSize;
+ mObjectInfo.mDateCreated = objectInfo.mDateCreated;
+ mObjectInfo.mDateModified = objectInfo.mDateModified;
+ mObjectInfo.mFormat = objectInfo.mFormat;
+ mObjectInfo.mImagePixDepth = objectInfo.mImagePixDepth;
+ mObjectInfo.mImagePixHeight = objectInfo.mImagePixHeight;
+ mObjectInfo.mImagePixWidth = objectInfo.mImagePixWidth;
+ mObjectInfo.mKeywords = objectInfo.mKeywords;
+ mObjectInfo.mName = objectInfo.mName;
+ mObjectInfo.mParent = objectInfo.mParent;
+ mObjectInfo.mProtectionStatus = objectInfo.mProtectionStatus;
+ mObjectInfo.mSequenceNumber = objectInfo.mSequenceNumber;
+ mObjectInfo.mStorageId = objectInfo.mStorageId;
+ mObjectInfo.mThumbCompressedSize = objectInfo.mThumbCompressedSize;
+ mObjectInfo.mThumbFormat = objectInfo.mThumbFormat;
+ mObjectInfo.mThumbPixHeight = objectInfo.mThumbPixHeight;
+ mObjectInfo.mThumbPixWidth = objectInfo.mThumbPixWidth;
+ }
+
+ public Builder setObjectHandle(int value) {
+ mObjectInfo.mHandle = value;
+ return this;
+ }
+
+ public Builder setAssociationDesc(int value) {
+ mObjectInfo.mAssociationDesc = value;
+ return this;
+ }
+
+ public Builder setAssociationType(int value) {
+ mObjectInfo.mAssociationType = value;
+ return this;
+ }
+
+ public Builder setCompressedSize(int value) {
+ mObjectInfo.mCompressedSize = value;
+ return this;
+ }
+
+ public Builder setDateCreated(long value) {
+ mObjectInfo.mDateCreated = value;
+ return this;
+ }
+
+ public Builder setDateModified(long value) {
+ mObjectInfo.mDateModified = value;
+ return this;
+ }
+
+ public Builder setFormat(int value) {
+ mObjectInfo.mFormat = value;
+ return this;
+ }
+
+ public Builder setImagePixDepth(int value) {
+ mObjectInfo.mImagePixDepth = value;
+ return this;
+ }
+
+ public Builder setImagePixHeight(int value) {
+ mObjectInfo.mImagePixHeight = value;
+ return this;
+ }
+
+ public Builder setImagePixWidth(int value) {
+ mObjectInfo.mImagePixWidth = value;
+ return this;
+ }
+
+ public Builder setKeywords(String value) {
+ mObjectInfo.mKeywords = value;
+ return this;
+ }
+
+ public Builder setName(String value) {
+ mObjectInfo.mName = value;
+ return this;
+ }
+
+ public Builder setParent(int value) {
+ mObjectInfo.mParent = value;
+ return this;
+ }
+
+ public Builder setProtectionStatus(int value) {
+ mObjectInfo.mProtectionStatus = value;
+ return this;
+ }
+
+ public Builder setSequenceNumber(int value) {
+ mObjectInfo.mSequenceNumber = value;
+ return this;
+ }
+
+ public Builder setStorageId(int value) {
+ mObjectInfo.mStorageId = value;
+ return this;
+ }
+
+ public Builder setThumbCompressedSize(int value) {
+ mObjectInfo.mThumbCompressedSize = value;
+ return this;
+ }
+
+ public Builder setThumbFormat(int value) {
+ mObjectInfo.mThumbFormat = value;
+ return this;
+ }
+
+ public Builder setThumbPixHeight(int value) {
+ mObjectInfo.mThumbPixHeight = value;
+ return this;
+ }
+
+ public Builder setThumbPixWidth(int value) {
+ mObjectInfo.mThumbPixWidth = value;
+ return this;
+ }
+
+ /**
+ * Builds the object info instance. Once called, methods of the builder
+ * must not be called anymore.
+ *
+ * @return the object info of the newly created file, or NULL in case
+ * of an error.
+ */
+ public MtpObjectInfo build() {
+ MtpObjectInfo result = mObjectInfo;
+ mObjectInfo = null;
+ return result;
+ }
+ }
}