diff options
Diffstat (limited to 'media/java/android/mtp/MtpObjectInfo.java')
-rw-r--r-- | media/java/android/mtp/MtpObjectInfo.java | 157 |
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; + } + } } |