datamanager.java

来自「一个日本流行的,功能较全的开源Web办公管理(Groupware)系统。」· Java 代码 · 共 145 行

JAVA
145
字号
package jp.co.sjts.gsession.link;

/*
 * 僨乕僞儅僱乕僕儍  DataManager.java
 * Copyright (C) 1999-2000 Japan Total System Co,LTD
 *    Satoru K  <koni@sjts.co.jp>
 */
import java.io.File;
import jp.co.sjts.gsession.tools.*;

public class DataManager extends Configure
{
	private String dir;

	// 僐儞僗僩儔僋僞
	public DataManager(String dir) throws GSException
	{
		super(dir);
		this.dir = dir;
	}

	// 僨傿儗僋僩儕偺捛壛
	synchronized public int addDir(String name,int parentDirId)
		throws GSException
	{
		DirData dirData = new DirData(dir);
		dirData.Load();

		int id = incMaxDirId();

		if(!dirData.addDir(id,name,parentDirId)){
			decMaxDirId();
			return -1;
		}

		try{
			Save();
		}catch(GSException e){
			decMaxDirId();
			return  -1;
		}

		dirData.Save();

		return id;
	}

	// 僨傿儗僋僩儕偺嶍彍
	synchronized public void delDir(int dirId)
		throws GSException
	{
		DirData dirData = new DirData(dir);
		dirData.Load();

		__delDir(dirId,dirData);

		dirData.Save();
	}

	private void __delDir(int dirId,DirData dirData)
		throws GSException
	{
		int[] cdirIds = dirData.getChildDirIds(dirId);
		if((cdirIds!=null)&&(cdirIds.length>0)){
			for(int i=0;i<cdirIds.length;i++)
				__delDir(cdirIds[i],dirData);
		}

		dirData.delDir(dirId);
		File linkFile = new File(dir,Integer.toString(dirId));
		if(linkFile.exists())
			linkFile.delete();
	}

	// 僨傿儗僋僩儕柤曄峏
	synchronized public void editDir(int dirId,String name)
		throws GSException
	{
		DirData dirData = new DirData(dir);
		dirData.Load();

		dirData.editDir(dirId,name);
	}

	// 儕儞僋偺捛壛
	synchronized public int addLink(String address,String memo,int currentDirId)
		throws GSException
	{

		int newLinkId = incLinkId();
		LinkData linkData = new LinkData(dir,currentDirId);
		linkData.Load();
		
		linkData.addLink(newLinkId,address,memo);

		linkData.Save();
		
		Save();
		return newLinkId;
	}

	// 儕儞僋偺嶍彍
	synchronized public void delLink(int currentDirId,int[] linkIds)
		throws GSException
	{
		LinkData linkData = new LinkData(dir,currentDirId);
		linkData.Load();

		for(int i=0;i<linkIds.length;i++)
			linkData.delLink(linkIds[i]);

		linkData.Save();
	}

	// 儕儞僋偺堏摦
	synchronized public void moveLink(int srcDirId,int[] linkIds,int dstDirId)
		throws GSException
   	{
		LinkData srcLinkData = new LinkData(dir,srcDirId);
		srcLinkData.Load();
		LinkData dstLinkData = new LinkData(dir,dstDirId);
		dstLinkData.Load();

		for(int i=0;i<linkIds.length;i++){
			String url = srcLinkData.getLinkUrl(linkIds[i]);
			String msg = srcLinkData.getLinkMsg(linkIds[i]);
			srcLinkData.delLink(linkIds[i]);
			dstLinkData.addLink(linkIds[i],url,msg);
		}
		srcLinkData.Save();
		dstLinkData.Save();
	}

	// 儕儞僋偺曇廤
	synchronized public void editLink(int dirId,int linkId
			,String url,String msg)	throws GSException
	{
		LinkData linkData = new LinkData(dir,dirId);
		linkData.Load();

		linkData.editLink(linkId,url,msg);
		linkData.Save();
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?