001 package de.deepamehta.plugins.files; 002 003 import de.deepamehta.core.JSONEnabled; 004 005 import org.codehaus.jettison.json.JSONObject; 006 007 import java.io.File; 008 009 010 011 public class ResourceInfo implements JSONEnabled { 012 013 // ---------------------------------------------------------------------------------------------- Instance Variables 014 015 private ItemKind kind; // FILE or DIRECTORY 016 017 // ---------------------------------------------------------------------------------------------------- Constructors 018 019 /** 020 * Precondition: the file exists. 021 */ 022 public ResourceInfo(File file) { 023 kind = file.isDirectory() ? ItemKind.DIRECTORY : ItemKind.FILE; 024 } 025 026 // -------------------------------------------------------------------------------------------------- Public Methods 027 028 public ItemKind getItemKind() { 029 return kind; 030 } 031 032 @Override 033 public JSONObject toJSON() { 034 try { 035 JSONObject info = new JSONObject(); 036 info.put("kind", kind.stringify()); 037 return info; 038 } catch (Exception e) { 039 throw new RuntimeException("Serialization failed (" + this + ")", e); 040 } 041 } 042 043 @Override 044 public String toString() { 045 return "resource info (kind=\"" + kind + "\")"; 046 } 047 }