📄 folder.java
字号:
//// ____.// __/\ ______| |__/\. _______// __ .____| | \ | +----+ \// _______| /--| | | - \ _ | : - \_________// \\______: :---| : : | : | \________>// |__\---\_____________:______: :____|____:_____\// /_____|//// . . . i n j a h i a w e t r u s t . . .//package org.jahia.services.filemanager;import java.io.*;import java.util.*;import java.sql.*;import org.jahia.tools.files.*;import org.jahia.utils.*; // JahiaConsoleimport org.jahia.exceptions.*; // JahiaInitializationExceptionimport org.jahia.services.*;import org.jahia.registries.*;import org.jahia.data.files.*;import java.io.*;import java.util.*;/** * Class Folder. * A folder item * * @author Khue ng * @version 1.0 */public class Folder { /** the folder identifier **/ private int m_FolderID = -1; /** the filemanager id **/ private int m_FilemanagerID = -1; /** the parent folder id **/ private int m_ParentID = -1; /** the depth , used for quick search purpose **/ private int m_Depth = -1; /** the folder name **/ private String m_FolderName = ""; /** a reference to an instance of FolderDB class **/ private FolderDB m_FolderDB; /** * Constructor */ protected Folder() { } /** * Constructor * * @param the filemanager id * @param the parent folder id * @param the folder name */ public Folder( int filemanagerID, int parentID, String folderName ){ m_FilemanagerID = filemanagerID; m_ParentID = parentID; m_FolderName = folderName; } public int getFolderID(){ return m_FolderID; } protected void setFolderID(int id){ m_FolderID = id; } public int getFilemanagerID(){ return m_FilemanagerID; } protected void setFilemanager(int id){ m_FilemanagerID = id; } public int getParentID(){ return m_ParentID; } public void setParentID(int id){ m_ParentID = id; this.setDepth( this.getParent().getDepth()+1 ); } public int getDepth(){ return m_Depth; } protected void setDepth(int depth){ m_Depth = depth; } public String getFolderName(){ return m_FolderName; } public void setFolderName(String folderName){ m_FolderName = folderName; } /** * Method getParent<br> * @Return parent folder */ public Folder getParent(){ return m_FolderDB.getInstance().getFolder(this.getParentID()); } /** * Method getParents<br> * get all parent of this folder branch * * @parent an Hastable where to store parents id */ public void getParents(Hashtable parents){ parents.put( new Integer(this.getFolderID()), new Integer(this.getFolderID()) ); Folder parent = m_FolderDB.getInstance().getFolder(this.getParentID()); if ( parent != null ){ toConsole("getParents():" + parent.getFolderID()); //parents.put( new Integer(parent.getFolderID()), new Integer(parent.getFolderID()) ); parent.getParents(parents); } } /** * Method getFiles<br> * Return files contained in this folder */ public Vector getFiles() { Vector files = null; // get Files String orderSql = " order by title_jahia_file"; files = ServicesRegistry.getInstance().getJahiaFilemanagerService().getFilesByFolderDB(this.getFolderID(),orderSql); return files; } /** * Method deleteFiles<br> * Delete files from folder. * * @param fileIDs String array of file id to delete * @return false on error */ public boolean deleteFiles(String[] fileIDs) { boolean success = true; // get active folder's files Vector files = this.getFiles(); if ( files != null ) { JahiaFile aFile = null; int nbFile = files.size(); for ( int i=0; i<nbFile ; i++ ) { aFile = (JahiaFile)files.get(i); if ( inValues( new String().valueOf(aFile.getFileID()),fileIDs) ){ if ( !ServicesRegistry.getInstance().getJahiaFilemanagerService().deleteFileDB(aFile.getFileID()) ){ success = false; break; } } } } return success; } /** * Method addFolder<br> * * @param folderName * @return false on any error */ public boolean addFolder(String folderName){ if (folderName.length()>0) { // create new folder Folder folder = new Folder ( this.getFilemanagerID(), this.getFolderID(), // parent folder folderName ); if (!m_FolderDB.getInstance().insert(folder)){ toConsole("addFolder, error create new Folder in db"); return false; } } return true; } /** * Method moveFiles<br> * Move some files in this folder to another destination folder * * @param destFolder the destination folder * @param fileIDs a string array of file ids * @return false on error */ public boolean moveFiles(Folder destFolder, String[] fileIDs ){ toConsole(" moveFiles started "); boolean success = true; if ( fileIDs != null && destFolder != null ){ // get folder's files Vector files = this.getFiles(); JahiaFile aFile = null; if ( files != null ){ int nbFile = files.size(); for ( int i=0; i<nbFile ; i++ ) { aFile = (JahiaFile)files.get(i); if ( inValues( new String().valueOf(aFile.getFileID()),fileIDs) ){ aFile.setFolderID(destFolder.getFolderID()); if ( !(ServicesRegistry.getInstance().getJahiaFilemanagerService().updateFileDB(aFile)) ) { // error moving files toConsole("moveFiles, error updating files info"); success=false; break; } } } } } else { success = false; } return success; } /** * Method renameFolder<br> * Rename the folder name * * @param folderName the new folder name * @return false on any error */ public boolean renameFolder(String folderName){ toConsole(" renameFolder started "); if (folderName.length()>0) { this.setFolderName(folderName); if (!m_FolderDB.getInstance().update(this)){ return false ; } } return true; } /** * Method inValues<br> * Check if a string value is in an array of string * * @param aValue a string value * @param values an array of String * @return true if value found in array */ protected boolean inValues(String aValue, String[] values){ if ( values != null ){ for (int i=0 ; i<values.length ; i++){ if (aValue.equals(values[i])){ return true; } } } return false; } /** * Method toConsole * For debugging purpose * * @param msg any String message to write to the console */ public void toConsole(String msg) { JahiaConsole.println("Folder.toConsole", msg); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -