package railo.commons.io.res.type.cache; import java.io.Serializable; /** * Core of a Ram Resource, holds the concrete data for a existing resource */ public final class CacheResourceCore implements Serializable { /** * Directory Resource */ public static final int TYPE_DIRECTORY=1; /** * Directory Resource */ public static final int TYPE_FILE=2; private int type; private String name; private byte[] data; private long lastModified=System.currentTimeMillis(); private int mode=0777; private int attributes=0; private String path; /** * Konstruktor * @param parent * @param type * @param name * @param caseSensitive */ public CacheResourceCore(int type,String path,String name) { this.type=type; this.path=path; this.name=name; } /** * Gibt den Feldnamen lastModified zurueck. * @return lastModified */ public long getLastModified() { return this.lastModified; } /** * Setzt den Feldnamen lastModified. * @param lastModified lastModified */ public void setLastModified(long lastModified) { this.lastModified = lastModified; } /** * Gibt den Feldnamen data zurueck. * @return data */ public byte[] getData() { return this.data; } /** * Setzt den Feldnamen data. * @param data data * @param append */ public void setData(byte[] data,boolean append) { lastModified=System.currentTimeMillis(); // set data if(append) { if(this.data!=null && data!=null) { byte[] newData=new byte[this.data.length+data.length]; int i=0; for(;i<this.data.length;i++) { newData[i]=this.data[i]; } for(;i<this.data.length+data.length;i++) { newData[i]=data[i-this.data.length]; } this.data=newData; } else if(data!=null) { this.data=data; } } else { this.data=data; } // set type if(this.data!=null) this.type=TYPE_FILE; } /** * Gibt den Feldnamen name zurueck. * @return name */ public String getName() { return this.name; } /** * Setzt den Feldnamen name. * @param name name */ public void setName(String name) { lastModified=System.currentTimeMillis(); this.name = name; } /** * @return the path */ public String getPath() { return path; } /** * Gibt den Feldnamen type zurueck. * @return type */ public int getType() { return this.type; } /** * Setzt den Feldnamen type. * @param type type */ public void setType(int type) { lastModified=System.currentTimeMillis(); this.type = type; } /** * @return the mode */ public int getMode() { return mode; } /** * @param mode the mode to set */ public void setMode(int mode) { this.mode=mode; } public int getAttributes() { return attributes; } public void setAttributes(int attributes) { this.attributes=attributes; } public void remove() { setType(0); setData(null,false); } }