1 /* 2 * Copyright (C) 2020 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.systemui.util.io; 18 19 import java.nio.file.attribute.BasicFileAttributes; 20 import java.nio.file.attribute.FileTime; 21 import java.util.concurrent.TimeUnit; 22 23 /** 24 * Fake implementation of {@link BasicFileAttributes} (for use in tests) 25 */ 26 public class FakeBasicFileAttributes implements BasicFileAttributes { 27 private FileTime mLastModifiedTime = FileTime.from(0, TimeUnit.MILLISECONDS); 28 private FileTime mLastAccessTime = FileTime.from(0, TimeUnit.MILLISECONDS); 29 private FileTime mCreationTime = FileTime.from(0, TimeUnit.MILLISECONDS); 30 private boolean mIsRegularFile = true; 31 private boolean mIsDirectory = false; 32 private boolean mIsSymbolicLink = false; 33 private boolean mIsOther = false; 34 private long mSize = 0; 35 private Object mFileKey = null; 36 37 @Override lastModifiedTime()38 public FileTime lastModifiedTime() { 39 return mLastModifiedTime; 40 } 41 42 @Override lastAccessTime()43 public FileTime lastAccessTime() { 44 return mLastAccessTime; 45 } 46 47 @Override creationTime()48 public FileTime creationTime() { 49 return mCreationTime; 50 } 51 52 @Override isRegularFile()53 public boolean isRegularFile() { 54 return mIsRegularFile; 55 } 56 57 @Override isDirectory()58 public boolean isDirectory() { 59 return mIsDirectory; 60 } 61 62 @Override isSymbolicLink()63 public boolean isSymbolicLink() { 64 return mIsSymbolicLink; 65 } 66 67 @Override isOther()68 public boolean isOther() { 69 return mIsOther; 70 } 71 72 @Override size()73 public long size() { 74 return mSize; 75 } 76 77 @Override fileKey()78 public Object fileKey() { 79 return mFileKey; 80 } 81 setLastModifiedTime(long millis)82 public FakeBasicFileAttributes setLastModifiedTime(long millis) { 83 mLastModifiedTime = FileTime.from(millis, TimeUnit.MILLISECONDS); 84 return this; 85 } 86 setLastAccessTime(long millis)87 public FakeBasicFileAttributes setLastAccessTime(long millis) { 88 mLastAccessTime = FileTime.from(millis, TimeUnit.MILLISECONDS); 89 return this; 90 } 91 setCreationTime(long millis)92 public FakeBasicFileAttributes setCreationTime(long millis) { 93 mCreationTime = FileTime.from(millis, TimeUnit.MILLISECONDS); 94 return this; 95 } 96 setRegularFile(boolean regularFile)97 public FakeBasicFileAttributes setRegularFile(boolean regularFile) { 98 mIsRegularFile = regularFile; 99 return this; 100 } 101 setDirectory(boolean directory)102 public FakeBasicFileAttributes setDirectory(boolean directory) { 103 mIsDirectory = directory; 104 return this; 105 } 106 setSymbolicLink(boolean symbolicLink)107 public FakeBasicFileAttributes setSymbolicLink(boolean symbolicLink) { 108 mIsSymbolicLink = symbolicLink; 109 return this; 110 } 111 setOther(boolean other)112 public FakeBasicFileAttributes setOther(boolean other) { 113 mIsOther = other; 114 return this; 115 } 116 setSize(long size)117 public FakeBasicFileAttributes setSize(long size) { 118 mSize = size; 119 return this; 120 } 121 setFileKey(Object fileKey)122 public FakeBasicFileAttributes setFileKey(Object fileKey) { 123 mFileKey = fileKey; 124 return this; 125 } 126 } 127