View Javadoc

1   package com.tapina.robe.swi.os;
2   
3   import com.tapina.robe.swi.OS;
4   
5   import java.util.Date;
6   
7   /***
8    * This class represents a directory entry.
9    */
10  public class DirectoryEntry {
11      public static final int ATTRIBUTE_OWNER_READ = 0x01;
12      public static final int ATTRIBUTE_OWNER_WRITE = 0x02;
13      public static final int ATTRIBUTE_LOCKED = 0x08;
14      public static final int ATTRIBUTE_OTHERS_READ = 0x10;
15      public static final int ATTRIBUTE_OTHERS_WRITE = 0x10;
16      public static final int ATTRIBUTE_HIDDEN = 0x10;
17      public static final int TYPE_NOT_FOUND = 0;
18      public static final int TYPE_FILE = 1;
19      public static final int TYPE_DIRECTORY = 2;
20      public static final int TYPE_IMAGE = 3;
21  
22      int loadAddress;
23      int execAddress;
24      int length;
25      int attributes;
26      int objectType;
27      int internalName;
28      Date timestamp;
29      String name;
30  
31      public DirectoryEntry() {
32      }
33  
34      public DirectoryEntry(int loadAddress, int execAddress, int length, int attributes, int objectType, int internalName, Date timestamp, String name) {
35          this.loadAddress = loadAddress;
36          this.execAddress = execAddress;
37          this.length = length;
38          this.attributes = attributes;
39          this.objectType = objectType;
40          this.internalName = internalName;
41          this.timestamp = timestamp;
42          this.name = name;
43      }
44  
45      public DirectoryEntry(String name, Date date, long length, int attributes, int type) {
46          this.length = (int) length;
47          this.attributes = attributes;
48          this.objectType = type;
49          this.internalName = name.hashCode();
50          this.timestamp = date;
51          this.name = name;
52          long fiveByteTime = OS.convertTo5ByteTime(date);
53          this.execAddress = (int) (fiveByteTime & 0xffffffff);
54          this.loadAddress = (int) ((fiveByteTime & 0xff00000000L) >> 32) | 0xfffffd00;
55      }
56  
57      public DirectoryEntry(String name, int loadAddress, int execAddress, int attributes) {
58          this.attributes = attributes;
59          this.internalName = name.hashCode();
60          final long fiveByteTime = (execAddress | ((long) loadAddress << 32)) & 0xffffffffffL;
61          this.timestamp = OS.convertToDate(fiveByteTime);
62          this.name = name;
63          this.execAddress = execAddress;
64          this.loadAddress = loadAddress;
65      }
66  
67      public int getLoadAddress() {
68          return loadAddress;
69      }
70  
71      public void setLoadAddress(int loadAddress) {
72          this.loadAddress = loadAddress;
73      }
74  
75      public int getExecAddress() {
76          return execAddress;
77      }
78  
79      public void setExecAddress(int execAddress) {
80          this.execAddress = execAddress;
81      }
82  
83      public int getLength() {
84          return length;
85      }
86  
87      public void setLength(int length) {
88          this.length = length;
89      }
90  
91      public int getAttributes() {
92          return attributes;
93      }
94  
95      public void setAttributes(int attributes) {
96          this.attributes = attributes;
97      }
98  
99      public int getObjectType() {
100         return objectType;
101     }
102 
103     public void setObjectType(int objectType) {
104         this.objectType = objectType;
105     }
106 
107     public int getInternalName() {
108         return internalName;
109     }
110 
111     public void setInternalName(int internalName) {
112         this.internalName = internalName;
113     }
114 
115     public Date getTimestamp() {
116         return timestamp;
117     }
118 
119     public void setTimestamp(Date timestamp) {
120         this.timestamp = timestamp;
121     }
122 
123     public String getName() {
124         return name;
125     }
126 
127     public void setName(String name) {
128         this.name = name;
129     }
130 }