001package org.opengion.fukurou.model;
002
003/**
004 * ファイル情報の格納クラス
005 * 
006 * listFilesで取得した、
007 * ディレクトリとファイル一覧情報の格納用クラスです。
008 * 
009 * @og.group ファイル操作
010 * 
011 * @og.rev 5.10.8.0 (2019/02/01) 新規作成
012 * @author oota
013 * @since JDK7.0
014 */
015public class FileOperationInfo extends AbstractFileOperation
016                implements Comparable<FileOperation> {
017        /** クラス変数 */
018        private String path;
019        private String name;
020        private String parent;
021        private long size;
022        private long lastModified;
023        private boolean isFile;
024        private boolean isDirectory;
025        private boolean isHidden;
026        private boolean canRead;
027        private boolean canWrite;
028
029        /**
030         * コンストラクタ
031         */
032        public FileOperationInfo() {
033                // クラス変数の初期化
034                path = "";
035                name = "";
036                parent = "";
037                size = 0;
038                lastModified = 0;
039                isFile = false;
040                isDirectory = false;
041                isHidden = false;
042                canRead = true;
043                canWrite = true;
044        }
045
046        /** Getter ・ Setter */
047        @Override
048        public String getPath() {
049                return path;
050        }
051
052        /**
053         * @param path
054         */
055        public void setPath(String path) {
056                this.path = path;
057        }
058
059        @Override
060        public String getName() {
061                return name;
062        }
063
064        /**
065         * @param name
066         */
067        public void setName(String name) {
068                this.name = name;
069        }
070
071        @Override
072        public String getParent() {
073                return parent;
074        }
075
076        /**
077         * @param parent
078         */
079        public void setParent(String parent) {
080                this.parent = parent;
081        }
082
083        @Override
084        public long length() {
085                return size;
086        }
087
088        /**
089         * @param size
090         */
091        public void setSize(long size) {
092                this.size = size;
093        }
094
095        @Override
096        public long lastModified() {
097                return lastModified;
098        }
099
100        /**
101         * @param lastModified
102         */
103        public void setLastModifiedValue(long lastModified) {
104                this.lastModified = lastModified;
105        }
106
107        @Override
108        public boolean isFile() {
109                return isFile;
110        }
111
112        /**
113         * @param isFile
114         */
115        public void setFile(boolean isFile) {
116                this.isFile = isFile;
117        }
118
119        @Override
120        public boolean isDirectory() {
121                return isDirectory;
122        }
123
124        /**
125         * @param isDirectory
126         */
127        public void setDirectory(boolean isDirectory) {
128                this.isDirectory = isDirectory;
129        }
130
131        @Override
132        public boolean isHidden() {
133                return isHidden;
134        }
135
136        /**
137         * @param isHidden
138         */
139        public void setHidden(boolean isHidden) {
140                this.isHidden = isHidden;
141        }
142
143        @Override
144        public boolean canRead() {
145                return canRead;
146        }
147
148        /**
149         * @param canRead
150         */
151        public void setCanRead(boolean canRead) {
152                this.canRead = canRead;
153        }
154
155        @Override
156        public boolean canWrite() {
157                return canWrite;
158        }
159
160        /**
161         * @param canWrite
162         */
163        public void setCanWrite(boolean canWrite) {
164                this.canWrite = canWrite;
165        }
166
167        /**
168         * 1つ下の、ディレクトリ・ファイル一覧を取得します。
169         */
170        @Override
171        public FileOperation[] listFiles(FileOperationFileFilter filter) {
172                FileOperation file = FileOperationFactory.newStorageOperation(path);
173                return file.listFiles(filter);
174        }
175
176        /**
177         * compareToでは、パスの比較を行います。
178         */
179        @Override
180        public int compareTo(FileOperation trg) {
181                return getPath().compareToIgnoreCase(trg.getPath());
182        }
183
184        /**
185         * カノニカルファイル取得メソッドでは、自身を返します。
186         */
187        @Override
188        public FileOperation getCanonicalFile() {
189                return this;
190        }
191}